{"version":3,"file":"static/js/main.1d2aafaa.js","mappings":"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GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAGpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAGpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GA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B,GAEhC,CACAD,EAAoB1sN,KAAO,IAAOhlB,OAAOglB,KAAKzhB,GAC9CmuO,EAAoBrvO,GAAK,KACzBoQ,EAAO+iD,QAAUk8K,kBC7DjB,IAAInuO,EAAM,CACT,gBAAiB,CAChB,KACA,GAED,oBAAqB,CACpB,KACA,GAED,WAAY,CACX,KACA,GAED,eAAgB,CACf,KACA,GAED,qBAAsB,CACrB,KACA,GAED,yBAA0B,CACzB,KACA,GAED,kCAAmC,CAClC,KACA,GAED,sCAAuC,CACtC,KACA,GAED,oBAAqB,CACpB,KACA,GAED,wBAAyB,CACxB,KACA,GAED,eAAgB,CACf,KACA,GAED,mBAAoB,CACnB,KACA,GAED,2BAA4B,CAC3B,KACA,GAED,+BAAgC,CAC/B,KACA,GAED,0BAA2B,CAC1B,IACA,GAED,8BAA+B,CAC9B,IACA,GAED,qBAAsB,CACrB,KACA,GAED,yBAA0B,CACzB,KACA,GAED,0BAA2B,CAC1B,KACA,GAED,8BAA+B,CAC9B,KACA,GAED,0BAA2B,CAC1B,KACA,GAED,8BAA+B,CAC9B,KACA,GAED,gCAAiC,CAChC,IACA,GAED,oCAAqC,CACpC,IACA,GAED,8BAA+B,CAC9B,KACA,GAED,kCAAmC,CAClC,KACA,GAED,4BAA6B,CAC5B,IACA,GAED,gCAAiC,CAChC,IACA,GAED,mCAAoC,CACnC,KACA,GAED,uCAAwC,CACvC,KACA,GAED,qBAAsB,CACrB,KACA,GAED,yBAA0B,CACzB,KACA,GAED,yBAA0B,CACzB,KACA,GAED,6BAA8B,CAC7B,KACA,GAED,0BAA2B,CAC1B,IACA,GAED,8BAA+B,CAC9B,IACA,GAED,wBAAyB,CACxB,KACA,GAED,4BAA6B,CAC5B,KACA,GAED,kBAAmB,CAClB,KACA,GAED,sBAAuB,CACtB,KACA,GAED,kCAAmC,CAClC,KACA,GAED,sCAAuC,CACtC,KACA,GAED,6BAA8B,CAC7B,KACA,GAED,iCAAkC,CACjC,KACA,GAED,uCAAwC,CACvC,KACA,GAED,2CAA4C,CAC3C,KACA,GAED,oDAAqD,CACpD,KACA,GAED,wDAAyD,CACxD,KACA,GAED,sCAAuC,CACtC,KACA,GAED,0CAA2C,CAC1C,KACA,GAED,iCAAkC,CACjC,KACA,GAED,qCAAsC,CACrC,KACA,GAED,6CAA8C,CAC7C,KACA,GAED,iDAAkD,CACjD,KACA,GAED,4CAA6C,CAC5C,IACA,GAED,gDAAiD,CAChD,IACA,GAED,uCAAwC,CACvC,KACA,GAED,2CAA4C,CAC3C,KACA,GAED,4CAA6C,CAC5C,KACA,GAED,gDAAiD,CAChD,KACA,GAED,4CAA6C,CAC5C,KACA,GAED,gDAAiD,CAChD,KACA,GAED,kDAAmD,CAClD,IACA,GAED,sDAAuD,CACtD,IACA,GAED,gDAAiD,CAChD,KACA,GAED,oDAAqD,CACpD,KACA,GAED,8CAA+C,CAC9C,IACA,GAED,kDAAmD,CAClD,IACA,GAED,qDAAsD,CACrD,KACA,GAED,yDAA0D,CACzD,KACA,GAED,uCAAwC,CACvC,KACA,GAED,2CAA4C,CAC3C,KACA,GAED,2CAA4C,CAC3C,KACA,GAED,+CAAgD,CAC/C,KACA,GAED,4CAA6C,CAC5C,IACA,GAED,gDAAiD,CAChD,IACA,GAED,0CAA2C,CAC1C,KACA,GAED,8CAA+C,CAC9C,KACA,GAED,oCAAqC,CACpC,KACA,GAED,wCAAyC,CACxC,KACA,IAIF,SAASmuO,EAAoBC,GAC5B,OAAOrqJ,QAAQv9D,UAAUzpB,MAAK,KAC7B,IAAIsxO,EAAoBp9L,EAAEjxC,EAAKouO,GAAM,CACpC,IAAIlrO,EAAI,IAAIyM,MAAM,uBAAyBy+N,EAAM,KAEjD,MADAlrO,EAAE8sE,KAAO,mBACH9sE,CACP,CAEA,IAAI4sG,EAAM9vG,EAAIouO,GAAMtvO,EAAKgxG,EAAI,GAC7B,OAAOu+H,EAAoBl7M,EAAEr0B,EAAa,GAATgxG,EAAI,GAAO,GAE9C,CACAq+H,EAAoB1sN,KAAO,IAAOhlB,OAAOglB,KAAKzhB,GAC9CmuO,EAAoBrvO,GAAK,KACzBoQ,EAAO+iD,QAAUk8K,kBCjVjB,IAAInuO,EAAM,CACT,cAAe,KACf,kBAAmB,KACnB,yBAA0B,KAC1B,6BAA8B,KAC9B,iBAAkB,KAClB,qBAAsB,KACtB,wBAAyB,KACzB,4BAA6B,KAC7B,6BAA8B,KAC9B,iCAAkC,KAClC,8BAA+B,KAC/B,kCAAmC,KACnC,yBAA0B,KAC1B,6BAA8B,KAC9B,qCAAsC,KACtC,yCAA0C,KAC1C,+BAAgC,IAChC,mCAAoC,IACpC,+BAAgC,KAChC,mCAAoC,KACpC,0CAA2C,KAC3C,8CAA+C,KAC/C,kCAAmC,KACnC,sCAAuC,KACvC,yCAA0C,KAC1C,6CAA8C,KAC9C,8CAA+C,KAC/C,kDAAmD,KACnD,+CAAgD,KAChD,mDAAoD,KACpD,0CAA2C,KAC3C,8CAA+C,KAC/C,sDAAuD,KACvD,0DAA2D,KAC3D,gDAAiD,IACjD,oDAAqD,KAGtD,SAASmuO,EAAoBC,GAC5B,OAAOrqJ,QAAQv9D,UAAUzpB,MAAK,KAC7B,IAAIsxO,EAAoBp9L,EAAEjxC,EAAKouO,GAAM,CACpC,IAAIlrO,EAAI,IAAIyM,MAAM,uBAAyBy+N,EAAM,KAEjD,MADAlrO,EAAE8sE,KAAO,mBACH9sE,CACP,CAGA,OAAOmrO,EADEruO,EAAIouO,GACiB,GAEhC,CACAD,EAAoB1sN,KAAO,IAAOhlB,OAAOglB,KAAKzhB,GAC9CmuO,EAAoBrvO,GAAK,KACzBoQ,EAAO+iD,QAAUk8K,kBCrDjB,IAAInuO,EAAM,CACT,gBAAiB,KACjB,oBAAqB,KACrB,kDAAmD,KACnD,sDAAuD,KACvD,+CAAgD,KAChD,mDAAoD,KACpD,gDAAiD,KACjD,oDAAqD,KACrD,+CAAgD,KAChD,mDAAoD,KACpD,mDAAoD,IACpD,uDAAwD,IACxD,kDAAmD,KACnD,sDAAuD,KACvD,kDAAmD,KACnD,sDAAuD,KACvD,4CAA6C,KAC7C,gDAAiD,KACjD,+CAAgD,KAChD,mDAAoD,KACpD,uDAAwD,KACxD,2DAA4D,KAC5D,iDAAkD,KAClD,qDAAsD,KACtD,6CAA8C,KAC9C,iDAAkD,KAClD,yCAA0C,KAC1C,6CAA8C,KAC9C,kEAAmE,KACnE,sEAAuE,KACvE,8DAA+D,KAC/D,kEAAmE,KACnE,8DAA+D,KAC/D,kEAAmE,KACnE,mEAAoE,KACpE,uEAAwE,KACxE,6DAA8D,KAC9D,iEAAkE,KAClE,8DAA+D,KAC/D,kEAAmE,KACnE,mEAAoE,KACpE,uEAAwE,KACxE,4DAA6D,KAC7D,gEAAiE,KACjE,4DAA6D,KAC7D,gEAAiE,KACjE,oDAAqD,KACrD,wDAAyD,KACzD,uDAAwD,KACxD,2DAA4D,KAC5D,kCAAmC,KACnC,sCAAuC,KACvC,oEAAqE,KACrE,wEAAyE,KACzE,iEAAkE,KAClE,qEAAsE,KACtE,kEAAmE,KACnE,sEAAuE,KACvE,iEAAkE,KAClE,qEAAsE,KACtE,qEAAsE,IACtE,yEAA0E,IAC1E,oEAAqE,KACrE,wEAAyE,KACzE,oEAAqE,KACrE,wEAAyE,KACzE,8DAA+D,KAC/D,kEAAmE,KACnE,iEAAkE,KAClE,qEAAsE,KACtE,yEAA0E,KAC1E,6EAA8E,KAC9E,mEAAoE,KACpE,uEAAwE,KACxE,+DAAgE,KAChE,mEAAoE,KACpE,2DAA4D,KAC5D,+DAAgE,KAChE,oFAAqF,KACrF,wFAAyF,KACzF,gFAAiF,KACjF,oFAAqF,KACrF,gFAAiF,KACjF,oFAAqF,KACrF,qFAAsF,KACtF,yFAA0F,KAC1F,+EAAgF,KAChF,mFAAoF,KACpF,gFAAiF,KACjF,oFAAqF,KACrF,qFAAsF,KACtF,yFAA0F,KAC1F,8EAA+E,KAC/E,kFAAmF,KACnF,8EAA+E,KAC/E,kFAAmF,KACnF,sEAAuE,KACvE,0EAA2E,KAC3E,yEAA0E,KAC1E,6EAA8E,MAG/E,SAASmuO,EAAoBC,GAC5B,OAAOrqJ,QAAQv9D,UAAUzpB,MAAK,KAC7B,IAAIsxO,EAAoBp9L,EAAEjxC,EAAKouO,GAAM,CACpC,IAAIlrO,EAAI,IAAIyM,MAAM,uBAAyBy+N,EAAM,KAEjD,MADAlrO,EAAE8sE,KAAO,mBACH9sE,CACP,CAGA,OAAOmrO,EADEruO,EAAIouO,GACiB,GAEhC,CACAD,EAAoB1sN,KAAO,IAAOhlB,OAAOglB,KAAKzhB,GAC9CmuO,EAAoBrvO,GAAK,KACzBoQ,EAAO+iD,QAAUk8K,kBCrHjB,IAAInuO,EAAM,CACT,cAAe,IACf,kBAAmB,IACnB,cAAe,KACf,kBAAmB,KACnB,sCAAuC,KACvC,0CAA2C,KAC3C,mCAAoC,KACpC,uCAAwC,KACxC,kCAAmC,KACnC,sCAAuC,KACvC,6BAA8B,IAC9B,iCAAkC,IAClC,6BAA8B,KAC9B,iCAAkC,KAClC,qDAAsD,KACtD,yDAA0D,KAC1D,kDAAmD,KACnD,sDAAuD,KACvD,iDAAkD,KAClD,qDAAsD,MAGvD,SAASmuO,EAAoBC,GAC5B,OAAOrqJ,QAAQv9D,UAAUzpB,MAAK,KAC7B,IAAIsxO,EAAoBp9L,EAAEjxC,EAAKouO,GAAM,CACpC,IAAIlrO,EAAI,IAAIyM,MAAM,uBAAyBy+N,EAAM,KAEjD,MADAlrO,EAAE8sE,KAAO,mBACH9sE,CACP,CAGA,OAAOmrO,EADEruO,EAAIouO,GACiB,GAEhC,CACAD,EAAoB1sN,KAAO,IAAOhlB,OAAOglB,KAAKzhB,GAC9CmuO,EAAoBrvO,GAAK,KACzBoQ,EAAO+iD,QAAUk8K,kBCrCjB,IAAInuO,EAAM,CACT,UAAW,KACX,UAAW,KACX,UAAW,KACX,UAAW,KACX,UAAW,KAIZ,SAASsuO,EAAeF,GACvB,IAAItvO,EAAKyvO,EAAsBH,GAC/B,OAAOC,EAAoBvvO,EAC5B,CACA,SAASyvO,EAAsBH,GAC9B,IAAIC,EAAoBp9L,EAAEjxC,EAAKouO,GAAM,CACpC,IAAIlrO,EAAI,IAAIyM,MAAM,uBAAyBy+N,EAAM,KAEjD,MADAlrO,EAAE8sE,KAAO,mBACH9sE,CACP,CACA,OAAOlD,EAAIouO,EACZ,CACAE,EAAe7sN,KAAO,WACrB,OAAOhlB,OAAOglB,KAAKzhB,EACpB,EACAsuO,EAAe9nN,QAAU+nN,EACzBr/N,EAAO+iD,QAAUq8K,EACjBA,EAAexvO,GAAK,qBC1BpB,IAAIkB,EAAM,CACT,KAAM,KACN,QAAS,KACT,YAAa,KACb,YAAa,KACb,kBAAmB,IACnB,cAAe,KACf,iBAAkB,KAClB,cAAe,KACf,iBAAkB,KAClB,4BAA6B,KAC7B,+BAAgC,KAChC,+BAAgC,KAChC,kCAAmC,KACnC,wBAAyB,KACzB,2BAA4B,KAC5B,2BAA4B,KAC5B,8BAA+B,KAC/B,0BAA2B,KAC3B,6BAA8B,KAC9B,2BAA4B,KAC5B,8BAA+B,KAC/B,2BAA4B,KAC5B,8BAA+B,KAC/B,kCAAmC,IACnC,qCAAsC,IACtC,sBAAuB,KACvB,yBAA0B,KAC1B,0BAA2B,EAC3B,6BAA8B,EAC9B,wBAAyB,KACzB,2BAA4B,KAC5B,8BAA+B,KAC/B,iCAAkC,KAClC,mCAAoC,IACpC,sCAAuC,IACvC,4BAA6B,KAC7B,+BAAgC,KAChC,yBAA0B,IAC1B,4BAA6B,IAC7B,0BAA2B,KAC3B,6BAA8B,KAC9B,oCAAqC,KACrC,uCAAwC,KACxC,gCAAiC,KACjC,mCAAoC,KACpC,sBAAuB,KACvB,0BAA2B,KAC3B,wBAAyB,KACzB,4BAA6B,KAC7B,2BAA4B,KAC5B,+BAAgC,KAChC,yBAA0B,KAC1B,6BAA8B,KAC9B,uBAAwB,KACxB,2BAA4B,KAC5B,4BAA6B,IAC7B,gCAAiC,IACjC,gCAAiC,KACjC,oCAAqC,KACrC,mCAAoC,KACpC,uCAAwC,KACxC,0BAA2B,KAC3B,8BAA+B,KAC/B,8BAA+B,IAC/B,kCAAmC,IACnC,6BAA8B,KAC9B,iCAAkC,KAClC,gCAAiC,KACjC,oCAAqC,KACrC,4BAA6B,KAC7B,gCAAiC,KACjC,6BAA8B,KAC9B,iCAAkC,KAClC,4BAA6B,IAC7B,gCAAiC,IACjC,oCAAqC,KACrC,wCAAyC,KACzC,qCAAsC,KACtC,yCAA0C,KAC1C,oCAAqC,KACrC,wCAAyC,KACzC,0CAA2C,KAC3C,8CAA+C,KAC/C,0CAA2C,KAC3C,8CAA+C,KAC/C,yCAA0C,KAC1C,6CAA8C,KAC9C,qCAAsC,KACtC,yCAA0C,KAC1C,0CAA2C,KAC3C,8CAA+C,KAC/C,wCAAyC,KACzC,4CAA6C,KAC7C,oCAAqC,KACrC,wCAAyC,KACzC,mCAAoC,KACpC,uCAAwC,KACxC,6CAA8C,KAC9C,iDAAkD,KAClD,8CAA+C,KAC/C,kDAAmD,KACnD,0CAA2C,IAC3C,8CAA+C,IAC/C,iDAAkD,KAClD,qDAAsD,KACtD,+CAAgD,KAChD,mDAAoD,KACpD,yCAA0C,KAC1C,6CAA8C,KAC9C,iDAAkD,KAClD,qDAAsD,KACtD,2CAA4C,KAC5C,+CAAgD,KAChD,kDAAmD,KACnD,sDAAuD,KACvD,6CAA8C,KAC9C,iDAAkD,KAClD,2CAA4C,KAC5C,+CAAgD,KAChD,oCAAqC,KACrC,wCAAyC,KACzC,+BAAgC,KAChC,mCAAoC,KACpC,yCAA0C,KAC1C,6CAA8C,KAC9C,sDAAuD,KACvD,0DAA2D,KAC3D,wCAAyC,KACzC,4CAA6C,KAC7C,mCAAoC,KACpC,uCAAwC,KACxC,+CAAgD,KAChD,mDAAoD,KACpD,8CAA+C,IAC/C,kDAAmD,IACnD,yCAA0C,KAC1C,6CAA8C,KAC9C,8CAA+C,KAC/C,kDAAmD,KACnD,8CAA+C,KAC/C,kDAAmD,KACnD,oDAAqD,IACrD,wDAAyD,IACzD,kDAAmD,KACnD,sDAAuD,KACvD,gDAAiD,IACjD,oDAAqD,IACrD,uDAAwD,KACxD,2DAA4D,KAC5D,yCAA0C,KAC1C,6CAA8C,KAC9C,6CAA8C,KAC9C,iDAAkD,KAClD,8CAA+C,IAC/C,kDAAmD,IACnD,4CAA6C,KAC7C,gDAAiD,KACjD,sCAAuC,KACvC,0CAA2C,KAC3C,iCAAkC,KAClC,qCAAsC,KACtC,4CAA6C,KAC7C,gDAAiD,KACjD,oCAAqC,KACrC,wCAAyC,KACzC,2CAA4C,KAC5C,+CAAgD,KAChD,gDAAiD,KACjD,oDAAqD,KACrD,iDAAkD,KAClD,qDAAsD,KACtD,4CAA6C,KAC7C,gDAAiD,KACjD,wDAAyD,KACzD,4DAA6D,KAC7D,kDAAmD,IACnD,sDAAuD,IACvD,wCAAyC,KACzC,4CAA6C,KAC7C,gCAAiC,KACjC,oCAAqC,KACrC,2CAA4C,KAC5C,+CAAgD,KAChD,oCAAqC,KACrC,wCAAyC,KACzC,oCAAqC,KACrC,wCAAyC,KACzC,oCAAqC,KACrC,wCAAyC,KACzC,+BAAgC,KAChC,mCAAoC,KACpC,iCAAkC,KAClC,qCAAsC,KACtC,+BAAgC,KAChC,mCAAoC,KACpC,iCAAkC,IAClC,qCAAsC,IACtC,oCAAqC,KACrC,wCAAyC,KACzC,qCAAsC,KACtC,yCAA0C,KAC1C,+CAAgD,KAChD,mDAAoD,KACpD,wCAAyC,KACzC,4CAA6C,KAC7C,8BAA+B,KAC/B,kCAAmC,KACnC,oCAAqC,KACrC,wCAAyC,KACzC,oCAAqC,KACrC,wCAAyC,KACzC,qCAAsC,KACtC,yCAA0C,KAC1C,oCAAqC,KACrC,wCAAyC,KACzC,sEAAuE,KACvE,0EAA2E,KAC3E,mEAAoE,KACpE,uEAAwE,KACxE,oEAAqE,KACrE,wEAAyE,KACzE,mEAAoE,KACpE,uEAAwE,KACxE,uEAAwE,IACxE,2EAA4E,IAC5E,sEAAuE,KACvE,0EAA2E,KAC3E,sEAAuE,KACvE,0EAA2E,KAC3E,gEAAiE,KACjE,oEAAqE,KACrE,mEAAoE,KACpE,uEAAwE,KACxE,2EAA4E,KAC5E,+EAAgF,KAChF,qEAAsE,KACtE,yEAA0E,KAC1E,iEAAkE,KAClE,qEAAsE,KACtE,6DAA8D,KAC9D,iEAAkE,KAClE,sFAAuF,KACvF,0FAA2F,KAC3F,kFAAmF,KACnF,sFAAuF,KACvF,kFAAmF,KACnF,sFAAuF,KACvF,uFAAwF,KACxF,2FAA4F,KAC5F,iFAAkF,KAClF,qFAAsF,KACtF,kFAAmF,KACnF,sFAAuF,KACvF,uFAAwF,KACxF,2FAA4F,KAC5F,gFAAiF,KACjF,oFAAqF,KACrF,gFAAiF,KACjF,oFAAqF,KACrF,wEAAyE,KACzE,4EAA6E,KAC7E,2EAA4E,KAC5E,+EAAgF,KAChF,+BAAgC,KAChC,mCAAoC,KACpC,6CAA8C,KAC9C,iDAAkD,KAClD,iCAAkC,KAClC,qCAAsC,KACtC,yCAA0C,KAC1C,6CAA8C,KAC9C,qCAAsC,KACtC,yCAA0C,KAC1C,+BAAgC,IAChC,mCAAoC,IACpC,+BAAgC,KAChC,mCAAoC,KACpC,uDAAwD,KACxD,2DAA4D,KAC5D,oDAAqD,KACrD,wDAAyD,KACzD,mDAAoD,KACpD,uDAAwD,KACxD,wBAAyB,KACzB,2BAA4B,KAC5B,eAAgB,KAChB,gBAAiB,KACjB,uBAAwB,KACxB,2BAA4B,KAC5B,qBAAsB,KACtB,yBAA0B,KAC1B,yBAA0B,KAC1B,6BAA8B,KAC9B,iCAAkC,KAClC,qCAAsC,KACtC,uBAAwB,KACxB,2BAA4B,KAC5B,qBAAsB,KACtB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,yBAA0B,KAC1B,4BAA6B,KAC7B,kBAAmB,KACnB,qBAAsB,KACtB,wBAAyB,KACzB,2BAA4B,KAC5B,UAAW,KACX,cAAe,KACf,yBAA0B,KAC1B,4BAA6B,KAC7B,2BAA4B,KAC5B,8BAA+B,KAC/B,wBAAyB,KACzB,2BAA4B,KAC5B,wBAAyB,IACzB,2BAA4B,IAC5B,0BAA2B,KAC3B,6BAA8B,KAC9B,sBAAuB,KACvB,yBAA0B,KAC1B,qBAAsB,KACtB,wBAAyB,KACzB,sBAAuB,KACvB,yBAA0B,KAC1B,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,sBAAuB,KACvB,oBAAqB,KACrB,uBAAwB,KACxB,mBAAoB,KACpB,sBAAuB,KACvB,8BAA+B,KAC/B,2CAA4C,KAC5C,uEAAwE,KACxE,sEAAuE,KACvE,uEAAwE,KACxE,0EAA2E,KAC3E,yEAA0E,KAC1E,0EAA2E,KAC3E,uEAAwE,KACxE,sEAAuE,KACvE,uEAAwE,KACxE,0DAA2D,KAC3D,yDAA0D,KAC1D,0DAA2D,KAC3D,6DAA8D,KAC9D,4DAA6D,KAC7D,6DAA8D,KAC9D,0DAA2D,KAC3D,yDAA0D,KAC1D,0DAA2D,KAC3D,0BAA2B,KAC3B,+BAAgC,KAChC,6BAA8B,KAC9B,0BAA2B,KAC3B,qBAAsB,KACtB,oCAAqC,KACrC,iCAAkC,KAClC,iCAAkC,KAClC,wCAAyC,KACzC,wCAAyC,KACzC,8CAA+C,KAC/C,2CAA4C,KAC5C,oEAAqE,KACrE,sDAAuD,KACvD,oCAAqC,KACrC,yCAA0C,KAC1C,4DAA6D,KAC7D,mDAAoD,KACpD,gDAAiD,KACjD,yCAA0C,KAC1C,+CAAgD,KAChD,8BAA+B,KAC/B,uDAAwD,KACxD,8CAA+C,KAC/C,0CAA2C,KAC3C,oCAAqC,KACrC,kCAAmC,KACnC,2CAA4C,IAC5C,wCAAyC,KACzC,kCAAmC,KACnC,+DAAgE,KAChE,mDAAoD,KACpD,kDAAmD,KACnD,kDAAmD,KACnD,gDAAiD,KACjD,2CAA4C,KAC5C,4CAA6C,KAC7C,uCAAwC,KACxC,mDAAoD,KACpD,6CAA8C,KAC9C,iCAAkC,KAClC,+BAAgC,KAChC,kCAAmC,KACnC,0BAA2B,KAC3B,0BAA2B,KAC3B,0BAA2B,KAC3B,0BAA2B,KAC3B,0BAA2B,IAC3B,wBAAyB,KACzB,sCAAuC,KACvC,0CAA2C,KAC3C,sDAAuD,KACvD,8CAA+C,KAC/C,+CAAgD,KAChD,uDAAwD,KACxD,uCAAwC,KACxC,8CAA+C,KAC/C,6CAA8C,KAC9C,sCAAuC,KACvC,6CAA8C,KAC9C,uCAAwC,KACxC,iDAAkD,KAClD,8CAA+C,KAC/C,iDAAkD,KAClD,sCAAuC,KACvC,6CAA8C,KAC9C,uCAAwC,KACxC,oCAAqC,KACrC,2CAA4C,KAC5C,yCAA0C,KAC1C,4CAA6C,KAC7C,8BAA+B,KAC/B,4BAA6B,KAC7B,iCAAkC,KAClC,6BAA8B,KAC9B,4BAA6B,KAC7B,gCAAiC,KACjC,+BAAgC,KAChC,8BAA+B,KAC/B,4BAA6B,KAC7B,0CAA2C,KAC3C,8BAA+B,KAC/B,4BAA6B,KAC7B,wCAAyC,IACzC,qCAAsC,KACtC,oCAAqC,KACrC,yCAA0C,KAC1C,mCAAoC,KACpC,gDAAiD,KACjD,iDAAkD,KAClD,2BAA4B,IAC5B,yBAA0B,KAC1B,mBAAoB,KACpB,sBAAuB,KACvB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,sBAAuB,KACvB,wBAAyB,KACzB,2BAA4B,KAC5B,4BAA6B,KAC7B,+BAAgC,KAChC,2BAA4B,KAC5B,8BAA+B,MAIhC,SAASsuO,EAAeF,GACvB,IAAItvO,EAAKyvO,EAAsBH,GAC/B,OAAOC,EAAoBvvO,EAC5B,CACA,SAASyvO,EAAsBH,GAC9B,IAAIC,EAAoBp9L,EAAEjxC,EAAKouO,GAAM,CACpC,IAAIlrO,EAAI,IAAIyM,MAAM,uBAAyBy+N,EAAM,KAEjD,MADAlrO,EAAE8sE,KAAO,mBACH9sE,CACP,CACA,OAAOlD,EAAIouO,EACZ,CACAE,EAAe7sN,KAAO,WACrB,OAAOhlB,OAAOglB,KAAKzhB,EACpB,EACAsuO,EAAe9nN,QAAU+nN,EACzBr/N,EAAO+iD,QAAUq8K,EACjBA,EAAexvO,GAAK,y/oDC9dpB,OAOC,WACA,aAEA,IAAIs4G,EAAS,CAAC,EAAEx/E,eAEhB,SAASzK,IAGR,IAFA,IAAIqhN,EAAU,GAELtuO,EAAI,EAAGA,EAAI7B,UAAUzH,OAAQsJ,IAAK,CAC1C,IAAIs3F,EAAMn5F,UAAU6B,GAChBs3F,IACHg3I,EAAUC,EAAYD,EAASE,EAAWl3I,IAE5C,CAEA,OAAOg3I,CACR,CAEA,SAASE,EAAYl3I,GACpB,GAAmB,kBAARA,GAAmC,kBAARA,EACrC,OAAOA,EAGR,GAAmB,kBAARA,EACV,MAAO,GAGR,GAAIrgG,MAAM+4B,QAAQsnE,GACjB,OAAOrqE,EAAW2K,MAAM,KAAM0/D,GAG/B,GAAIA,EAAI7rF,WAAalP,OAAOk7B,UAAUhsB,WAAa6rF,EAAI7rF,SAASA,WAAWhV,SAAS,iBACnF,OAAO6gG,EAAI7rF,WAGZ,IAAI6iO,EAAU,GAEd,IAAK,IAAIhyO,KAAOg7F,EACX4f,EAAOv/E,KAAK2/D,EAAKh7F,IAAQg7F,EAAIh7F,KAChCgyO,EAAUC,EAAYD,EAAShyO,IAIjC,OAAOgyO,CACR,CAEA,SAASC,EAAa11O,EAAO41O,GAC5B,OAAKA,EAID51O,EACIA,EAAQ,IAAM41O,EAGf51O,EAAQ41O,EAPP51O,CAQT,CAEqCmW,EAAO+iD,SAC3C9kC,EAAW/d,QAAU+d,EACrBje,EAAO+iD,QAAU9kC,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIF,CArEA,gCCPc,SAASsuE,EAA8B3oE,EAAQyoE,GAC5D,GAAc,MAAVzoE,EAAgB,MAAO,CAAC,EAC5B,IAEIt2B,EAAK0D,EAFLO,EAAS,CAAC,EACV+6F,EAAa/+F,OAAOglB,KAAKqR,GAE7B,IAAK5yB,EAAI,EAAGA,EAAIs7F,EAAW5kG,OAAQsJ,IACjC1D,EAAMg/F,EAAWt7F,GACbq7F,EAAS/tD,QAAQhxC,IAAQ,IAC7BiE,EAAOjE,GAAOs2B,EAAOt2B,IAEvB,OAAOiE,CACT,0ECTe,SAAS0nH,EAAKhrC,EAAIyxJ,GAC/B,OAAO,WACL,OAAOzxJ,EAAGrlD,MAAM82M,EAASvwO,UAC3B,CACF,yGCAA,MAAOsN,SAAQA,GAAIlP,OAAOk7B,WACpB,eAACyjK,GAAkB3+L,OAEnBoyO,GAAU1pM,EAGb1oC,OAAO28B,OAAO,MAHQ01M,IACrB,MAAM/5L,EAAMppC,EAASksB,KAAKi3M,GAC1B,OAAO3pM,EAAM4P,KAAS5P,EAAM4P,GAAOA,EAAInjC,MAAM,GAAI,GAAGlb,cAAc,GAFvD,IAACyuC,EAKhB,MAAM4pM,EAAcxrO,IAClBA,EAAOA,EAAK7M,cACJo4O,GAAUD,EAAOC,KAAWvrO,GAGhCyrO,EAAazrO,GAAQurO,UAAgBA,IAAUvrO,GAS/C,QAAC2sB,GAAW/4B,MASZ83O,EAAcD,EAAW,aAqB/B,MAAME,EAAgBH,EAAW,eA2BjC,MAAMI,EAAWH,EAAW,UAQtBI,EAAaJ,EAAW,YASxBK,EAAWL,EAAW,UAStBM,EAAYR,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/Cr3H,EAAiByC,IACrB,GAAoB,WAAhB20H,EAAO30H,GACT,OAAO,EAGT,MAAMviF,EAAYyjK,EAAelhF,GACjC,OAAsB,OAAdviF,GAAsBA,IAAcl7B,OAAOk7B,WAAkD,OAArCl7B,OAAO2+L,eAAezjK,OAA0BtH,OAAOk/M,eAAer1H,MAAU7pF,OAAO4tF,YAAY/D,EAAI,EAUnKs1H,EAAST,EAAW,QASpBU,EAASV,EAAW,QASpBW,EAASX,EAAW,QASpBY,EAAaZ,EAAW,YAsCxBa,EAAoBb,EAAW,mBA2BrC,SAASl4O,EAAQktC,EAAKo5C,GAA+B,IAM/Cj9E,EACAixC,GAPoB,WAAC0+L,GAAa,GAAMxxO,UAAAzH,OAAA,QAAA+F,IAAA0B,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAAR0lC,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL7T,EAAQ6T,GAEV,IAAK7jC,EAAI,EAAGixC,EAAIpN,EAAIntC,OAAQsJ,EAAIixC,EAAGjxC,IACjCi9E,EAAGtlD,KAAK,KAAMkM,EAAI7jC,GAAIA,EAAG6jC,OAEtB,CAEL,MAAMtiB,EAAOouN,EAAapzO,OAAOqzO,oBAAoB/rM,GAAOtnC,OAAOglB,KAAKsiB,GAClEk4D,EAAMx6E,EAAK7qB,OACjB,IAAI4F,EAEJ,IAAK0D,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACnB1D,EAAMilB,EAAKvhB,GACXi9E,EAAGtlD,KAAK,KAAMkM,EAAIvnC,GAAMA,EAAKunC,EAEjC,CACF,CAEA,SAASgsM,EAAQhsM,EAAKvnC,GACpBA,EAAMA,EAAI9F,cACV,MAAM+qB,EAAOhlB,OAAOglB,KAAKsiB,GACzB,IACIwnE,EADArrG,EAAIuhB,EAAK7qB,OAEb,KAAOsJ,KAAM,GAEX,GADAqrG,EAAO9pF,EAAKvhB,GACR1D,IAAQ+uG,EAAK70G,cACf,OAAO60G,EAGX,OAAO,IACT,CAEA,MAAMykI,EAEsB,qBAAfC,WAAmCA,WACvB,qBAAT/8M,KAAuBA,KAA0B,qBAAXr7B,OAAyBA,OAASqtC,OAGlFgrM,EAAoB9oO,IAAa6nO,EAAY7nO,IAAYA,IAAY4oO,EAoD3E,MA8HMG,GAAgBC,EAKG,qBAAfhqK,YAA8Bg1H,EAAeh1H,YAH9C0oK,GACEsB,GAActB,aAAiBsB,GAHrB,IAACA,EAetB,MAiCMC,EAAatB,EAAW,mBAWxBn3M,EAAiB,CAACp2B,IAAA,IAAC,eAACo2B,GAAep2B,EAAA,MAAK,CAACuiC,EAAKk2E,IAASriF,EAAeC,KAAKkM,EAAKk2E,EAAK,EAApE,CAAsEx9G,OAAOk7B,WAS9F24M,EAAWvB,EAAW,UAEtBwB,EAAoBA,CAACxsM,EAAKysM,KAC9B,MAAMC,EAAch0O,OAAO8hM,0BAA0Bx6J,GAC/C2sM,EAAqB,CAAC,EAE5B75O,EAAQ45O,GAAa,CAACx1C,EAAYp7L,KAChC,IAAIs6G,GAC2C,KAA1CA,EAAMq2H,EAAQv1C,EAAYp7L,EAAMkkC,MACnC2sM,EAAmB7wO,GAAQs6G,GAAO8gF,EACpC,IAGFx+L,OAAO09K,iBAAiBp2I,EAAK2sM,EAAmB,EAuD5CC,EAAQ,6BAERC,EAAQ,aAERC,EAAW,CACfD,QACAD,QACAG,YAAaH,EAAQA,EAAMtrN,cAAgBurN,GAwB7C,MA+BMG,EAAYhC,EAAW,iBAK7B,GACE7+M,UACAg/M,gBACA8B,SAnnBF,SAAkB92H,GAChB,OAAe,OAARA,IAAiB+0H,EAAY/0H,IAA4B,OAApBA,EAAI73F,cAAyB4sN,EAAY/0H,EAAI73F,cACpF+sN,EAAWl1H,EAAI73F,YAAY2uN,WAAa92H,EAAI73F,YAAY2uN,SAAS92H,EACxE,EAinBE+2H,WArekBnC,IAClB,IAAIoC,EACJ,OAAOpC,IACgB,oBAAbx8M,UAA2Bw8M,aAAiBx8M,UAClD88M,EAAWN,EAAMn5I,UACY,cAA1Bu7I,EAAOrC,EAAOC,KAEL,WAAToC,GAAqB9B,EAAWN,EAAMnjO,WAAkC,sBAArBmjO,EAAMnjO,YAG/D,EA4dDwlO,kBA/lBF,SAA2Bj3H,GACzB,IAAIvqF,EAMJ,OAJEA,EAD0B,qBAAhBw2C,aAAiCA,YAAYm2B,OAC9Cn2B,YAAYm2B,OAAO4d,GAElBA,GAASA,EAAI7zC,QAAY6oK,EAAch1H,EAAI7zC,QAEhD12C,CACT,EAwlBEw/M,WACAE,WACA+B,UA/iBgBtC,IAAmB,IAAVA,IAA4B,IAAVA,EAgjB3CQ,WACA73H,gBACAw3H,cACAO,SACAC,SACAC,SACAY,WACAlB,aACAiC,SA3fgBn3H,GAAQo1H,EAASp1H,IAAQk1H,EAAWl1H,EAAIo3H,MA4fxD1B,oBACAO,eACAR,aACA94O,UACA06O,MA/XF,SAASA,IACP,MAAM,SAACC,GAAYtB,EAAiB1tN,OAASA,MAAQ,CAAC,EAChDmN,EAAS,CAAC,EACV8hN,EAAcA,CAACv3H,EAAK19G,KACxB,MAAMk1O,EAAYF,GAAYzB,EAAQpgN,EAAQnzB,IAAQA,EAClDi7G,EAAc9nF,EAAO+hN,KAAej6H,EAAcyC,GACpDvqF,EAAO+hN,GAAaH,EAAM5hN,EAAO+hN,GAAYx3H,GACpCzC,EAAcyC,GACvBvqF,EAAO+hN,GAAaH,EAAM,CAAC,EAAGr3H,GACrBhqF,EAAQgqF,GACjBvqF,EAAO+hN,GAAax3H,EAAItoG,QAExB+d,EAAO+hN,GAAax3H,CACtB,EAGF,IAAK,IAAIh6G,EAAI,EAAGixC,EAAI9yC,UAAUzH,OAAQsJ,EAAIixC,EAAGjxC,IAC3C7B,UAAU6B,IAAMrJ,EAAQwH,UAAU6B,GAAIuxO,GAExC,OAAO9hN,CACT,EA4WEuoF,OAhWa,SAACxyF,EAAGC,EAAGipN,GAA8B,IAArB,WAACiB,GAAWxxO,UAAAzH,OAAA,QAAA+F,IAAA0B,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPAxH,EAAQ8uB,GAAG,CAACu0F,EAAK19G,KACXoyO,GAAWQ,EAAWl1H,GACxBx0F,EAAElpB,GAAO2rH,EAAKjO,EAAK00H,GAEnBlpN,EAAElpB,GAAO09G,CACX,GACC,CAAC21H,eACGnqN,CACT,EAwVE6M,KA5dYwiB,GAAQA,EAAIxiB,KACxBwiB,EAAIxiB,OAASwiB,EAAI3mB,QAAQ,qCAAsC,IA4d/DujN,SAhVgBz1O,IACc,QAA1BA,EAAQ2wD,WAAW,KACrB3wD,EAAUA,EAAQ0V,MAAM,IAEnB1V,GA6UP01O,SAjUeA,CAACvvN,EAAawvN,EAAkBvvN,EAAOmuN,KACtDpuN,EAAYsV,UAAYl7B,OAAO28B,OAAOy4M,EAAiBl6M,UAAW84M,GAClEpuN,EAAYsV,UAAUtV,YAAcA,EACpC5lB,OAAOuwD,eAAe3qC,EAAa,QAAS,CAC1CtpB,MAAO84O,EAAiBl6M,YAE1BrV,GAAS7lB,OAAOmxB,OAAOvL,EAAYsV,UAAWrV,EAAM,EA4TpDwvN,aAhTmBA,CAACC,EAAWC,EAASh8O,EAAQi8O,KAChD,IAAI3vN,EACApiB,EACA+5G,EACJ,MAAMzN,EAAS,CAAC,EAIhB,GAFAwlI,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFA1vN,EAAQ7lB,OAAOqzO,oBAAoBiC,GACnC7xO,EAAIoiB,EAAM1rB,OACHsJ,KAAM,GACX+5G,EAAO33F,EAAMpiB,GACP+xO,IAAcA,EAAWh4H,EAAM83H,EAAWC,IAAcxlI,EAAOyN,KACnE+3H,EAAQ/3H,GAAQ83H,EAAU93H,GAC1BzN,EAAOyN,IAAQ,GAGnB83H,GAAuB,IAAX/7O,GAAoBolM,EAAe22C,EACjD,OAASA,KAAe/7O,GAAUA,EAAO+7O,EAAWC,KAAaD,IAAct1O,OAAOk7B,WAEtF,OAAOq6M,CAAO,EA0RdnD,SACAE,aACA7uJ,SAhReA,CAACnrC,EAAKm9L,EAAcvvN,KACnCoyB,EAAM7b,OAAO6b,SACIp4C,IAAbgmB,GAA0BA,EAAWoyB,EAAIn+C,UAC3C+rB,EAAWoyB,EAAIn+C,QAEjB+rB,GAAYuvN,EAAat7O,OACzB,MAAMqkI,EAAYlmF,EAAIvH,QAAQ0kM,EAAcvvN,GAC5C,OAAsB,IAAfs4G,GAAoBA,IAAct4G,CAAQ,EA0QjDgwK,QA/Pem8C,IACf,IAAKA,EAAO,OAAO,KACnB,GAAI5+M,EAAQ4+M,GAAQ,OAAOA,EAC3B,IAAI5uO,EAAI4uO,EAAMl4O,OACd,IAAKy4O,EAASnvO,GAAI,OAAO,KACzB,MAAMs3G,EAAM,IAAIrgH,MAAM+I,GACtB,KAAOA,KAAM,GACXs3G,EAAIt3G,GAAK4uO,EAAM5uO,GAEjB,OAAOs3G,CAAG,EAuPV26H,aA5NmBA,CAACpuM,EAAKo5C,KACzB,MAEM8gC,GAFYl6E,GAAOA,EAAI1T,OAAO4tF,WAETpmF,KAAKkM,GAEhC,IAAIpU,EAEJ,MAAQA,EAASsuF,EAAS1tG,UAAYof,EAAO20D,MAAM,CACjD,MAAM8mD,EAAOz7G,EAAO52B,MACpBokF,EAAGtlD,KAAKkM,EAAKqnG,EAAK,GAAIA,EAAK,GAC7B,GAmNAgnG,SAxMeA,CAACC,EAAQt9L,KACxB,IAAImqC,EACJ,MAAMs4B,EAAM,GAEZ,KAAwC,QAAhCt4B,EAAUmzJ,EAAO14H,KAAK5kE,KAC5ByiE,EAAItxF,KAAKg5D,GAGX,OAAOs4B,CAAG,EAiMV64H,aACAz4M,eAAc,EACd06M,WAAY16M,EACZ24M,oBACAgC,cAxJqBxuM,IACrBwsM,EAAkBxsM,GAAK,CAACk3J,EAAYp7L,KAElC,GAAIuvO,EAAWrrM,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUyJ,QAAQ3tC,GAC/D,OAAO,EAGT,MAAM9G,EAAQgrC,EAAIlkC,GAEbuvO,EAAWr2O,KAEhBkiM,EAAWpjF,YAAa,EAEpB,aAAcojF,EAChBA,EAAWjjF,UAAW,EAInBijF,EAAW30J,MACd20J,EAAW30J,IAAM,KACf,MAAM32B,MAAM,qCAAwC9P,EAAO,IAAK,GAEpE,GACA,EAkIF2yO,YA/HkBA,CAACC,EAAeC,KAClC,MAAM3uM,EAAM,CAAC,EAEP2nG,EAAUl0B,IACdA,EAAI3gH,SAAQkC,IACVgrC,EAAIhrC,IAAS,CAAI,GACjB,EAKJ,OAFAm3B,EAAQuiN,GAAiB/mG,EAAO+mG,GAAiB/mG,EAAOxyG,OAAOu5M,GAAe1tN,MAAM2tN,IAE7E3uM,CAAG,EAqHV4uM,YAjMkB59L,GACXA,EAAIr+C,cAAc03B,QAAQ,yBAC/B,SAAkB+jB,EAAGoxF,EAAIiE,GACvB,OAAOjE,EAAGl+G,cAAgBmiH,CAC5B,IA8LFz2B,KAnHWA,OAoHX6hI,eAlHqBA,CAAC75O,EAAOiM,KAC7BjM,GAASA,EACFs+C,OAAOyW,SAAS/0D,GAASA,EAAQiM,GAiHxC+qO,UACA7qM,OAAQ8qM,EACRE,mBACAW,WACAgC,eAxGqB,WAAgD,IAA/CtlN,EAAIlvB,UAAAzH,OAAA,QAAA+F,IAAA0B,UAAA,GAAAA,UAAA,GAAG,GAAIy0O,EAAQz0O,UAAAzH,OAAA,QAAA+F,IAAA0B,UAAA,GAAAA,UAAA,GAAGwyO,EAASC,YACjD/7L,EAAM,GACV,MAAM,OAACn+C,GAAUk8O,EACjB,KAAOvlN,KACLwnB,GAAO+9L,EAAS/kO,KAAKiuE,SAAWplF,EAAO,GAGzC,OAAOm+C,CACT,EAiGEg+L,oBAxFF,SAA6BjE,GAC3B,SAAUA,GAASM,EAAWN,EAAMn5I,SAAyC,aAA9Bm5I,EAAMz+M,OAAOk/M,cAA+BT,EAAMz+M,OAAO4tF,UAC1G,EAuFE+0H,aArFoBjvM,IACpB,MAAMo9H,EAAQ,IAAIhqK,MAAM,IAElB87O,EAAQA,CAACngN,EAAQ5yB,KAErB,GAAIovO,EAASx8M,GAAS,CACpB,GAAIquI,EAAM3zH,QAAQ1a,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBquI,EAAMjhK,GAAK4yB,EACX,MAAMryB,EAASyvB,EAAQ4C,GAAU,GAAK,CAAC,EASvC,OAPAj8B,EAAQi8B,GAAQ,CAAC/5B,EAAOyD,KACtB,MAAM02O,EAAeD,EAAMl6O,EAAOmH,EAAI,IACrC+uO,EAAYiE,KAAkBzyO,EAAOjE,GAAO02O,EAAa,IAG5D/xE,EAAMjhK,QAAKvD,EAEJ8D,CACT,CACF,CAEA,OAAOqyB,CAAM,EAGf,OAAOmgN,EAAMlvM,EAAK,EAAE,EA0DpBgtM,YACAoC,WAtDkBrE,GAClBA,IAAUQ,EAASR,IAAUM,EAAWN,KAAWM,EAAWN,EAAM/xO,OAASqyO,EAAWN,EAAM32O,QC7oBhG,SAASi7O,EAAWn3O,EAAS+zE,EAAMogC,EAAQnjB,EAAS9vF,GAClDwS,MAAMkoB,KAAKrV,MAEP7S,MAAM0jO,kBACR1jO,MAAM0jO,kBAAkB7wN,KAAMA,KAAKH,aAEnCG,KAAK2+I,OAAS,IAAIxxJ,OAASwxJ,MAG7B3+I,KAAKvmB,QAAUA,EACfumB,KAAK3iB,KAAO,aACZmwE,IAASxtD,KAAKwtD,KAAOA,GACrBogC,IAAW5tF,KAAK4tF,OAASA,GACzBnjB,IAAYzqE,KAAKyqE,QAAUA,GAC3B9vF,IAAaqlB,KAAKrlB,SAAWA,EAC/B,CAEAm2O,EAAM1B,SAASwB,EAAYzjO,MAAO,CAChCy0B,OAAQ,WACN,MAAO,CAELnoC,QAASumB,KAAKvmB,QACd4D,KAAM2iB,KAAK3iB,KAEX8nB,YAAanF,KAAKmF,YAClBs/J,OAAQzkK,KAAKykK,OAEbvuH,SAAUl2C,KAAKk2C,SACfoiG,WAAYt4I,KAAKs4I,WACjBy4E,aAAc/wN,KAAK+wN,aACnBpyE,MAAO3+I,KAAK2+I,MAEZ/wD,OAAQkjI,EAAMN,aAAaxwN,KAAK4tF,QAChCpgC,KAAMxtD,KAAKwtD,KACX7nE,OAAQqa,KAAKrlB,UAAYqlB,KAAKrlB,SAASgL,OAASqa,KAAKrlB,SAASgL,OAAS,KAE3E,IAGF,MAAMwvB,EAAYy7M,EAAWz7M,UACvB84M,EAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEA55O,SAAQm5E,IACRygK,EAAYzgK,GAAQ,CAACj3E,MAAOi3E,EAAK,IAGnCvzE,OAAO09K,iBAAiBi5D,EAAY3C,GACpCh0O,OAAOuwD,eAAer1B,EAAW,eAAgB,CAAC5+B,OAAO,IAGzDq6O,EAAWh8O,KAAO,CAACgB,EAAO43E,EAAMogC,EAAQnjB,EAAS9vF,EAAUq2O,KACzD,MAAMC,EAAah3O,OAAO28B,OAAOzB,GAgBjC,OAdA27M,EAAMxB,aAAa15O,EAAOq7O,GAAY,SAAgB1vM,GACpD,OAAOA,IAAQp0B,MAAMgoB,SACvB,IAAGsiF,GACe,iBAATA,IAGTm5H,EAAWv7M,KAAK47M,EAAYr7O,EAAM6D,QAAS+zE,EAAMogC,EAAQnjB,EAAS9vF,GAElEs2O,EAAWC,MAAQt7O,EAEnBq7O,EAAW5zO,KAAOzH,EAAMyH,KAExB2zO,GAAe/2O,OAAOmxB,OAAO6lN,EAAYD,GAElCC,CAAU,EAGnB,UCrFA,SAASE,EAAY7E,GACnB,OAAOwE,EAAM77H,cAAcq3H,IAAUwE,EAAMpjN,QAAQ4+M,EACrD,CASA,SAAS8E,EAAep3O,GACtB,OAAO82O,EAAMpzJ,SAAS1jF,EAAK,MAAQA,EAAIoV,MAAM,GAAI,GAAKpV,CACxD,CAWA,SAASq3O,EAAUn0O,EAAMlD,EAAKs3O,GAC5B,OAAKp0O,EACEA,EAAKlI,OAAOgF,GAAKwD,KAAI,SAAcnC,EAAOqC,GAG/C,OADArC,EAAQ+1O,EAAe/1O,IACfi2O,GAAQ5zO,EAAI,IAAMrC,EAAQ,IAAMA,CAC1C,IAAG0nB,KAAKuuN,EAAO,IAAM,IALHt3O,CAMpB,CAaA,MAAMu3O,EAAaT,EAAMxB,aAAawB,EAAO,CAAC,EAAG,MAAM,SAAgBr5H,GACrE,MAAO,WAAWz0E,KAAKy0E,EACzB,IA8JA,QArIA,SAAoBl2E,EAAKuiD,EAAU7jE,GACjC,IAAK6wN,EAAMhE,SAASvrM,GAClB,MAAM,IAAI9K,UAAU,4BAItBqtD,EAAWA,GAAY,IAAyBh0D,SAYhD,MAAM0hN,GATNvxN,EAAU6wN,EAAMxB,aAAarvN,EAAS,CACpCuxN,YAAY,EACZF,MAAM,EACNz+E,SAAS,IACR,GAAO,SAAiB/lI,EAAQwD,GAEjC,OAAQwgN,EAAMrE,YAAYn8M,EAAOxD,GACnC,KAE2B0kN,WAErBC,EAAUxxN,EAAQwxN,SAAWC,EAC7BJ,EAAOrxN,EAAQqxN,KACfz+E,EAAU5yI,EAAQ4yI,QAElB8+E,GADQ1xN,EAAQwjD,MAAwB,qBAATA,MAAwBA,OACpCqtK,EAAMP,oBAAoBzsJ,GAEnD,IAAKgtJ,EAAMlE,WAAW6E,GACpB,MAAM,IAAIh7M,UAAU,8BAGtB,SAASm7M,EAAar7O,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAIu6O,EAAM9D,OAAOz2O,GACf,OAAOA,EAAMs7O,cAGf,IAAKF,GAAWb,EAAM5D,OAAO32O,GAC3B,MAAM,IAAIq6O,EAAW,gDAGvB,OAAIE,EAAMpE,cAAcn2O,IAAUu6O,EAAMnD,aAAap3O,GAC5Co7O,GAA2B,oBAATluK,KAAsB,IAAIA,KAAK,CAACltE,IAAUu7O,OAAOl9O,KAAK2B,GAG1EA,CACT,CAYA,SAASm7O,EAAen7O,EAAOyD,EAAKkD,GAClC,IAAI83G,EAAMz+G,EAEV,GAAIA,IAAU2G,GAAyB,kBAAV3G,EAC3B,GAAIu6O,EAAMpzJ,SAAS1jF,EAAK,MAEtBA,EAAMw3O,EAAax3O,EAAMA,EAAIoV,MAAM,GAAI,GAEvC7Y,EAAQg5B,KAAKU,UAAU15B,QAClB,GACJu6O,EAAMpjN,QAAQn3B,IAnGvB,SAAqBy+G,GACnB,OAAO87H,EAAMpjN,QAAQsnF,KAASA,EAAIptE,KAAKupM,EACzC,CAiGiCY,CAAYx7O,KACnCu6O,EAAM3D,WAAW52O,IAAUu6O,EAAMpzJ,SAAS1jF,EAAK,SAAWg7G,EAAM87H,EAAM3gD,QAAQ55L,IAYhF,OATAyD,EAAMo3O,EAAep3O,GAErBg7G,EAAI3gH,SAAQ,SAAc67G,EAAI1lG,IAC1BsmO,EAAMrE,YAAYv8H,IAAc,OAAPA,GAAgBpsB,EAASqP,QAEtC,IAAZ0/D,EAAmBw+E,EAAU,CAACr3O,GAAMwQ,EAAO8mO,GAAqB,OAAZz+E,EAAmB74J,EAAMA,EAAM,KACnF43O,EAAa1hI,GAEjB,KACO,EAIX,QAAIihI,EAAY56O,KAIhButF,EAASqP,OAAOk+I,EAAUn0O,EAAMlD,EAAKs3O,GAAOM,EAAar7O,KAElD,EACT,CAEA,MAAMooK,EAAQ,GAERqzE,EAAiB/3O,OAAOmxB,OAAOmmN,EAAY,CAC/CG,iBACAE,eACAT,gBAyBF,IAAKL,EAAMhE,SAASvrM,GAClB,MAAM,IAAI9K,UAAU,0BAKtB,OA5BA,SAASw7M,EAAM17O,EAAO2G,GACpB,IAAI4zO,EAAMrE,YAAYl2O,GAAtB,CAEA,IAA8B,IAA1BooK,EAAM3zH,QAAQz0C,GAChB,MAAM4W,MAAM,kCAAoCjQ,EAAK6lB,KAAK,MAG5D47I,EAAMj7I,KAAKntB,GAEXu6O,EAAMz8O,QAAQkC,GAAO,SAAc25G,EAAIl2G,IAKtB,OAJE82O,EAAMrE,YAAYv8H,IAAc,OAAPA,IAAgBuhI,EAAQp8M,KAChEyuD,EAAUosB,EAAI4gI,EAAMnE,SAAS3yO,GAAOA,EAAI+1B,OAAS/1B,EAAKkD,EAAM80O,KAI5DC,EAAM/hI,EAAIhzG,EAAOA,EAAKlI,OAAOgF,GAAO,CAACA,GAEzC,IAEA2kK,EAAMvzG,KAlB8B,CAmBtC,CAMA6mL,CAAM1wM,GAECuiD,CACT,EC5MA,SAASouJ,EAAO3/L,GACd,MAAM4/L,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO1vC,mBAAmBlwJ,GAAK3mB,QAAQ,oBAAoB,SAAkB92B,GAC3E,OAAOq9O,EAAQr9O,EACjB,GACF,CAUA,SAASs9O,EAAqBn+M,EAAQhU,GACpCD,KAAKqyN,OAAS,GAEdp+M,GAAUq+M,EAAWr+M,EAAQjU,KAAMC,EACrC,CAEA,MAAMkV,EAAYi9M,EAAqBj9M,UAEvCA,EAAUg+D,OAAS,SAAgB91F,EAAM9G,GACvCypB,KAAKqyN,OAAO3uN,KAAK,CAACrmB,EAAM9G,GAC1B,EAEA4+B,EAAUhsB,SAAW,SAAkBopO,GACrC,MAAMC,EAAUD,EAAU,SAASh8O,GACjC,OAAOg8O,EAAQl9M,KAAKrV,KAAMzpB,EAAO27O,EACnC,EAAIA,EAEJ,OAAOlyN,KAAKqyN,OAAO70O,KAAI,SAAcorI,GACnC,OAAO4pG,EAAQ5pG,EAAK,IAAM,IAAM4pG,EAAQ5pG,EAAK,GAC/C,GAAG,IAAI7lH,KAAK,IACd,EAEA,UC5CA,SAASmvN,EAAOx6H,GACd,OAAO+qF,mBAAmB/qF,GACxB9rF,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAAS6mN,EAAS30O,EAAKm2B,EAAQhU,GAE5C,IAAKgU,EACH,OAAOn2B,EAGT,MAAM00O,EAAUvyN,GAAWA,EAAQiyN,QAAUA,EAEvCQ,EAAczyN,GAAWA,EAAQ0yN,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAYz+M,EAAQhU,GAEpB6wN,EAAM1D,kBAAkBn5M,GACzCA,EAAO9qB,WACP,IAAIipO,EAAqBn+M,EAAQhU,GAAS9W,SAASqpO,GAGnDI,EAAkB,CACpB,MAAMC,EAAgB/0O,EAAIktC,QAAQ,MAEX,IAAnB6nM,IACF/0O,EAAMA,EAAIsR,MAAM,EAAGyjO,IAErB/0O,KAA8B,IAAtBA,EAAIktC,QAAQ,KAAc,IAAM,KAAO4nM,CACjD,CAEA,OAAO90O,CACT,CCQA,SAlEA,MACE+hB,WAAAA,GACEG,KAAK8yN,SAAW,EAClB,CAUAC,GAAAA,CAAIC,EAAWC,EAAUhzN,GAOvB,OANAD,KAAK8yN,SAASpvN,KAAK,CACjBsvN,YACAC,WACAC,cAAajzN,GAAUA,EAAQizN,YAC/BC,QAASlzN,EAAUA,EAAQkzN,QAAU,OAEhCnzN,KAAK8yN,SAAS1+O,OAAS,CAChC,CASAg/O,KAAAA,CAAM92O,GACA0jB,KAAK8yN,SAASx2O,KAChB0jB,KAAK8yN,SAASx2O,GAAM,KAExB,CAOAy1F,KAAAA,GACM/xE,KAAK8yN,WACP9yN,KAAK8yN,SAAW,GAEpB,CAYAz+O,OAAAA,CAAQsmF,GACNm2J,EAAMz8O,QAAQ2rB,KAAK8yN,UAAU,SAAwBlsO,GACzC,OAANA,GACF+zE,EAAG/zE,EAEP,GACF,GCjEF,IACEysO,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACE9uJ,WAAW,EACXunJ,QAAS,CACPh5I,gBCJsC,qBAApBA,gBAAkCA,gBAAkBo/I,EDKtEtiN,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxD2zC,KGP2B,qBAATA,KAAuBA,KAAO,MHSlD+vK,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAXp+O,QAA8C,qBAAb/B,SAmBxDogP,IACHz7I,GAEuB,qBAAdh1D,WAA6BA,UAAUg1D,QADxCw7I,IAAiB,CAAC,cAAe,eAAgB,MAAMzoM,QAAQitD,IAAW,GAFvD,IAC3BA,GAaH,MAAM07I,GAE2B,qBAAtBC,mBAEPljN,gBAAgBkjN,mBACc,oBAAvBljN,KAAKmjN,cCnChB,OACK/C,KACAn1C,ICsFL,SA3CA,SAAwB73G,GACtB,SAASgwJ,EAAU52O,EAAM3G,EAAO0H,EAAQuM,GACtC,IAAInN,EAAOH,EAAKsN,KAChB,MAAMupO,EAAel/L,OAAOyW,UAAUjuD,GAChC22O,EAASxpO,GAAStN,EAAK9I,OAG7B,GAFAiJ,GAAQA,GAAQyzO,EAAMpjN,QAAQzvB,GAAUA,EAAO7J,OAASiJ,EAEpD22O,EAOF,OANIlD,EAAMhB,WAAW7xO,EAAQZ,GAC3BY,EAAOZ,GAAQ,CAACY,EAAOZ,GAAO9G,GAE9B0H,EAAOZ,GAAQ9G,GAGTw9O,EAGL91O,EAAOZ,IAAUyzO,EAAMhE,SAAS7uO,EAAOZ,MAC1CY,EAAOZ,GAAQ,IASjB,OANey2O,EAAU52O,EAAM3G,EAAO0H,EAAOZ,GAAOmN,IAEtCsmO,EAAMpjN,QAAQzvB,EAAOZ,MACjCY,EAAOZ,GA5Cb,SAAuB23G,GACrB,MAAMzzE,EAAM,CAAC,EACPtiB,EAAOhlB,OAAOglB,KAAK+1F,GACzB,IAAIt3G,EACJ,MAAM+7F,EAAMx6E,EAAK7qB,OACjB,IAAI4F,EACJ,IAAK0D,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACnB1D,EAAMilB,EAAKvhB,GACX6jC,EAAIvnC,GAAOg7G,EAAIh7G,GAEjB,OAAOunC,CACT,CAiCqB0yM,CAAch2O,EAAOZ,MAG9B02O,CACV,CAEA,GAAIjD,EAAMrC,WAAW3qJ,IAAagtJ,EAAMlE,WAAW9oJ,EAAS5pF,SAAU,CACpE,MAAMqnC,EAAM,CAAC,EAMb,OAJAuvM,EAAMnB,aAAa7rJ,GAAU,CAACzmF,EAAM9G,KAClCu9O,EAvEN,SAAuBz2O,GAKrB,OAAOyzO,EAAMlB,SAAS,gBAAiBvyO,GAAMG,KAAI1I,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CA+DgBo/O,CAAc72O,GAAO9G,EAAOgrC,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECtDA,MAAMiM,GAAW,CAEf2mM,aAAcC,GAEdC,QAAS,CAAC,MAAO,QAEjBC,iBAAkB,CAAC,SAA0B75O,EAAMizC,GACjD,MAAM6oD,EAAc7oD,EAAQ6mM,kBAAoB,GAC1CC,EAAqBj+I,EAAYvrD,QAAQ,qBAAuB,EAChEypM,EAAkB3D,EAAMhE,SAASryO,GAEnCg6O,GAAmB3D,EAAMjD,WAAWpzO,KACtCA,EAAO,IAAIq1B,SAASr1B,IAKtB,GAFmBq2O,EAAMrC,WAAWh0O,GAGlC,OAAK+5O,GAGEA,EAAqBjlN,KAAKU,UAAUykN,GAAej6O,IAFjDA,EAKX,GAAIq2O,EAAMpE,cAAcjyO,IACtBq2O,EAAMtC,SAAS/zO,IACfq2O,EAAMjC,SAASp0O,IACfq2O,EAAM7D,OAAOxyO,IACbq2O,EAAM5D,OAAOzyO,GAEb,OAAOA,EAET,GAAIq2O,EAAMnC,kBAAkBl0O,GAC1B,OAAOA,EAAKopE,OAEd,GAAIitK,EAAM1D,kBAAkB3yO,GAE1B,OADAizC,EAAQinM,eAAe,mDAAmD,GACnEl6O,EAAK0O,WAGd,IAAIgkO,EAEJ,GAAIsH,EAAiB,CACnB,GAAIl+I,EAAYvrD,QAAQ,sCAAwC,EAC9D,OCzEO,SAA0BvwC,EAAMwlB,GAC7C,OAAOqyN,EAAW73O,EAAM,IAAIkhM,GAASqwC,QAAQh5I,gBAAmB/4F,OAAOmxB,OAAO,CAC5EqmN,QAAS,SAASl7O,EAAOyD,EAAKkD,EAAM03O,GAClC,OAAIj5C,GAASk5C,QAAU/D,EAAMtC,SAASj4O,IACpCypB,KAAKmzE,OAAOn5F,EAAKzD,EAAM4S,SAAS,YACzB,GAGFyrO,EAAQlD,eAAep8M,MAAMtV,KAAMnkB,UAC5C,GACCokB,GACL,CD8De60N,CAAiBr6O,EAAMulB,KAAK+0N,gBAAgB5rO,WAGrD,IAAKgkO,EAAa2D,EAAM3D,WAAW1yO,KAAU87F,EAAYvrD,QAAQ,wBAA0B,EAAG,CAC5F,MAAMgqM,EAAYh1N,KAAKi1N,KAAOj1N,KAAKi1N,IAAInlN,SAEvC,OAAOwiN,EACLnF,EAAa,CAAC,UAAW1yO,GAAQA,EACjCu6O,GAAa,IAAIA,EACjBh1N,KAAK+0N,eAET,CACF,CAEA,OAAIN,GAAmBD,GACrB9mM,EAAQinM,eAAe,oBAAoB,GA1EjD,SAAyBO,EAAUxK,EAAQ6H,GACzC,GAAIzB,EAAMnE,SAASuI,GACjB,IAEE,OADCxK,GAAUn7M,KAAKC,OAAO0lN,GAChBpE,EAAM/gN,KAAKmlN,EACpB,CAAE,MAAOx0O,GACP,GAAe,gBAAXA,EAAErD,KACJ,MAAMqD,CAEV,CAGF,OAAQ6xO,GAAWhjN,KAAKU,WAAWilN,EACrC,CA8DaC,CAAgB16O,IAGlBA,CACT,GAEA26O,kBAAmB,CAAC,SAA2B36O,GAC7C,MAAM05O,EAAen0N,KAAKm0N,cAAgB3mM,GAAS2mM,aAC7Cb,EAAoBa,GAAgBA,EAAab,kBACjD+B,EAAsC,SAAtBr1N,KAAK0jG,aAE3B,GAAIjpH,GAAQq2O,EAAMnE,SAASlyO,KAAW64O,IAAsBtzN,KAAK0jG,cAAiB2xH,GAAgB,CAChG,MACMC,IADoBnB,GAAgBA,EAAad,oBACPgC,EAEhD,IACE,OAAO9lN,KAAKC,MAAM/0B,EACpB,CAAE,MAAOiG,GACP,GAAI40O,EAAmB,CACrB,GAAe,gBAAX50O,EAAErD,KACJ,MAAMuzO,EAAWh8O,KAAK8L,EAAGkwO,EAAW2E,iBAAkBv1N,KAAM,KAAMA,KAAKrlB,UAEzE,MAAM+F,CACR,CACF,CACF,CAEA,OAAOjG,CACT,GAMA4E,QAAS,EAETm2O,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBV,IAAK,CACHnlN,SAAU6rK,GAASqwC,QAAQl8M,SAC3B2zC,KAAMk4H,GAASqwC,QAAQvoK,MAGzBmyK,eAAgB,SAAwBjwO,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA+nC,QAAS,CACPC,OAAQ,CACN,OAAU,oCACV,oBAAgBxzC,KAKtB22O,EAAMz8O,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAW+2F,IAChE59C,GAASE,QAAQ09C,GAAU,CAAC,CAAC,IAG/B,YExJMyqJ,GAAoB/E,EAAMd,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtB8F,GAAajoN,OAAO,aAE1B,SAASkoN,GAAgBC,GACvB,OAAOA,GAAUt/M,OAAOs/M,GAAQjmN,OAAO77B,aACzC,CAEA,SAAS+hP,GAAe1/O,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFu6O,EAAMpjN,QAAQn3B,GAASA,EAAMiH,IAAIy4O,IAAkBv/M,OAAOngC,EACnE,CAgBA,SAAS2/O,GAAiBtxO,EAASrO,EAAOy/O,EAAQxiP,EAAQ2iP,GACxD,OAAIrF,EAAMlE,WAAWp5O,GACZA,EAAO6hC,KAAKrV,KAAMzpB,EAAOy/O,IAG9BG,IACF5/O,EAAQy/O,GAGLlF,EAAMnE,SAASp2O,GAEhBu6O,EAAMnE,SAASn5O,IACiB,IAA3B+C,EAAMy0C,QAAQx3C,GAGnBs9O,EAAMhD,SAASt6O,GACVA,EAAOwvC,KAAKzsC,QADrB,OANA,EASF,CAsBA,MAAM6/O,GACJv2N,WAAAA,CAAY6tB,GACVA,GAAW1tB,KAAK8jB,IAAI4J,EACtB,CAEA5J,GAAAA,CAAIkyM,EAAQK,EAAgBC,GAC1B,MAAM5lN,EAAO1Q,KAEb,SAASu2N,EAAU1lE,EAAQ2lE,EAASC,GAClC,MAAMC,EAAUX,GAAgBS,GAEhC,IAAKE,EACH,MAAM,IAAIvpO,MAAM,0CAGlB,MAAMnT,EAAM82O,EAAMvD,QAAQ78M,EAAMgmN,KAE5B18O,QAAqBG,IAAdu2B,EAAK12B,KAAmC,IAAby8O,QAAmCt8O,IAAbs8O,IAAwC,IAAd/lN,EAAK12B,MACzF02B,EAAK12B,GAAOw8O,GAAWP,GAAeplE,GAE1C,CAEA,MAAM8lE,EAAaA,CAACjpM,EAAS+oM,IAC3B3F,EAAMz8O,QAAQq5C,GAAS,CAACmjI,EAAQ2lE,IAAYD,EAAU1lE,EAAQ2lE,EAASC,KAUzE,OARI3F,EAAM77H,cAAc+gI,IAAWA,aAAkBh2N,KAAKH,YACxD82N,EAAWX,EAAQK,GACXvF,EAAMnE,SAASqJ,KAAYA,EAASA,EAAOjmN,UArEtB,iCAAiCiT,KAqEmBgzM,EArEVjmN,QAsEvE4mN,ED1EN,CAAeC,IACb,MAAMC,EAAS,CAAC,EAChB,IAAI78O,EACA09G,EACAh6G,EAsBJ,OApBAk5O,GAAcA,EAAWr0N,MAAM,MAAMluB,SAAQ,SAAgBsiH,GAC3Dj5G,EAAIi5G,EAAK3rE,QAAQ,KACjBhxC,EAAM28G,EAAK7zF,UAAU,EAAGplB,GAAGqyB,OAAO77B,cAClCwjH,EAAMf,EAAK7zF,UAAUplB,EAAI,GAAGqyB,QAEvB/1B,GAAQ68O,EAAO78O,IAAQ67O,GAAkB77O,KAIlC,eAARA,EACE68O,EAAO78O,GACT68O,EAAO78O,GAAK0pB,KAAKg0F,GAEjBm/H,EAAO78O,GAAO,CAAC09G,GAGjBm/H,EAAO78O,GAAO68O,EAAO78O,GAAO68O,EAAO78O,GAAO,KAAO09G,EAAMA,EAE3D,IAEOm/H,CACR,EC+CgBC,CAAad,GAASK,GAEvB,MAAVL,GAAkBO,EAAUF,EAAgBL,EAAQM,GAG/Ct2N,IACT,CAEA7sB,GAAAA,CAAI6iP,EAAQtL,GAGV,GAFAsL,EAASD,GAAgBC,GAEb,CACV,MAAMh8O,EAAM82O,EAAMvD,QAAQvtN,KAAMg2N,GAEhC,GAAIh8O,EAAK,CACP,MAAMzD,EAAQypB,KAAKhmB,GAEnB,IAAK0wO,EACH,OAAOn0O,EAGT,IAAe,IAAXm0O,EACF,OAxGV,SAAqBn4L,GACnB,MAAMwkM,EAAS98O,OAAO28B,OAAO,MACvBogN,EAAW,mCACjB,IAAIliP,EAEJ,KAAQA,EAAQkiP,EAAS7/H,KAAK5kE,IAC5BwkM,EAAOjiP,EAAM,IAAMA,EAAM,GAG3B,OAAOiiP,CACT,CA8FiBE,CAAY1gP,GAGrB,GAAIu6O,EAAMlE,WAAWlC,GACnB,OAAOA,EAAOr1M,KAAKrV,KAAMzpB,EAAOyD,GAGlC,GAAI82O,EAAMhD,SAASpD,GACjB,OAAOA,EAAOvzH,KAAK5gH,GAGrB,MAAM,IAAIkgC,UAAU,yCACtB,CACF,CACF,CAEAoN,GAAAA,CAAImyM,EAAQn3J,GAGV,GAFAm3J,EAASD,GAAgBC,GAEb,CACV,MAAMh8O,EAAM82O,EAAMvD,QAAQvtN,KAAMg2N,GAEhC,SAAUh8O,QAAqBG,IAAd6lB,KAAKhmB,IAAwB6kF,IAAWq3J,GAAiBl2N,EAAMA,KAAKhmB,GAAMA,EAAK6kF,GAClG,CAEA,OAAO,CACT,CAEA7yC,OAAOgqM,EAAQn3J,GACb,MAAMnuD,EAAO1Q,KACb,IAAIk3N,GAAU,EAEd,SAASC,EAAaX,GAGpB,GAFAA,EAAUT,GAAgBS,GAEb,CACX,MAAMx8O,EAAM82O,EAAMvD,QAAQ78M,EAAM8lN,IAE5Bx8O,GAAS6kF,IAAWq3J,GAAiBxlN,EAAMA,EAAK12B,GAAMA,EAAK6kF,YACtDnuD,EAAK12B,GAEZk9O,GAAU,EAEd,CACF,CAQA,OANIpG,EAAMpjN,QAAQsoN,GAChBA,EAAO3hP,QAAQ8iP,GAEfA,EAAanB,GAGRkB,CACT,CAEAnlJ,KAAAA,CAAMlT,GACJ,MAAM5/D,EAAOhlB,OAAOglB,KAAKe,MACzB,IAAItiB,EAAIuhB,EAAK7qB,OACT8iP,GAAU,EAEd,KAAOx5O,KAAK,CACV,MAAM1D,EAAMilB,EAAKvhB,GACbmhF,IAAWq3J,GAAiBl2N,EAAMA,KAAKhmB,GAAMA,EAAK6kF,GAAS,YACtD7+D,KAAKhmB,GACZk9O,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAvnE,SAAAA,CAAU15G,GACR,MAAMvlC,EAAO1Q,KACP0tB,EAAU,CAAC,EAsBjB,OApBAojM,EAAMz8O,QAAQ2rB,MAAM,CAACzpB,EAAOy/O,KAC1B,MAAMh8O,EAAM82O,EAAMvD,QAAQ7/L,EAASsoM,GAEnC,GAAIh8O,EAGF,OAFA02B,EAAK12B,GAAOi8O,GAAe1/O,eACpBm6B,EAAKslN,GAId,MAAMoB,EAAanhL,EA1JzB,SAAsB+/K,GACpB,OAAOA,EAAOjmN,OACX77B,cAAc03B,QAAQ,mBAAmB,CAACjlB,EAAG84E,EAAMltC,IAC3CktC,EAAK58D,cAAgB0vB,GAElC,CAqJkC8kM,CAAarB,GAAUt/M,OAAOs/M,GAAQjmN,OAE9DqnN,IAAepB,UACVtlN,EAAKslN,GAGdtlN,EAAK0mN,GAAcnB,GAAe1/O,GAElCm3C,EAAQ0pM,IAAc,CAAI,IAGrBp3N,IACT,CAEAhrB,MAAAA,GAAmB,QAAAqyG,EAAAxrG,UAAAzH,OAATkjP,EAAO,IAAA3iP,MAAA0yG,GAAA0B,EAAA,EAAAA,EAAA1B,EAAA0B,IAAPuuI,EAAOvuI,GAAAltG,UAAAktG,GACf,OAAO/oF,KAAKH,YAAY7qB,OAAOgrB,QAASs3N,EAC1C,CAEA11M,MAAAA,CAAO21M,GACL,MAAMh2M,EAAMtnC,OAAO28B,OAAO,MAM1B,OAJAk6M,EAAMz8O,QAAQ2rB,MAAM,CAACzpB,EAAOy/O,KACjB,MAATz/O,IAA2B,IAAVA,IAAoBgrC,EAAIy0M,GAAUuB,GAAazG,EAAMpjN,QAAQn3B,GAASA,EAAMwsB,KAAK,MAAQxsB,EAAM,IAG3GgrC,CACT,CAEA,CAAC1T,OAAO4tF,YACN,OAAOxhH,OAAOC,QAAQ8lB,KAAK4hB,UAAU/T,OAAO4tF,WAC9C,CAEAtyG,QAAAA,GACE,OAAOlP,OAAOC,QAAQ8lB,KAAK4hB,UAAUpkC,KAAIwB,IAAA,IAAEg3O,EAAQz/O,GAAMyI,EAAA,OAAKg3O,EAAS,KAAOz/O,CAAK,IAAEwsB,KAAK,KAC5F,CAEA,IAAK8K,OAAOk/M,eACV,MAAO,cACT,CAEA,WAAOn4O,CAAK03O,GACV,OAAOA,aAAiBtsN,KAAOssN,EAAQ,IAAItsN,KAAKssN,EAClD,CAEA,aAAOt3O,CAAOuoF,GACZ,MAAMi6J,EAAW,IAAIx3N,KAAKu9D,GAAO,QAAAqvG,EAAA/wL,UAAAzH,OADXkjP,EAAO,IAAA3iP,MAAAi4L,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPyqD,EAAOzqD,EAAA,GAAAhxL,UAAAgxL,GAK7B,OAFAyqD,EAAQjjP,SAAS4J,GAAWu5O,EAAS1zM,IAAI7lC,KAElCu5O,CACT,CAEA,eAAOC,CAASzB,GACd,MAIM0B,GAJY13N,KAAK81N,IAAe91N,KAAK81N,IAAc,CACvD4B,UAAW,CAAC,IAGcA,UACtBviN,EAAYnV,KAAKmV,UAEvB,SAASwiN,EAAenB,GACtB,MAAME,EAAUX,GAAgBS,GAE3BkB,EAAUhB,MAlNrB,SAAwBn1M,EAAKy0M,GAC3B,MAAM4B,EAAe9G,EAAMX,YAAY,IAAM6F,GAE7C,CAAC,MAAO,MAAO,OAAO3hP,SAAQwjP,IAC5B59O,OAAOuwD,eAAejpB,EAAKs2M,EAAaD,EAAc,CACpDrhP,MAAO,SAASuhP,EAAMC,EAAMC,GAC1B,OAAOh4N,KAAK63N,GAAYxiN,KAAKrV,KAAMg2N,EAAQ8B,EAAMC,EAAMC,EACzD,EACA1iI,cAAc,GACd,GAEN,CAwMQ2iI,CAAe9iN,EAAWqhN,GAC1BkB,EAAUhB,IAAW,EAEzB,CAIA,OAFA5F,EAAMpjN,QAAQsoN,GAAUA,EAAO3hP,QAAQsjP,GAAkBA,EAAe3B,GAEjEh2N,IACT,EAGFo2N,GAAaqB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpG3G,EAAM/C,kBAAkBqI,GAAajhN,WAAW,CAAAl0B,EAAUjH,KAAQ,IAAjB,MAACzD,GAAM0K,EAClDi3O,EAASl+O,EAAI,GAAG6oB,cAAgB7oB,EAAIoV,MAAM,GAC9C,MAAO,CACLjc,IAAKA,IAAMoD,EACXutC,GAAAA,CAAIq0M,GACFn4N,KAAKk4N,GAAUC,CACjB,EACD,IAGHrH,EAAMf,cAAcqG,IAEpB,YC3Re,SAAS7hG,GAAc6jG,EAAKz9O,GACzC,MAAMizG,EAAS5tF,MAAQwtB,GACjB5oC,EAAUjK,GAAYizG,EACtBlgE,EAAU0oM,GAAaxhP,KAAKgQ,EAAQ8oC,SAC1C,IAAIjzC,EAAOmK,EAAQnK,KAQnB,OANAq2O,EAAMz8O,QAAQ+jP,GAAK,SAAmBz9J,GACpClgF,EAAOkgF,EAAGtlD,KAAKu4E,EAAQnzG,EAAMizC,EAAQiiI,YAAah1K,EAAWA,EAASgL,YAASxL,EACjF,IAEAuzC,EAAQiiI,YAEDl1K,CACT,CCzBe,SAAS49O,GAAS9hP,GAC/B,SAAUA,IAASA,EAAM+hP,WAC3B,CCUA,SAASC,GAAc9+O,EAASm0G,EAAQnjB,GAEtCmmJ,EAAWv7M,KAAKrV,KAAiB,MAAXvmB,EAAkB,WAAaA,EAASm3O,EAAW4H,aAAc5qI,EAAQnjB,GAC/FzqE,KAAK3iB,KAAO,eACd,CAEAyzO,EAAM1B,SAASmJ,GAAe3H,EAAY,CACxC0H,YAAY,IAGd,YCrBA,SAAe38C,GAAS+3C,sBAGtB,CACErvK,KAAAA,CAAMhnE,EAAM9G,EAAO28B,EAASh2B,EAAMu7O,EAAQC,GACxC,MAAMC,EAAS,CAACt7O,EAAO,IAAMolM,mBAAmBlsM,IAEhDu6O,EAAMjE,SAAS35M,IAAYylN,EAAOj1N,KAAK,WAAa,IAAI1mB,KAAKk2B,GAAS0lN,eAEtE9H,EAAMnE,SAASzvO,IAASy7O,EAAOj1N,KAAK,QAAUxmB,GAE9C4zO,EAAMnE,SAAS8L,IAAWE,EAAOj1N,KAAK,UAAY+0N,IAEvC,IAAXC,GAAmBC,EAAOj1N,KAAK,UAE/BpwB,SAASqlP,OAASA,EAAO51N,KAAK,KAChC,EAEA81N,IAAAA,CAAKx7O,GACH,MAAMvI,EAAQxB,SAASqlP,OAAO7jP,MAAM,IAAIJ,OAAO,aAAe2I,EAAO,cACrE,OAAQvI,EAAQuqF,mBAAmBvqF,EAAM,IAAM,IACjD,EAEAm4D,MAAAA,CAAO5vD,GACL2iB,KAAKqkD,MAAMhnE,EAAM,GAAIL,KAAKuC,MAAQ,MACpC,GAMF,CACE8kE,KAAAA,GAAS,EACTw0K,KAAIA,IACK,KAET5rL,MAAAA,GAAU,GCxBC,SAAS6rL,GAAcrrM,EAASsrM,GAC7C,OAAItrM,ICHG,8BAA8BzK,KDGP+1M,GENjB,SAAqBtrM,EAASurM,GAC3C,OAAOA,EACHvrM,EAAQ7hB,QAAQ,OAAQ,IAAM,IAAMotN,EAAYptN,QAAQ,OAAQ,IAChE6hB,CACN,CFGWwrM,CAAYxrM,EAASsrM,GAEvBA,CACT,CGfA,SAAep9C,GAAS+3C,sBAIrB,WACC,MAAMwF,EAAO,kBAAkBl2M,KAAKC,UAAUC,WACxCi2M,EAAiB7lP,SAASytB,cAAc,KAC9C,IAAIq4N,EAQJ,SAASC,EAAWv7O,GAClB,IAAIH,EAAOG,EAWX,OATIo7O,IAEFC,EAAerjP,aAAa,OAAQ6H,GACpCA,EAAOw7O,EAAex7O,MAGxBw7O,EAAerjP,aAAa,OAAQ6H,GAG7B,CACLA,KAAMw7O,EAAex7O,KACrBo5F,SAAUoiJ,EAAepiJ,SAAWoiJ,EAAepiJ,SAASnrE,QAAQ,KAAM,IAAM,GAChF4vE,KAAM29I,EAAe39I,KACrB1qE,OAAQqoN,EAAeroN,OAASqoN,EAAeroN,OAAOlF,QAAQ,MAAO,IAAM,GAC3EgtD,KAAMugK,EAAevgK,KAAOugK,EAAevgK,KAAKhtD,QAAQ,KAAM,IAAM,GACpE0tN,SAAUH,EAAeG,SACzBC,KAAMJ,EAAeI,KACrB1mP,SAAiD,MAAtCsmP,EAAetmP,SAAS+gD,OAAO,GACxCulM,EAAetmP,SACf,IAAMsmP,EAAetmP,SAE3B,CAUA,OARAumP,EAAYC,EAAWhkP,OAAOmK,SAAS7B,MAQhC,SAAyB67O,GAC9B,MAAM3C,EAAU/F,EAAMnE,SAAS6M,GAAeH,EAAWG,GAAcA,EACvE,OAAQ3C,EAAO9/I,WAAaqiJ,EAAUriJ,UAClC8/I,EAAOr7I,OAAS49I,EAAU59I,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,ECXJ,SA9CA,SAAqBi+I,EAAc75M,GACjC65M,EAAeA,GAAgB,GAC/B,MAAMC,EAAQ,IAAI/kP,MAAM8kP,GAClBE,EAAa,IAAIhlP,MAAM8kP,GAC7B,IAEIG,EAFAC,EAAO,EACP3tB,EAAO,EAKX,OAFAtsL,OAAczlC,IAARylC,EAAoBA,EAAM,IAEzB,SAAck6M,GACnB,MAAMv6O,EAAMvC,KAAKuC,MAEXw6O,EAAYJ,EAAWztB,GAExB0tB,IACHA,EAAgBr6O,GAGlBm6O,EAAMG,GAAQC,EACdH,EAAWE,GAAQt6O,EAEnB,IAAI7B,EAAIwuN,EACJ8tB,EAAa,EAEjB,KAAOt8O,IAAMm8O,GACXG,GAAcN,EAAMh8O,KACpBA,GAAQ+7O,EASV,GANAI,GAAQA,EAAO,GAAKJ,EAEhBI,IAAS3tB,IACXA,GAAQA,EAAO,GAAKutB,GAGlBl6O,EAAMq6O,EAAgBh6M,EACxB,OAGF,MAAMq6M,EAASF,GAAax6O,EAAMw6O,EAElC,OAAOE,EAAS1uO,KAAKitB,MAAmB,IAAbwhN,EAAoBC,QAAU9/O,CAC3D,CACF,ECpCA,SAAS+/O,GAAqB3wM,EAAU4wM,GACtC,IAAIC,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAO55O,IACL,MAAMg5I,EAASh5I,EAAEg5I,OACXz5G,EAAQv/B,EAAE65O,iBAAmB75O,EAAEu/B,WAAQ9lC,EACvCqgP,EAAgB9gG,EAAS0gG,EACzB1/H,EAAO2/H,EAAaG,GAG1BJ,EAAgB1gG,EAEhB,MAAMj/I,EAAO,CACXi/I,SACAz5G,QACAw6M,SAAUx6M,EAASy5G,EAASz5G,OAAS9lC,EACrCu/O,MAAOc,EACP9/H,KAAMA,QAAcvgH,EACpBugP,UAAWhgI,GAAQz6E,GAVLy5G,GAAUz5G,GAUeA,EAAQy5G,GAAUh/B,OAAOvgH,EAChE0tC,MAAOnnC,GAGTjG,EAAK0/O,EAAmB,WAAa,WAAY,EAEjD5wM,EAAS9uC,EAAK,CAElB,CAEA,MCxCMkgP,GAAgB,CACpBC,KCLF,KDMEr3H,IDsCsD,qBAAnBQ,gBAEG,SAAUnW,GAChD,OAAO,IAAIrsB,SAAQ,SAA4Bv9D,EAASk9D,GACtD,IAAI25J,EAAcjtI,EAAOnzG,KACzB,MAAMqgP,EAAiB1E,GAAaxhP,KAAKg5G,EAAOlgE,SAASiiI,YACzD,IACIorE,EAWAxkJ,GAZA,aAACmtB,EAAY,cAAEs3H,GAAiBptI,EAEpC,SAAS9rB,IACH8rB,EAAOqtI,aACTrtI,EAAOqtI,YAAYnvM,YAAYivM,GAG7BntI,EAAOhsB,QACTgsB,EAAOhsB,OAAOl2E,oBAAoB,QAASqvO,EAE/C,CAIA,GAAIjK,EAAMrC,WAAWoM,GACnB,GAAIl/C,GAAS+3C,uBAAyB/3C,GAASg4C,+BAC7CmH,EAAenG,gBAAe,QACzB,IAAwD,KAAnDp+I,EAAcukJ,EAAevG,kBAA6B,CAEpE,MAAOxzO,KAASg2O,GAAUxgJ,EAAcA,EAAYh0E,MAAM,KAAK/kB,KAAInC,GAASA,EAAM00B,SAAQv8B,OAAO6lC,SAAW,GAC5GyhN,EAAenG,eAAe,CAAC5zO,GAAQ,yBAA0Bg2O,GAAQh0N,KAAK,MAChF,CAGF,IAAI0nE,EAAU,IAAIs5B,eAGlB,GAAInW,EAAOstI,KAAM,CACf,MAAMC,EAAWvtI,EAAOstI,KAAKC,UAAY,GACnClgP,EAAW2yG,EAAOstI,KAAKjgP,SAAWmgP,SAAS34C,mBAAmB70F,EAAOstI,KAAKjgP,WAAa,GAC7F6/O,EAAeh3M,IAAI,gBAAiB,SAAWu3M,KAAKF,EAAW,IAAMlgP,GACvE,CAEA,MAAM4oH,EAAWi1H,GAAclrI,EAAOngE,QAASmgE,EAAO9vG,KAOtD,SAASw9O,IACP,IAAK7wJ,EACH,OAGF,MAAM8wJ,EAAkBnF,GAAaxhP,KACnC,0BAA2B61F,GAAWA,EAAQ+wJ,0BGpFvC,SAAgBx3N,EAASk9D,EAAQvmF,GAC9C,MAAMi7O,EAAiBj7O,EAASizG,OAAOgoI,eAClCj7O,EAASgL,QAAWiwO,IAAkBA,EAAej7O,EAASgL,QAGjEu7E,EAAO,IAAI0vJ,EACT,mCAAqCj2O,EAASgL,OAC9C,CAACirO,EAAW6K,gBAAiB7K,EAAW2E,kBAAkBhqO,KAAKupC,MAAMn6C,EAASgL,OAAS,KAAO,GAC9FhL,EAASizG,OACTjzG,EAAS8vF,QACT9vF,IAPFqpB,EAAQrpB,EAUZ,CHoFM+gP,EAAO,SAAkBnlP,GACvBytB,EAAQztB,GACRurF,GACF,IAAG,SAAiBpnF,GAClBwmF,EAAOxmF,GACPonF,GACF,GAfiB,CACfrnF,KAHoBipH,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCj5B,EAAQ9vF,SAA/B8vF,EAAQk5B,aAGRh+G,OAAQ8kF,EAAQ9kF,OAChBye,WAAYqmE,EAAQrmE,WACpBspB,QAAS6tM,EACT3tI,SACAnjB,YAYFA,EAAU,IACZ,CAmEA,GArGAA,EAAQrmB,KAAKwpC,EAAOxiB,OAAOvoE,cAAe4vN,EAAS5uH,EAAUjW,EAAO35E,OAAQ25E,EAAO+tI,mBAAmB,GAGtGlxJ,EAAQprF,QAAUuuG,EAAOvuG,QAiCrB,cAAeorF,EAEjBA,EAAQ6wJ,UAAYA,EAGpB7wJ,EAAQu5B,mBAAqB,WACtBv5B,GAAkC,IAAvBA,EAAQrd,aAQD,IAAnBqd,EAAQ9kF,QAAkB8kF,EAAQmxJ,aAAwD,IAAzCnxJ,EAAQmxJ,YAAY5wM,QAAQ,WAKjF53C,WAAWkoP,EACb,EAIF7wJ,EAAQoxJ,QAAU,WACXpxJ,IAILvJ,EAAO,IAAI0vJ,EAAW,kBAAmBA,EAAWkL,aAAcluI,EAAQnjB,IAG1EA,EAAU,KACZ,EAGAA,EAAQsxJ,QAAU,WAGhB76J,EAAO,IAAI0vJ,EAAW,gBAAiBA,EAAWoL,YAAapuI,EAAQnjB,IAGvEA,EAAU,IACZ,EAGAA,EAAQwxJ,UAAY,WAClB,IAAIC,EAAsBtuI,EAAOvuG,QAAU,cAAgBuuG,EAAOvuG,QAAU,cAAgB,mBAC5F,MAAM80O,EAAevmI,EAAOumI,cAAgBC,GACxCxmI,EAAOsuI,sBACTA,EAAsBtuI,EAAOsuI,qBAE/Bh7J,EAAO,IAAI0vJ,EACTsL,EACA/H,EAAaZ,oBAAsB3C,EAAWuL,UAAYvL,EAAWkL,aACrEluI,EACAnjB,IAGFA,EAAU,IACZ,EAKGkxG,GAAS+3C,wBACVsH,GAAiBlK,EAAMlE,WAAWoO,KAAmBA,EAAgBA,EAAcptI,IAE/EotI,IAAoC,IAAlBA,GAA2BoB,GAAgBv4H,IAAY,CAE3E,MAAMw4H,EAAYzuI,EAAO6nI,gBAAkB7nI,EAAO4nI,gBAAkB8G,GAAQzD,KAAKjrI,EAAO4nI,gBAEpF6G,GACFvB,EAAeh3M,IAAI8pE,EAAO6nI,eAAgB4G,EAE9C,MAIcliP,IAAhB0gP,GAA6BC,EAAenG,eAAe,MAGvD,qBAAsBlqJ,GACxBqmJ,EAAMz8O,QAAQymP,EAAel5M,UAAU,SAA0B81E,EAAK19G,GACpEywF,EAAQ8xJ,iBAAiBviP,EAAK09G,EAChC,IAIGo5H,EAAMrE,YAAY7+H,EAAO4uI,mBAC5B/xJ,EAAQ+xJ,kBAAoB5uI,EAAO4uI,iBAIjC94H,GAAiC,SAAjBA,IAClBj5B,EAAQi5B,aAAe9V,EAAO8V,cAIS,oBAA9B9V,EAAO6uI,oBAChBhyJ,EAAQ9iF,iBAAiB,WAAYuyO,GAAqBtsI,EAAO6uI,oBAAoB,IAIhD,oBAA5B7uI,EAAO8uI,kBAAmCjyJ,EAAQkyJ,QAC3DlyJ,EAAQkyJ,OAAOh1O,iBAAiB,WAAYuyO,GAAqBtsI,EAAO8uI,oBAGtE9uI,EAAOqtI,aAAertI,EAAOhsB,UAG/Bm5J,EAAax4J,IACNkI,IAGLvJ,GAAQqB,GAAUA,EAAOxhF,KAAO,IAAIw3O,GAAc,KAAM3qI,EAAQnjB,GAAWlI,GAC3EkI,EAAQjI,QACRiI,EAAU,KAAI,EAGhBmjB,EAAOqtI,aAAertI,EAAOqtI,YAAYrvM,UAAUmvM,GAC/CntI,EAAOhsB,SACTgsB,EAAOhsB,OAAOM,QAAU64J,IAAentI,EAAOhsB,OAAOj6E,iBAAiB,QAASozO,KAInF,MAAMhkJ,EItPK,SAAuBj5F,GACpC,MAAMhJ,EAAQ,4BAA4BqiH,KAAKr5G,GAC/C,OAAOhJ,GAASA,EAAM,IAAM,EAC9B,CJmPqB8nP,CAAc/4H,GAE3B9sB,IAAsD,IAA1C4kG,GAAS63C,UAAUxoM,QAAQ+rD,GACzC7V,EAAO,IAAI0vJ,EAAW,wBAA0B75I,EAAW,IAAK65I,EAAW6K,gBAAiB7tI,IAM9FnjB,EAAQw5B,KAAK42H,GAAe,KAC9B,GACF,GCzPA/J,EAAMz8O,QAAQsmP,IAAe,CAAChgK,EAAIpkF,KAChC,GAAIokF,EAAI,CACN,IACE1gF,OAAOuwD,eAAemwB,EAAI,OAAQ,CAACpkF,SACrC,CAAE,MAAOmK,GACP,CAEFzG,OAAOuwD,eAAemwB,EAAI,cAAe,CAACpkF,SAC5C,KAGF,MAAMsmP,GAAgB9lI,GAAM,KAAA/hH,OAAU+hH,GAEhC+lI,GAAoBzI,GAAYvD,EAAMlE,WAAWyH,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACe0I,IACXA,EAAWjM,EAAMpjN,QAAQqvN,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAAC3oP,GAAU2oP,EACjB,IAAIC,EACA3I,EAEJ,MAAM4I,EAAkB,CAAC,EAEzB,IAAK,IAAIv/O,EAAI,EAAGA,EAAItJ,EAAQsJ,IAAK,CAE/B,IAAIpB,EAIJ,GALA0gP,EAAgBD,EAASr/O,GAGzB22O,EAAU2I,GAELF,GAAiBE,KACpB3I,EAAUsG,IAAer+O,EAAKo6B,OAAOsmN,IAAgB9oP,oBAErCiG,IAAZk6O,GACF,MAAM,IAAIzD,EAAW,oBAAD57O,OAAqBsH,EAAE,MAI/C,GAAI+3O,EACF,MAGF4I,EAAgB3gP,GAAM,IAAMoB,GAAK22O,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAM6I,EAAUjjP,OAAOC,QAAQ+iP,GAC5Bz/O,KAAIwB,IAAA,IAAE1C,EAAIoM,GAAM1J,EAAA,MAAK,WAAAhK,OAAWsH,EAAE,OACtB,IAAVoM,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAIssB,EAAI5gC,EACL8oP,EAAQ9oP,OAAS,EAAI,YAAc8oP,EAAQ1/O,IAAIq/O,IAAc95N,KAAK,MAAQ,IAAM85N,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAItM,EACR,wDAA0D57M,EAC1D,kBAEJ,CAEA,OAAOq/M,CAAO,EIzDlB,SAAS8I,GAA6BvvI,GAKpC,GAJIA,EAAOqtI,aACTrtI,EAAOqtI,YAAYmC,mBAGjBxvI,EAAOhsB,QAAUgsB,EAAOhsB,OAAOM,QACjC,MAAM,IAAIq2J,GAAc,KAAM3qI,EAElC,CASe,SAASyvI,GAAgBzvI,GACtCuvI,GAA6BvvI,GAE7BA,EAAOlgE,QAAU0oM,GAAaxhP,KAAKg5G,EAAOlgE,SAG1CkgE,EAAOnzG,KAAO85I,GAAcl/G,KAC1Bu4E,EACAA,EAAO0mI,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAStpM,QAAQ4iE,EAAOxiB,SAC1CwiB,EAAOlgE,QAAQinM,eAAe,qCAAqC,GAKrE,OAFgBoI,GAAoBnvI,EAAOymI,SAAW7mM,GAAS6mM,QAExDA,CAAQzmI,GAAQrzG,MAAK,SAA6BI,GAYvD,OAXAwiP,GAA6BvvI,GAG7BjzG,EAASF,KAAO85I,GAAcl/G,KAC5Bu4E,EACAA,EAAOwnI,kBACPz6O,GAGFA,EAAS+yC,QAAU0oM,GAAaxhP,KAAK+F,EAAS+yC,SAEvC/yC,CACT,IAAG,SAA4Bo8G,GAe7B,OAdKshI,GAASthI,KACZomI,GAA6BvvI,GAGzBmJ,GAAUA,EAAOp8G,WACnBo8G,EAAOp8G,SAASF,KAAO85I,GAAcl/G,KACnCu4E,EACAA,EAAOwnI,kBACPr+H,EAAOp8G,UAETo8G,EAAOp8G,SAAS+yC,QAAU0oM,GAAaxhP,KAAKmiH,EAAOp8G,SAAS+yC,WAIzD6zC,QAAQL,OAAO61B,EACxB,GACF,CC3EA,MAAMumI,GAAmBhR,GAAUA,aAAiB8J,GAAe9J,EAAM1qM,SAAW0qM,EAWrE,SAASiR,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAM7vI,EAAS,CAAC,EAEhB,SAAS8vI,EAAez/O,EAAQqyB,EAAQ0+M,GACtC,OAAI8B,EAAM77H,cAAch3G,IAAW6yO,EAAM77H,cAAc3kF,GAC9CwgN,EAAM/B,MAAM15M,KAAK,CAAC25M,YAAW/wO,EAAQqyB,GACnCwgN,EAAM77H,cAAc3kF,GACtBwgN,EAAM/B,MAAM,CAAC,EAAGz+M,GACdwgN,EAAMpjN,QAAQ4C,GAChBA,EAAOlhB,QAETkhB,CACT,CAGA,SAASqtN,EAAoBz6N,EAAGC,EAAG6rN,GACjC,OAAK8B,EAAMrE,YAAYtpN,GAEX2tN,EAAMrE,YAAYvpN,QAAvB,EACEw6N,OAAevjP,EAAW+oB,EAAG8rN,GAF7B0O,EAAex6N,EAAGC,EAAG6rN,EAIhC,CAGA,SAAS4O,EAAiB16N,EAAGC,GAC3B,IAAK2tN,EAAMrE,YAAYtpN,GACrB,OAAOu6N,OAAevjP,EAAWgpB,EAErC,CAGA,SAAS06N,EAAiB36N,EAAGC,GAC3B,OAAK2tN,EAAMrE,YAAYtpN,GAEX2tN,EAAMrE,YAAYvpN,QAAvB,EACEw6N,OAAevjP,EAAW+oB,GAF1Bw6N,OAAevjP,EAAWgpB,EAIrC,CAGA,SAAS26N,EAAgB56N,EAAGC,EAAGs0F,GAC7B,OAAIA,KAAQgmI,EACHC,EAAex6N,EAAGC,GAChBs0F,KAAQ+lI,EACVE,OAAevjP,EAAW+oB,QAD5B,CAGT,CAEA,MAAM66N,EAAW,CACfjgP,IAAK8/O,EACLxyJ,OAAQwyJ,EACRnjP,KAAMmjP,EACNnwM,QAASowM,EACTvJ,iBAAkBuJ,EAClBzI,kBAAmByI,EACnBlC,iBAAkBkC,EAClBx+O,QAASw+O,EACTG,eAAgBH,EAChBrB,gBAAiBqB,EACjB7C,cAAe6C,EACfxJ,QAASwJ,EACTn6H,aAAcm6H,EACdrI,eAAgBqI,EAChBpI,eAAgBoI,EAChBnB,iBAAkBmB,EAClBpB,mBAAoBoB,EACpBI,WAAYJ,EACZnI,iBAAkBmI,EAClBlI,cAAekI,EACfK,eAAgBL,EAChBM,UAAWN,EACXO,UAAWP,EACXQ,WAAYR,EACZ5C,YAAa4C,EACbS,WAAYT,EACZU,iBAAkBV,EAClBjI,eAAgBkI,EAChBpwM,QAASA,CAACxqB,EAAGC,IAAMw6N,EAAoBL,GAAgBp6N,GAAIo6N,GAAgBn6N,IAAI,IASjF,OANA2tN,EAAMz8O,QAAQ4F,OAAOglB,KAAKhlB,OAAOmxB,OAAO,CAAC,EAAGoyN,EAASC,KAAW,SAA4BhmI,GAC1F,MAAMs3H,EAAQgP,EAAStmI,IAASkmI,EAC1Ba,EAAczP,EAAMyO,EAAQ/lI,GAAOgmI,EAAQhmI,GAAOA,GACvDq5H,EAAMrE,YAAY+R,IAAgBzP,IAAU+O,IAAqBlwI,EAAO6J,GAAQ+mI,EACnF,IAEO5wI,CACT,CCzGO,MAAM64H,GAAU,QCKjBgY,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUpqP,SAAQ,CAAC0M,EAAMrD,KAC7E+gP,GAAW19O,GAAQ,SAAmBurO,GACpC,cAAcA,IAAUvrO,GAAQ,KAAOrD,EAAI,EAAI,KAAO,KAAOqD,CAC/D,CAAC,IAGH,MAAM29O,GAAqB,CAAC,EAW5BD,GAAWtK,aAAe,SAAsBwK,EAAWj0K,EAASjxE,GAClE,SAASmlP,EAAcC,EAAKC,GAC1B,MAAO,uCAAoDD,EAAM,IAAOC,GAAQrlP,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAAClD,EAAOsoP,EAAKrpN,KAClB,IAAkB,IAAdmpN,EACF,MAAM,IAAI/N,EACRgO,EAAcC,EAAK,qBAAuBn0K,EAAU,OAASA,EAAU,KACvEkmK,EAAWmO,gBAef,OAXIr0K,IAAYg0K,GAAmBG,KACjCH,GAAmBG,IAAO,EAE1BhrP,QAAQslF,KACNylK,EACEC,EACA,+BAAiCn0K,EAAU,8CAK1Ci0K,GAAYA,EAAUpoP,EAAOsoP,EAAKrpN,EAAY,CAEzD,EAmCA,UACEwpN,cAxBF,SAAuB/+N,EAASg/N,EAAQC,GACtC,GAAuB,kBAAZj/N,EACT,MAAM,IAAI2wN,EAAW,4BAA6BA,EAAWuO,sBAE/D,MAAMlgO,EAAOhlB,OAAOglB,KAAKgB,GACzB,IAAIviB,EAAIuhB,EAAK7qB,OACb,KAAOsJ,KAAM,GAAG,CACd,MAAMmhP,EAAM5/N,EAAKvhB,GACXihP,EAAYM,EAAOJ,GACzB,GAAIF,EAAJ,CACE,MAAMpoP,EAAQ0pB,EAAQ4+N,GAChB1xN,OAAmBhzB,IAAV5D,GAAuBooP,EAAUpoP,EAAOsoP,EAAK5+N,GAC5D,IAAe,IAAXkN,EACF,MAAM,IAAIyjN,EAAW,UAAYiO,EAAM,YAAc1xN,EAAQyjN,EAAWuO,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAItO,EAAW,kBAAoBiO,EAAKjO,EAAWwO,eAE7D,CACF,EAIEX,eC9EIA,GAAaE,GAAUF,WAS7B,MAAMY,GACJx/N,WAAAA,CAAYy/N,GACVt/N,KAAKwtB,SAAW8xM,EAChBt/N,KAAKu/N,aAAe,CAClB90J,QAAS,IAAI+0J,GACb7kP,SAAU,IAAI6kP,GAElB,CAUA/0J,OAAAA,CAAQg1J,EAAa7xI,GAGQ,kBAAhB6xI,GACT7xI,EAASA,GAAU,CAAC,GACb9vG,IAAM2hP,EAEb7xI,EAAS6xI,GAAe,CAAC,EAG3B7xI,EAAS2vI,GAAYv9N,KAAKwtB,SAAUogE,GAEpC,MAAM,aAACumI,EAAY,iBAAEwH,EAAgB,QAAEjuM,GAAWkgE,OAE7BzzG,IAAjBg6O,GACFwK,GAAUK,cAAc7K,EAAc,CACpCd,kBAAmBoL,GAAWtK,aAAasK,GAAWiB,SACtDpM,kBAAmBmL,GAAWtK,aAAasK,GAAWiB,SACtDnM,oBAAqBkL,GAAWtK,aAAasK,GAAWiB,WACvD,GAGmB,MAApB/D,IACE7K,EAAMlE,WAAW+O,GACnB/tI,EAAO+tI,iBAAmB,CACxBhJ,UAAWgJ,GAGbgD,GAAUK,cAAcrD,EAAkB,CACxCzJ,OAAQuM,GAAWkB,SACnBhN,UAAW8L,GAAWkB,WACrB,IAKP/xI,EAAOxiB,QAAUwiB,EAAOxiB,QAAUprE,KAAKwtB,SAAS49C,QAAU,OAAOl3F,cAGjE,IAAI0rP,EAAiBlyM,GAAWojM,EAAM/B,MACpCrhM,EAAQC,OACRD,EAAQkgE,EAAOxiB,SAGjB19C,GAAWojM,EAAMz8O,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjD+2F,WACQ19C,EAAQ09C,EAAO,IAI1BwiB,EAAOlgE,QAAU0oM,GAAaphP,OAAO4qP,EAAgBlyM,GAGrD,MAAMmyM,EAA0B,GAChC,IAAIC,GAAiC,EACrC9/N,KAAKu/N,aAAa90J,QAAQp2F,SAAQ,SAAoC0rP,GACjC,oBAAxBA,EAAY5M,UAA0D,IAAhC4M,EAAY5M,QAAQvlI,KAIrEkyI,EAAiCA,GAAkCC,EAAY7M,YAE/E2M,EAAwBl0L,QAAQo0L,EAAY/M,UAAW+M,EAAY9M,UACrE,IAEA,MAAM+M,EAA2B,GAKjC,IAAIj+J,EAJJ/hE,KAAKu/N,aAAa5kP,SAAStG,SAAQ,SAAkC0rP,GACnEC,EAAyBt8N,KAAKq8N,EAAY/M,UAAW+M,EAAY9M,SACnE,IAGA,IACIx5I,EADA/7F,EAAI,EAGR,IAAKoiP,EAAgC,CACnC,MAAMG,EAAQ,CAAC5C,GAAgB13H,KAAK3lG,WAAO7lB,GAO3C,IANA8lP,EAAMt0L,QAAQr2B,MAAM2qN,EAAOJ,GAC3BI,EAAMv8N,KAAK4R,MAAM2qN,EAAOD,GACxBvmJ,EAAMwmJ,EAAM7rP,OAEZ2tF,EAAUR,QAAQv9D,QAAQ4pF,GAEnBlwG,EAAI+7F,GACT1X,EAAUA,EAAQxnF,KAAK0lP,EAAMviP,KAAMuiP,EAAMviP,MAG3C,OAAOqkF,CACT,CAEA0X,EAAMomJ,EAAwBzrP,OAE9B,IAAI8rP,EAAYtyI,EAIhB,IAFAlwG,EAAI,EAEGA,EAAI+7F,GAAK,CACd,MAAM0mJ,EAAcN,EAAwBniP,KACtC0iP,EAAaP,EAAwBniP,KAC3C,IACEwiP,EAAYC,EAAYD,EAC1B,CAAE,MAAOtqP,GACPwqP,EAAW/qN,KAAKrV,KAAMpqB,GACtB,KACF,CACF,CAEA,IACEmsF,EAAUs7J,GAAgBhoN,KAAKrV,KAAMkgO,EACvC,CAAE,MAAOtqP,GACP,OAAO2rF,QAAQL,OAAOtrF,EACxB,CAKA,IAHA8H,EAAI,EACJ+7F,EAAMumJ,EAAyB5rP,OAExBsJ,EAAI+7F,GACT1X,EAAUA,EAAQxnF,KAAKylP,EAAyBtiP,KAAMsiP,EAAyBtiP,MAGjF,OAAOqkF,CACT,CAEAs+J,MAAAA,CAAOzyI,GAGL,OAAO6kI,EADUqG,IADjBlrI,EAAS2vI,GAAYv9N,KAAKwtB,SAAUogE,IACEngE,QAASmgE,EAAO9vG,KAC5B8vG,EAAO35E,OAAQ25E,EAAO+tI,iBAClD,EAIF7K,EAAMz8O,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B+2F,GAE/Ei0J,GAAMlqN,UAAUi2D,GAAU,SAASttF,EAAK8vG,GACtC,OAAO5tF,KAAKyqE,QAAQ8yJ,GAAY3vI,GAAU,CAAC,EAAG,CAC5CxiB,SACAttF,MACArD,MAAOmzG,GAAU,CAAC,GAAGnzG,OAEzB,CACF,IAEAq2O,EAAMz8O,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B+2F,GAGrE,SAASk1J,EAAmBC,GAC1B,OAAO,SAAoBziP,EAAKrD,EAAMmzG,GACpC,OAAO5tF,KAAKyqE,QAAQ8yJ,GAAY3vI,GAAU,CAAC,EAAG,CAC5CxiB,SACA19C,QAAS6yM,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLziP,MACArD,SAEJ,CACF,CAEA4kP,GAAMlqN,UAAUi2D,GAAUk1J,IAE1BjB,GAAMlqN,UAAUi2D,EAAS,QAAUk1J,GAAmB,EACxD,IAEA,YC7LA,MAAME,GACJ3gO,WAAAA,CAAY4gO,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAIhqN,UAAU,gCAGtB,IAAIiqN,EAEJ1gO,KAAK+hE,QAAU,IAAIR,SAAQ,SAAyBv9D,GAClD08N,EAAiB18N,CACnB,IAEA,MAAM3oB,EAAQ2kB,KAGdA,KAAK+hE,QAAQxnF,MAAKgoF,IAChB,IAAKlnF,EAAMslP,WAAY,OAEvB,IAAIjjP,EAAIrC,EAAMslP,WAAWvsP,OAEzB,KAAOsJ,KAAM,GACXrC,EAAMslP,WAAWjjP,GAAG6kF,GAEtBlnF,EAAMslP,WAAa,IAAI,IAIzB3gO,KAAK+hE,QAAQxnF,KAAOqmP,IAClB,IAAIC,EAEJ,MAAM9+J,EAAU,IAAIR,SAAQv9D,IAC1B3oB,EAAMuwC,UAAU5nB,GAChB68N,EAAW78N,CAAO,IACjBzpB,KAAKqmP,GAMR,OAJA7+J,EAAQQ,OAAS,WACflnF,EAAMywC,YAAY+0M,EACpB,EAEO9+J,CAAO,EAGhB0+J,GAAS,SAAgBhnP,EAASm0G,EAAQnjB,GACpCpvF,EAAM07G,SAKV17G,EAAM07G,OAAS,IAAIwhI,GAAc9+O,EAASm0G,EAAQnjB,GAClDi2J,EAAerlP,EAAM07G,QACvB,GACF,CAKAqmI,gBAAAA,GACE,GAAIp9N,KAAK+2F,OACP,MAAM/2F,KAAK+2F,MAEf,CAMAnrE,SAAAA,CAAUrC,GACJvpB,KAAK+2F,OACPxtE,EAASvpB,KAAK+2F,QAIZ/2F,KAAK2gO,WACP3gO,KAAK2gO,WAAWj9N,KAAK6lB,GAErBvpB,KAAK2gO,WAAa,CAACp3M,EAEvB,CAMAuC,WAAAA,CAAYvC,GACV,IAAKvpB,KAAK2gO,WACR,OAEF,MAAMn2O,EAAQwV,KAAK2gO,WAAW31M,QAAQzB,IACvB,IAAX/+B,GACFwV,KAAK2gO,WAAW1/M,OAAOz2B,EAAO,EAElC,CAMA,aAAO8lB,GACL,IAAIiyD,EAIJ,MAAO,CACLlnF,MAJY,IAAImlP,IAAY,SAAkBlzO,GAC9Ci1E,EAASj1E,CACX,IAGEi1E,SAEJ,EAGF,YCxHA,MAAMu+J,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZlwB,GAAI,IACJmwB,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjC3qP,OAAOC,QAAQ4mP,IAAgBzsP,SAAQ2K,IAAkB,IAAhBhF,EAAKzD,GAAMyI,EAClD8hP,GAAevqP,GAASyD,CAAG,IAG7B,YCxBA,MAAMK,GAnBN,SAASwqP,EAAeC,GACtB,MAAMlgP,EAAU,IAAIy6O,GAAMyF,GACpBn7I,EAAWgc,EAAK05H,GAAMlqN,UAAUs1D,QAAS7lF,GAa/C,OAVAksO,EAAMp7H,OAAO/L,EAAU01I,GAAMlqN,UAAWvwB,EAAS,CAACyoO,YAAY,IAG9DyD,EAAMp7H,OAAO/L,EAAU/kG,EAAS,KAAM,CAACyoO,YAAY,IAGnD1jI,EAAS/yE,OAAS,SAAgB0oN,GAChC,OAAOuF,EAAetH,GAAYuH,EAAexF,GACnD,EAEO31I,CACT,CAGck7I,CAAer3M,IAG7BnzC,GAAMglP,MAAQA,GAGdhlP,GAAMk+O,cAAgBA,GACtBl+O,GAAMmmP,YAAcA,GACpBnmP,GAAMg+O,SAAWA,GACjBh+O,GAAMosO,QAAUA,GAChBpsO,GAAMi4O,WAAaA,EAGnBj4O,GAAMu2O,WAAaA,EAGnBv2O,GAAM0qP,OAAS1qP,GAAMk+O,cAGrBl+O,GAAM0zF,IAAM,SAAai3J,GACvB,OAAOzjK,QAAQwM,IAAIi3J,EACrB,EAEA3qP,GAAM4qP,OC9CS,SAAgB59M,GAC7B,OAAO,SAAc2tE,GACnB,OAAO3tE,EAAS/R,MAAM,KAAM0/E,EAC9B,CACF,ED6CA36G,GAAM6qP,aE7DS,SAAsB/gI,GACnC,OAAO2sH,EAAMhE,SAAS3oH,KAAsC,IAAzBA,EAAQ+gI,YAC7C,EF8DA7qP,GAAMkjP,YAAcA,GAEpBljP,GAAM+7O,aAAeA,GAErB/7O,GAAM8qP,WAAa7Y,GAASoI,GAAe5D,EAAMjD,WAAWvB,GAAS,IAAIx8M,SAASw8M,GAASA,GAE3FjyO,GAAM+qP,WAAarI,GAEnB1iP,GAAMymP,eAAiBA,GAEvBzmP,GAAMuS,QAAUvS,GAGhB,+YGjFA,MAGMgrP,EAAS,0DACTC,EAAY,2DAGZC,EAAe,CAAC,EA0Cf,SAASloP,EAAKA,EAAM4iB,GAGzB,QAFiBA,GAAWslO,GACRhiB,IAAM+hB,EAAYD,GAC5BriN,KAAK3lC,EACjB,CCtDA,MAAM65G,EAAK,eAyBX,SAASsuI,EAAMjvP,GACb,MAAiC,KAA1BA,EAAMq1B,QAAQsrF,EAAI,GAC3B,CC3BO,MAAMuuI,EAOX5lO,WAAAA,CAAY+3F,EAAU8tI,EAAQC,GAC5B3lO,KAAK43F,SAAWA,EAChB53F,KAAK0lO,OAASA,EACVC,IACF3lO,KAAK2lO,MAAQA,EAEjB,ECPK,SAAS5W,EAAM6W,EAAaD,GAEjC,MAAM/tI,EAAW,CAAC,EAEZ8tI,EAAS,CAAC,EAChB,IAAIl7O,GAAS,EAEb,OAASA,EAAQo7O,EAAYxxP,QAC3B6F,OAAOmxB,OAAOwsF,EAAUguI,EAAYp7O,GAAOotG,UAC3C39G,OAAOmxB,OAAOs6N,EAAQE,EAAYp7O,GAAOk7O,QAG3C,OAAO,IAAID,EAAO7tI,EAAU8tI,EAAQC,EACtC,CCrBO,SAASh2E,EAAUp5K,GACxB,OAAOA,EAAMrC,aACf,CFiBAuxP,EAAOtwN,UAAUyiF,SAAW,CAAC,EAE7B6tI,EAAOtwN,UAAUuwN,OAAS,CAAC,EAE3BD,EAAOtwN,UAAUwwN,MAAQ,KG3BlB,MAAME,EAMXhmO,WAAAA,CAAY+3F,EAAUkuI,GAEpB9lO,KAAK43F,SAAWA,EAEhB53F,KAAK8lO,UAAYA,CACnB,EAIFD,EAAK1wN,UAAUwwN,MAAQ,KACvBE,EAAK1wN,UAAUuqN,SAAU,EACzBmG,EAAK1wN,UAAU4wN,YAAa,EAC5BF,EAAK1wN,UAAU6wN,mBAAoB,EACnCH,EAAK1wN,UAAUsvJ,QAAS,EACxBohE,EAAK1wN,UAAU8wN,gBAAiB,EAChCJ,EAAK1wN,UAAU+wN,gBAAiB,EAChCL,EAAK1wN,UAAUgxN,uBAAwB,EACvCN,EAAK1wN,UAAU0tK,iBAAkB,EACjCgjD,EAAK1wN,UAAUixN,SAAU,ECxBzB,IAAIC,EAAS,EAEN,MAAM3G,EAAU4G,IACVP,EAAaO,IACbN,EAAoBM,IACpB7hE,EAAS6hE,IACTJ,EAAiBI,IACjBL,EAAiBK,IACjBH,EAAwBG,IAErC,SAASA,IACP,OAAO,KAAOD,CAChB,CCPA,MAAMr5I,EAAS/yG,OAAOglB,KAAKsnO,GAEpB,MAAMC,UAAoBX,EAQ/BhmO,WAAAA,CAAY+3F,EAAUkuI,EAAWljG,EAAM+iG,GACrC,IAAIn7O,GAAS,EAMb,GAJAuV,MAAM63F,EAAUkuI,GAEhBW,EAAKzmO,KAAM,QAAS2lO,GAEA,kBAAT/iG,EACT,OAASp4I,EAAQwiG,EAAO54G,QAAQ,CAC9B,MAAM64G,EAAQD,EAAOxiG,GACrBi8O,EAAKzmO,KAAMgtF,EAAOxiG,IAASo4I,EAAO2jG,EAAMt5I,MAAYs5I,EAAMt5I,GAC5D,CAEJ,EAUF,SAASw5I,EAAKpoP,EAAQrE,EAAKzD,GACrBA,IAEF8H,EAAOrE,GAAOzD,EAElB,CAZAiwP,EAAYrxN,UAAUixN,SAAU,ECbhC,MAAMM,EAAM,CAAC,EAAEtxN,eAMR,SAASwB,EAAO+vN,GAErB,MAAM/uI,EAAW,CAAC,EAEZ8tI,EAAS,CAAC,EAEhB,IAAIjuI,EAEJ,IAAKA,KAAQkvI,EAAW1kG,WACtB,GAAIykG,EAAIrxN,KAAKsxN,EAAW1kG,WAAYxqC,GAAO,CACzC,MAAMlhH,EAAQowP,EAAW1kG,WAAWxqC,GAC9BmvI,EAAO,IAAIJ,EACf/uI,EACAkvI,EAAWp2O,UAAUo2O,EAAW79M,YAAc,CAAC,EAAG2uE,GAClDlhH,EACAowP,EAAWhB,OAIXgB,EAAW9jD,iBACX8jD,EAAW9jD,gBAAgB1uM,SAASsjH,KAEpCmvI,EAAK/jD,iBAAkB,GAGzBjrF,EAASH,GAAQmvI,EAEjBlB,EAAO/1E,EAAUl4D,IAASA,EAC1BiuI,EAAO/1E,EAAUi3E,EAAKd,YAAcruI,CACtC,CAGF,OAAO,IAAIguI,EAAO7tI,EAAU8tI,EAAQiB,EAAWhB,MACjD,CCvDO,MAAMkB,EAAQjwN,EAAO,CAC1B+uN,MAAO,QACPp1O,UAASA,CAACwe,EAAG0oF,IACJ,SAAWA,EAAKroG,MAAM,GAAGlb,cAElC+tJ,WAAY,CACV6kG,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,UAAW,QCZFC,EAAMzwN,EAAO,CACxB+uN,MAAO,MACPp1O,UAASA,CAACwe,EAAG0oF,IACJ,OAASA,EAAKroG,MAAM,GAAGlb,cAEhC+tJ,WAAY,CAACqlG,QAAS,KAAMC,QAAS,KAAMC,SAAU,QCFhD,SAASC,EAAuB3+M,EAAYg9M,GACjD,OAAOA,KAAah9M,EAAaA,EAAWg9M,GAAaA,CAC3D,CCAO,SAAS4B,EAAyB5+M,EAAY8uE,GACnD,OAAO6vI,EAAuB3+M,EAAY8uE,EAAS1jH,cACrD,CCNO,MAAMiS,EAAQywB,EAAO,CAC1B+uN,MAAO,QACP78M,WAAY,CAAC6+M,WAAY,eACzBp3O,UAAWm3O,EACXzlG,WAAY,CAAC97I,MAAO,KAAMyhP,WAAY,QCJ3BC,EAAOjxN,EAAO,CACzBrmB,UAASA,CAACwe,EAAG0oF,IACK,SAATA,EAAkBA,EAAO,QAAUA,EAAKroG,MAAM,GAAGlb,cAE1D+tJ,WAAY,CACV6lG,qBAAsB,KACtBC,WAAYhC,EACZiC,iBAAkB,KAClBC,SAAUlC,EACVmC,YAAanC,EACboC,aAAc1jE,EACd2jE,aAAc3jE,EACd4jE,YAAa5jE,EACb6jE,aAAcpC,EACdqC,YAAa,KACbC,gBAAiBtC,EACjBuC,YAAa,KACbC,aAAc3C,EACd4C,eAAgBzC,EAChB0C,iBAAkB,KAClBC,aAAc9C,EACd+C,WAAY5C,EACZ6C,YAAahD,EACbiD,aAAc,KACdC,WAAYlD,EACZmD,YAAa,KACbC,iBAAkB,KAClB5vF,UAAW,KACX6vF,eAAgBlD,EAChBmD,UAAW5kE,EACX6kE,SAAU,KACVC,UAAWxD,EACXyD,cAAezD,EACf0D,oBAAqB1D,EACrB2D,gBAAiB,KACjBC,SAAUzD,EACV0D,gBAAiB,KACjBC,aAAcplE,EACdqlE,YAAa/D,EACbgE,aAAchE,EACdiE,aAAc,KACdC,aAAclE,EACdmE,oBAAqBhE,EACrBiE,aAAc1lE,EACd2lE,aAAc3lE,EACd4lE,YAAa5lE,EACb6lE,aAAcvE,EACdwE,YAAa9lE,EACb+lE,SAAU,KACVC,aAAchmE,EACdimE,aAAcjmE,EACdkmE,aAAclmE,EACdmmE,cAAe,KACf9rP,KAAM,QC7CGkjG,EAAOprE,EAAO,CACzB+uN,MAAO,OACP78M,WAAY,CACV+hN,cAAe,iBACfC,UAAW,QACXC,QAAS,MACTC,UAAW,cAEbz6O,UAAWm3O,EACX7kD,gBAAiB,CAAC,UAAW,WAAY,QAAS,YAClD5gD,WAAY,CAEVgpG,KAAM,KACNC,OAAQjF,EACRkF,cAAejF,EACfkF,UAAWlF,EACXjsK,OAAQ,KACRoxK,MAAO,KACPC,gBAAiB5L,EACjB6L,oBAAqB7L,EACrB8L,eAAgB9L,EAChBthP,IAAK,KACLmsB,GAAI,KACJ5wB,MAAO+lP,EACP+L,eAAgB,KAChB9pP,aAAcukP,EACdtgP,UAAW85O,EACXgM,SAAUhM,EACViM,SAAUzF,EACVrvM,QAAS,KACT+0M,QAAS,KACTjoD,QAAS+7C,EACTmM,KAAM,KACNn1P,UAAWwvP,EACX4F,KAAMrnE,EACNsnE,QAAS,KACTryP,QAAS,KACTi9M,gBAAiBovC,EACjBiG,SAAUtM,EACVuM,aAAc/F,EACdgG,OAAQznE,EAASwhE,EACjBv/H,YAAa,KACbjsH,KAAM,KACN0xP,SAAU,KACVC,SAAU,KACVx/O,QAAS8yO,EACTv+N,MAAOu+N,EACPvqH,IAAK,KACLk3H,QAAS,KACTvqP,SAAU49O,EACVl8K,SAAUwiL,EACVsG,UAAWvG,EACXwG,QAAS,KACTC,aAAc,KACdC,cAAe,KACf54B,KAAM,KACNjwI,WAAY,KACZC,YAAa,KACbF,WAAY,KACZ+oK,eAAgBhN,EAChBiN,WAAY,KACZj/M,QAASw4M,EACTtoP,OAAQ6mL,EACR7kI,OAAQ8/L,EACRkN,KAAMnoE,EACN9mL,KAAM,KACNkvP,SAAU,KACVhpP,QAASqiP,EACT4G,UAAW5G,EACX5pP,GAAI,KACJywP,WAAY,KACZC,YAAa,KACbC,MAAOvN,EACPwN,UAAW,KACXC,UAAW,KACX5rH,GAAI,KACJ6rH,MAAO1N,EACP2N,OAAQ,KACRC,SAAUpH,EACVqH,QAASrH,EACTsH,UAAW9N,EACX+N,SAAUvH,EACVxX,KAAM,KACN1rN,MAAO,KACP0qO,KAAM,KACNC,SAAU,KACVpsJ,KAAM,KACN53F,QAAS,KACTsO,KAAMynO,EACNkO,IAAKnpE,EACLlpG,SAAU,KACV/vE,IAAK,KACLnJ,UAAWoiL,EACXopE,MAAO,KACPziK,OAAQ,KACRxrD,IAAK,KACLkuN,UAAWrpE,EACXgoC,SAAUizB,EACVqO,MAAOrO,EACPriP,KAAM,KACN2wP,MAAO,KACPC,SAAUvO,EACVwO,WAAYxO,EACZh+J,QAAS,KACTysK,aAAc,KACdC,WAAY,KACZC,cAAe,KACfC,cAAe,KACfC,eAAgB,KAChBC,eAAgB,KAChBC,OAAQ,KACRC,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBhtP,SAAU,KACVhC,QAAS,KACTivP,QAAS,KACTC,cAAe,KACfC,cAAe,KACfC,kBAAmB,KACnBC,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXC,QAAS,KACT3rI,QAAS,KACT4rI,QAAS,KACTC,WAAY,KACZC,aAAc,KACdC,QAAS,KACTC,UAAW,KACXrjO,UAAW,KACXsjO,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,KACbC,UAAW,KACXC,eAAgB,KAChBj/O,YAAa,KACboH,aAAc,KACd83O,aAAc,KACd9+O,YAAa,KACb++O,WAAY,KACZC,YAAa,KACbl/O,UAAW,KACXm/O,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdC,mBAAoB,KACpBC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,YAAa,KACbC,0BAA2B,KAC3BC,SAAU,KACVC,UAAW,KACXziE,SAAU,KACV0iE,aAAc,KACdC,UAAW,KACXC,UAAW,KACX9xP,SAAU,KACV+xP,UAAW,KACXC,aAAc,KACd1gE,SAAU,KACV2gE,qBAAsB,KACtBC,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXC,QAAS,KACT1uL,KAAMs7K,EACNqT,QAAStuE,EACT9kJ,QAAS,KACTqzN,KAAM9M,EACNpiP,YAAa,KACbmvP,YAAavT,EACbwT,QAAS,KACTC,cAAe,KACfC,oBAAqB,KACrBC,OAAQ,KACRC,QAAS,KACTC,SAAU7T,EACV8T,eAAgB,KAChB7tO,IAAKugO,EACLniP,SAAU27O,EACVzgM,SAAUygM,EACV56K,KAAM2/G,EACNgvE,QAAShvE,EACTivE,QAASxN,EACT3jN,MAAO,KACPoxN,OAAQjU,EACRkU,SAAUlU,EACV17C,SAAU07C,EACVmU,mBAAoBnU,EACpBoU,yBAA0BpU,EAC1BqU,eAAgB,KAChB50H,MAAO,KACPp0G,KAAM05J,EACNuvE,MAAO,KACPC,KAAM,KACN/4F,KAAMupB,EACNyvE,WAAYnO,EACZ7nP,IAAK,KACLi2P,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRzqN,MAAO66I,EACP/kJ,KAAM,KACN7oC,MAAO,KACP6hG,SAAU+rF,EACVxmL,OAAQ,KACRV,MAAO,KACP2wD,UAAW,KACXntD,KAAM,KACNuzP,cAAe5U,EACf6U,OAAQ,KACRh+P,MAAOwvP,EACPpnP,MAAO8lL,EACPpmI,KAAM,KACNm2M,mBAAoB,KAIpBzgE,MAAO,KACP0gE,MAAO,KACPC,QAASxO,EACT1xN,KAAM,KACN8zC,WAAY,KACZwuJ,QAAS,KACTj1N,OAAQ4iL,EACRroJ,YAAa,KACbu4N,aAAclwE,EACdmwE,YAAa,KACbC,YAAa,KACbp1K,KAAM,KACNq1K,QAAS,KACTC,QAAS,KACThjK,MAAO,KACPvkB,KAAM,KACNwnL,SAAU,KACVC,SAAU,KACV/jN,MAAO,KACPgkN,QAASxV,EACTyV,QAASzV,EACT73M,MAAO,KACPutN,KAAM,KACNC,MAAO,KACPC,YAAa,KACbC,OAAQ9wE,EACR+wE,WAAY/wE,EACZnnL,KAAM,KACNm4P,SAAU,KACVC,OAAQ,KACRC,aAAclxE,EACdmxE,YAAanxE,EACboxE,SAAUnW,EACVoW,OAAQpW,EACRqW,QAASrW,EACTsW,OAAQtW,EACRtmI,OAAQ,KACR68I,QAAS,KACTC,OAAQ,KACRC,IAAK,KACLC,YAAa3xE,EACbptE,MAAO,KACPg/I,OAAQ,KACRC,UAAWvQ,EACXwQ,QAAS,KACT/gP,QAAS,KACTiM,KAAM,KACN+0O,UAAW/xE,EACXlpH,UAAW,KACXmP,QAAS,KACT+rL,OAAQ,KACRC,MAAO,KACPC,OAAQlyE,EAGRmyE,kBAAmB,KACnBC,YAAa,KACbC,SAAU,KACVC,wBAAyBrX,EACzBsX,sBAAuBtX,EACvB99L,OAAQ,KACRg2D,SAAU,KACV/pB,QAAS42F,EACTwyE,SAAU,KACVC,aAAc,QCrTLjzN,EAAMrN,EAAO,CACxB+uN,MAAO,MACP78M,WAAY,CACVquN,aAAc,gBACdC,kBAAmB,qBACnBC,WAAY,cACZC,cAAe,iBACfC,UAAW,aACX7gQ,UAAW,QACX8gQ,SAAU,YACVC,SAAU,YACVC,mBAAoB,sBACpBC,0BAA2B,8BAC3BC,aAAc,gBACdC,eAAgB,kBAChBnxI,YAAa,cACboxI,SAAU,WACVl+O,iBAAkB,oBAClBm+O,iBAAkB,oBAClBx0M,YAAa,eACb98C,SAAU,YACVuxP,WAAY,cACZ7xD,aAAc,gBACdvwJ,WAAY,cACZr4B,SAAU,YACV06O,eAAgB,mBAChBC,YAAa,eACbh6M,UAAW,aACX04B,YAAa,eACbj9D,WAAY,cACZw+O,UAAW,aACXC,2BAA4B,+BAC5BC,yBAA0B,6BAC1BxL,SAAU,WACVyL,UAAW,cACXC,aAAc,iBACdC,aAAc,iBACdC,eAAgB,kBAChB3hH,cAAe,iBACf4hH,cAAe,iBACfC,UAAW,aACXC,UAAW,aACXC,YAAa,eACbC,QAAS,WACTC,YAAa,gBACbC,aAAc,iBACdC,QAAS,WACTC,QAAS,WACTC,QAAS,WACTC,SAAU,YACVC,MAAO,SACPC,UAAW,cACXC,WAAY,eACZ73K,QAAS,UACT83K,WAAY,aACZrL,aAAc,eACdG,cAAe,gBACfmL,QAAS,UACT/K,SAAU,WACVC,UAAW,YACXC,iBAAkB,mBAClBhtP,SAAU,WACVhC,QAAS,UACTivP,QAAS,UACTI,OAAQ,SACRC,YAAa,cACbC,MAAO,QACPC,WAAY,aACZC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRC,iBAAkB,mBAClBC,UAAW,YACX4J,MAAO,QACP3J,QAAS,UACT3rI,QAAS,UACT4rI,QAAS,UACT2J,UAAW,YACXC,WAAY,aACZ1J,aAAc,eACdC,QAAS,UACTC,UAAW,YACXrjO,UAAW,YACXsjO,WAAY,aACZC,QAAS,UACTE,OAAQ,SACRC,aAAc,eACdC,iBAAkB,mBAClBE,YAAa,cACbC,UAAW,YACXh/O,YAAa,cACboH,aAAc,eACd83O,aAAc,eACd9+O,YAAa,cACb++O,WAAY,aACZC,YAAa,cACbl/O,UAAW,YACX8nP,aAAc,eACd3I,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,WAAY,aACZC,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,aAAc,eACdkI,SAAU,WACVhI,QAAS,UACTC,SAAU,WACVC,SAAU,WACVG,SAAU,WACVC,UAAW,YACXziE,SAAU,WACVoqE,OAAQ,SACRzH,UAAW,YACXC,UAAW,YACX9xP,SAAU,WACV+xP,UAAW,YACXC,aAAc,eACd1gE,SAAU,WACV4gE,SAAU,WACVC,eAAgB,iBAChBC,UAAW,YACXmH,OAAQ,SACRC,iBAAkB,oBAClBC,kBAAmB,qBACnBC,WAAY,cACZC,QAAS,WACTrgN,cAAe,iBACfy5M,eAAgB,iBAChB6G,gBAAiB,mBACjBC,eAAgB,kBAChB1gO,UAAW,aACXwsK,YAAa,eACbm0D,sBAAuB,yBACvBC,uBAAwB,0BACxBC,gBAAiB,mBACjBC,iBAAkB,oBAClBC,cAAe,iBACfC,eAAgB,kBAChBC,iBAAkB,oBAClBr0D,cAAe,iBACfpwL,YAAa,eACbsiF,SAAU,WACVr/E,WAAY,cACZo/B,eAAgB,kBAChBqiN,cAAe,iBACf/9I,gBAAiB,mBACjBg+I,OAAQ,SACRC,kBAAmB,qBACnBC,mBAAoB,sBACpBC,YAAa,eACbC,aAAc,gBACdC,WAAY,eACZC,YAAa,eACbC,SAAU,YACVC,aAAc,gBACdC,cAAe,iBACfC,aAAc,gBACdC,SAAU,aACVC,YAAa,gBACbC,YAAa,gBACbC,YAAa,eACbx3N,YAAa,eACby3N,QAAS,WAETC,cAAe,gBACfC,cAAe,iBAEjBzrP,UAAWk3O,EACXxlG,WAAY,CACVg6G,MAAO9V,EACPgR,aAAc1yE,EACdy3E,WAAY,KACZ71J,SAAU,KACV+wJ,kBAAmB,KACnB+E,WAAY13E,EACZ90C,UAAW80C,EACX4yE,WAAY,KACZlpG,OAAQs2B,EACRke,cAAe,KACfy5D,cAAe,KACfC,QAAS53E,EACT63E,UAAW,KACXhF,cAAe,KACfiF,cAAe,KACfC,YAAa,KACbvgP,KAAM,KACNwgP,MAAO,KACPC,KAAMj4E,EACN/pD,GAAI,KACJiiI,SAAU,KACVpF,UAAW9yE,EACX/tL,UAAWwvP,EACX/mL,KAAM,KACNq4L,SAAU,KACVoF,cAAe,KACfnF,SAAU,KACVvmN,MAAO,KACPwmN,mBAAoB,KACpBC,0BAA2B,KAC3BC,aAAc,KACdC,eAAgB,KAChBn+P,QAAS,KACTmjQ,kBAAmB,KACnBC,iBAAkB,KAClBp2I,YAAa,KACbp8G,OAAQ,KACR4M,GAAI,KACJC,GAAI,KACJ9Q,EAAG,KACHyxP,SAAU,KACViF,cAAe,KACfC,QAASv4E,EACTw4E,gBAAiBx4E,EACjBlwJ,UAAW,KACX8F,QAAS,KACT6iO,IAAK,KACLxoG,QAAS+vB,EACT7qK,iBAAkB,KAClB4pD,SAAUk8K,EACV5lN,GAAI,KACJC,GAAI,KACJspJ,SAAU,KACV85E,SAAU,KACVC,UAAW34E,EACXszE,iBAAkB,KAClBvlN,IAAK,KACL3K,MAAO,KACPw1N,SAAU54E,EACV64E,0BAA2B,KAC3Bp3P,KAAM,KACNq9C,YAAakhI,EACbh+K,SAAU,KACVjT,OAAQ,KACR+pQ,UAAW,KACXC,YAAa,KACbxF,WAAY,KACZ7xD,aAAc,KACdpsC,UAAW,KACX0jG,eAAgB,KAChB7nN,WAAY,KACZr4B,SAAU,KACV06O,eAAgB,KAChBC,YAAa,KACbh6M,UAAW,KACX04B,YAAa,KACbj9D,WAAY,KACZs8C,OAAQ,KACRnoB,GAAI,KACJl5C,KAAM,KACN8oQ,GAAI,KACJC,GAAI,KACJp4H,GAAI0gH,EACJ1hH,GAAI0hH,EACJkS,UAAWlS,EACXmS,2BAA4B,KAC5BC,yBAA0B,KAC1BuF,SAAU,KACVC,kBAAmB,KACnBC,cAAe,KACf9nK,QAAS,KACT+nK,QAASt5E,EACTu5E,kBAAmB,KACnBC,WAAY,KACZrgQ,OAAQ,KACRD,KAAM,KACNkvP,SAAU,KACVyL,UAAW7zE,EACX8zE,aAAc9zE,EACd+zE,aAAc/zE,EACdnoL,GAAI,KACJ4hQ,YAAaz5E,EACbg0E,eAAgB,KAChB0F,kBAAmB,KACnB51P,GAAI,KACJ0xB,IAAK,KACLmkO,UAAW35E,EACXx8J,EAAGw8J,EACH9+C,GAAI8+C,EACJ9/C,GAAI8/C,EACJ45E,GAAI55E,EACJ65E,GAAI75E,EACJ85E,aAAcpY,EACdqY,iBAAkB,KAClBC,UAAW,KACXC,WAAY,KACZC,SAAU,KACVC,QAAS,KACTlR,KAAM,KACNmR,aAAc,KACd/nH,cAAe,KACf4hH,cAAe,KACfoG,kBAAmBr6E,EACnB7sL,MAAO,KACP+gQ,UAAW,KACXC,UAAW,KACXC,YAAa,KACbkG,aAAc,KACdC,YAAa,KACbC,YAAa,KACbr8G,KAAM,KACNs8G,iBAAkB,KAClBC,UAAW,KACXC,aAAc,KACd5zP,IAAK,KACLqiP,MAAO,KACPwR,uBAAwB,KACxBC,sBAAuB,KACvBC,UAAW96E,EACX+6E,UAAW,KACXp0K,OAAQ,KACRxrD,IAAK,KACL1F,KAAM,KACN78B,KAAM,KACNy7P,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,UAAW,KACXC,WAAY,KACZkG,WAAY,KACZn4N,SAAU,KACV3N,OAAQ,KACR+nD,QAAS,KACT83K,WAAY,KACZrL,aAAc,KACdG,cAAe,KACfmL,QAAS,KACT/K,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBhtP,SAAU,KACVhC,QAAS,KACTivP,QAAS,KACTI,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACX4J,MAAO,KACP3J,QAAS,KACT3rI,QAAS,KACT4rI,QAAS,KACT2J,UAAW,KACXC,WAAY,KACZ1J,aAAc,KACdC,QAAS,KACTC,UAAW,KACXrjO,UAAW,KACXsjO,WAAY,KACZC,QAAS,KACTE,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBE,YAAa,KACbC,UAAW,KACXh/O,YAAa,KACboH,aAAc,KACd83O,aAAc,KACd9+O,YAAa,KACb++O,WAAY,KACZC,YAAa,KACbl/O,UAAW,KACX8nP,aAAc,KACd3I,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdkI,SAAU,KACVhI,QAAS,KACTC,SAAU,KACVC,SAAU,KACVG,SAAU,KACVC,UAAW,KACXziE,SAAU,KACVoqE,OAAQ,KACRzH,UAAW,KACXC,UAAW,KACX9xP,SAAU,KACV+xP,UAAW,KACXC,aAAc,KACd1gE,SAAU,KACV4gE,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXmH,OAAQ,KACRr2P,QAAS,KACT+7P,SAAU,KACVt3J,MAAO,KACPu3J,OAAQ,KACR/tM,YAAa,KACb4oB,OAAQ,KACR5uE,SAAU,KACVg0P,QAAS,KACT3F,iBAAkBx1E,EAClBy1E,kBAAmBz1E,EACnB01E,WAAY,KACZC,QAAS,KACTl9P,KAAM,KACNyuI,WAAY84C,EACZo7E,oBAAqB,KACrBC,iBAAkB,KAClBC,aAAc,KACdtiK,MAAO,KACPu1J,KAAM9M,EACNxyE,MAAO,KACPqoF,cAAe,KACfhiN,cAAe,KACfg3E,OAAQ,KACRivI,UAAWv7E,EACXw7E,UAAWx7E,EACXy7E,UAAWz7E,EACX07E,cAAe,KACf35P,oBAAqB,KACrB45P,eAAgB,KAChBC,UAAW,KACXzoJ,SAAUuuI,EACV/uO,EAAG,KACHwF,OAAQ,KACR42O,eAAgB,KAChB8M,KAAM,KACNC,KAAM,KACN56O,IAAKwgO,EACLgQ,IAAKhQ,EACLkU,gBAAiB,KACjBmG,YAAa,KACbC,UAAW,KACXC,mBAAoBva,EACpBwa,iBAAkBxa,EAClBya,cAAeza,EACf0a,gBAAiB1a,EACjB2a,SAAU,KACVC,QAAS,KACT5zO,OAAQ,KACRkhC,OAAQ,KACR93C,GAAI,KACJ81H,GAAI,KACJniH,MAAO,KACPiiJ,KAAM,KACNmuF,eAAgB,KAChBx1J,KAAM,KACNk8J,MAAO,KACPC,aAAc,KACdC,iBAAkBz8E,EAClB08E,iBAAkB18E,EAClB28E,aAAc,KACd99M,QAAS,KACT+9M,YAAa,KACbrnO,aAAc,KACdsnO,MAAO,KACPC,MAAO,KACPC,YAAa,KACb5nO,UAAW,KACXwsK,YAAa,KACbm0D,sBAAuB91E,EACvB+1E,uBAAwB/1E,EACxB94J,OAAQ,KACRxV,OAAQ,KACRskP,gBAAiBtU,EACjBuU,iBAAkB,KAClBC,cAAe,KACfC,eAAgB,KAChBC,iBAAkBp2E,EAClB+hB,cAAe/hB,EACfruK,YAAa,KACbvf,MAAO,KACP4qQ,aAAch9E,EACdi9E,aAAc,KACdC,oBAAqB,KACrBC,WAAY,KACZC,cAAe,KACfC,qBAAsB,KACtBC,eAAgB5b,EAChBztJ,SAAU+rF,EACVu9E,YAAa,KACb/jQ,OAAQ,KACRgkQ,QAASx9E,EACTy9E,QAASz9E,EACTprK,WAAY,KACZo/B,eAAgB,KAChBqiN,cAAe,KACfqH,WAAY,KACZnG,cAAe,KACfz+P,MAAO,KACP6kQ,kBAAmB,KACnBrhQ,KAAM,KACNg6P,OAAQ5U,EACRnoP,GAAI,KACJuS,UAAW,KACXwsG,gBAAiB,KACjBkZ,GAAI,KACJosI,GAAI,KACJrH,kBAAmBv2E,EACnBw2E,mBAAoBx2E,EACpB69E,QAAS,KACTpH,YAAa,KACbC,aAAc,KACdC,WAAY32E,EACZpmL,OAAQ,KACRg9P,YAAa52E,EACb+2E,cAAe/2E,EACfg3E,aAAc,KACdH,SAAU72E,EACV82E,aAAc92E,EACd/5G,QAAS,KACTgxL,SAAUj3E,EACVk3E,YAAal3E,EACbm3E,YAAan3E,EACbr+K,QAAS,KACTm8P,WAAY,KACZt4O,WAAY,KACZtrB,MAAO,KACP6jQ,OAAQ,KACR3G,YAAa,KACbx3N,YAAa,KACbhuB,EAAG,KACH4G,GAAI,KACJE,GAAI,KACJslP,iBAAkB,KAClB3G,QAASr3E,EACTnuK,EAAG,KACH4G,GAAI,KACJE,GAAI,KACJslP,iBAAkB,KAClBlnM,EAAG,KACHmnM,WAAY,QCpiBH3gK,EAAO+sI,EAAM,CAACsY,EAAKR,EAAO1gP,EAAO0hP,EAAM+a,GAAW,QAClD3+N,EAAM8qM,EAAM,CAACsY,EAAKR,EAAO1gP,EAAO0hP,EAAMgb,GAAU,OCTvDC,EAAQ,kBACR1sN,EAAO,UACP2sN,EAAM,SA+CZ,SAASC,EAAMC,GACb,MAAO,IAAMA,EAAG/uQ,aAClB,CAMA,SAASgvQ,EAAUD,GACjB,OAAOA,EAAGrvN,OAAO,GAAG/wB,aACtB,CC1DO,MAAMsgP,EAAc,CACzBpO,QAAS,UACT+C,SAAU,WACVzK,OAAQ,SACRoN,gBAAiB,kBACjBC,iBAAkB,mBAClBC,cAAe,gBACfC,eAAgB,iBAChBC,iBAAkB,mBAClBE,OAAQ,SACRjU,aAAc,eACdC,aAAc,eACdC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,UAAW,YACXQ,WAAY,4BCvBd,QAAewb,EAAAA,SAAyBA,EC0B3BC,EAAWpkM,EAAM,OAUjBqkM,EAAarkM,EAAM,SAUhC,SAASA,EAAMl+D,GACb,OAQA,SAAeylC,GACb,MAAMy4B,EAASz4B,GAAQA,EAAKrmB,UAAYqmB,EAAKrmB,SAASpf,IAAU,CAAC,EAEjE,GACwB,kBAAfk+D,EAAM03C,MACb13C,EAAM03C,KAAO,GACW,kBAAjB13C,EAAMw3C,QACbx3C,EAAMw3C,OAAS,EAEf,MAAO,CACLE,KAAM13C,EAAM03C,KACZF,OAAQx3C,EAAMw3C,OACd98E,OAC0B,kBAAjBslC,EAAMtlC,QAAuBslC,EAAMtlC,QAAU,EAChDslC,EAAMtlC,YACNx/B,EAGZ,CACF,CCzCO,SAASopQ,EAAkBhtQ,GAEhC,OAAKA,GAA0B,kBAAVA,EAKjB,aAAcA,GAAS,SAAUA,EAC5B4pB,EAAS5pB,EAAM4pB,UAIpB,UAAW5pB,GAAS,QAASA,EACxB4pB,EAAS5pB,GAId,SAAUA,GAAS,WAAYA,EAC1B0oE,EAAM1oE,GAIR,GAnBE,EAoBX,CAMA,SAAS0oE,EAAMA,GACb,OAAOz0D,EAAMy0D,GAASA,EAAM03C,MAAQ,IAAMnsG,EAAMy0D,GAASA,EAAMw3C,OACjE,CAMA,SAASt2F,EAASo3F,GAChB,OAAOt4C,EAAMs4C,GAAOA,EAAI3tE,OAAS,IAAMq1B,EAAMs4C,GAAOA,EAAI/kE,IAC1D,CAMA,SAAShoC,EAAMjU,GACb,OAAOA,GAA0B,kBAAVA,EAAqBA,EAAQ,CACtD,CCvDO,MAAMitQ,WAAqBr2P,MAwDhC0S,WAAAA,CAAY4jP,EAAeC,EAAwBlpL,GACjDz6D,QAEsC,kBAA3B2jP,IACTlpL,EAASkpL,EACTA,OAAyBvpQ,GAI3B,IAAI48G,EAAS,GAET92F,EAAU,CAAC,EACX0jP,GAAc,EAwClB,GAtCID,IAMAzjP,EAHA,SAAUyjP,GACV,WAAYA,GAMZ,UAAWA,GACX,QAASA,EALC,CAACE,MAAOF,GAUX,SAAUA,EACP,CACRG,UAAW,CAACH,GACZE,MAAOF,EAAuBvjP,UAKtB,IAAIujP,IAIW,kBAAlBD,EACT1sJ,EAAS0sJ,GAGDxjP,EAAQixN,OAASuyB,IACzBE,GAAc,EACd5sJ,EAAS0sJ,EAAchqQ,QACvBwmB,EAAQixN,MAAQuyB,IAGbxjP,EAAQ6jP,SAAW7jP,EAAQqQ,QAA4B,kBAAXkqD,EAAqB,CACpE,MAAMhwE,EAAQgwE,EAAOxvC,QAAQ,MAEd,IAAXxgC,EACFyV,EAAQ6jP,OAAStpL,GAEjBv6D,EAAQqQ,OAASkqD,EAAOprE,MAAM,EAAG5E,GACjCyV,EAAQ6jP,OAAStpL,EAAOprE,MAAM5E,EAAQ,GAE1C,CAEA,IAAKyV,EAAQ2jP,OAAS3jP,EAAQ4jP,WAAa5jP,EAAQ4jP,UAAW,CAC5D,MAAM33O,EAASjM,EAAQ4jP,UAAU5jP,EAAQ4jP,UAAUzvQ,OAAS,GAExD83B,IACFjM,EAAQ2jP,MAAQ13O,EAAO/L,SAE3B,CAEA,MAAMypB,EACJ3pB,EAAQ2jP,OAAS,UAAW3jP,EAAQ2jP,MAChC3jP,EAAQ2jP,MAAMh6N,MACd3pB,EAAQ2jP,MAQd5jP,KAAK6jP,UAAY5jP,EAAQ4jP,gBAAa1pQ,EAOtC6lB,KAAKkxN,MAAQjxN,EAAQixN,YAAS/2O,EAO9B6lB,KAAKy2F,OAAS7sE,EAAQA,EAAM6sE,YAASt8G,EAWrC6lB,KAAK+jP,WAAQ5pQ,EAOb6lB,KAAKgkP,KAQLhkP,KAAKvmB,QAAUs9G,EAOf/2F,KAAK22F,KAAO/sE,EAAQA,EAAM+sE,UAAOx8G,EASjC6lB,KAAK3iB,KAAOkmQ,EAAkBtjP,EAAQ2jP,QAAU,MAOhD5jP,KAAK4jP,MAAQ3jP,EAAQ2jP,YAASzpQ,EAO9B6lB,KAAK+2F,OAAS/2F,KAAKvmB,QAOnBumB,KAAK8jP,OAAS7jP,EAAQ6jP,aAAU3pQ,EAOhC6lB,KAAKsQ,OAASrQ,EAAQqQ,aAAUn2B,EAWhC6lB,KAAK2+I,MACHglG,GAAe1jP,EAAQixN,OAAwC,kBAAxBjxN,EAAQixN,MAAMvyE,MACjD1+I,EAAQixN,MAAMvyE,MACd,GAYN3+I,KAAKikP,OAOLjkP,KAAKkkP,SAOLlkP,KAAKmkP,KAULnkP,KAAKliB,GAEP,EAGF0lQ,GAAaruO,UAAU6uO,KAAO,GAC9BR,GAAaruO,UAAU93B,KAAO,GAC9BmmQ,GAAaruO,UAAU4hF,OAAS,GAChCysJ,GAAaruO,UAAU17B,QAAU,GACjC+pQ,GAAaruO,UAAUwpI,MAAQ,GAC/B6kG,GAAaruO,UAAUshF,YAASt8G,EAChCqpQ,GAAaruO,UAAUwhF,UAAOx8G,EAC9BqpQ,GAAaruO,UAAU0uO,eAAY1pQ,EACnCqpQ,GAAaruO,UAAU+7M,WAAQ/2O,EAC/BqpQ,GAAaruO,UAAU4uO,WAAQ5pQ,EAC/BqpQ,GAAaruO,UAAUyuO,WAAQzpQ,EAC/BqpQ,GAAaruO,UAAU2uO,YAAS3pQ,EAChCqpQ,GAAaruO,UAAU7E,YAASn2B,ECxChC,MAAMusP,GAAM,CAAC,EAAEtxN,eAGTgvO,GAAW,IAAI5tP,IAEfusP,GAAM,SACNsB,GAAgB,YAahBC,GAAgB,IAAIzvQ,IAAI,CAAC,QAAS,QAAS,QAAS,QAAS,OAE7D0vQ,GAAmB,IAAI1vQ,IAAI,CAAC,KAAM,OAElC2vQ,GAAO,0DAcN,SAASC,GAAaC,EAAMzkP,GACjC,IAAKA,QAAgC9lB,IAArB8lB,EAAQqjN,SACtB,MAAM,IAAI7sM,UAAU,kCAGtB,MAAMhqB,EAAWwT,EAAQxT,eAAYtS,EAErC,IAAIy8B,EAEJ,GAAI3W,EAAQ0kP,YAAa,CACvB,GAA8B,oBAAnB1kP,EAAQ2kP,OACjB,MAAM,IAAInuO,UACR,yDAIJG,EA8TJ,SAA2BnqB,EAAUm4P,GACnC,OAAOhuO,EAEP,SAASA,EAAO4P,EAAMzlC,EAAM+e,EAAO9lB,GAEjC,MAAM6qQ,EAAmBlwQ,MAAM+4B,QAAQ5N,EAAMtpB,UACvCyoE,EAAQqkM,EAAW98N,GACzB,OAAOo+N,EACL7jQ,EACA+e,EACA9lB,EACA6qQ,EACA,CACE9zB,aAAc9xK,EAAQA,EAAMw3C,OAAS,OAAIt8G,EACzC+7D,SAAUzpD,EACV6rJ,WAAYr5F,EAAQA,EAAM03C,UAAOx8G,QAEnCA,EAEJ,CACF,CAlVa2qQ,CAAkBr4P,EAAUwT,EAAQ2kP,OAC/C,KAAO,CACL,GAA2B,oBAAhB3kP,EAAQsjN,IACjB,MAAM,IAAI9sM,UAAU,wCAGtB,GAA4B,oBAAjBxW,EAAQujN,KACjB,MAAM,IAAI/sM,UAAU,yCAGtBG,EAiSJ,SAA0B7H,EAAGw0M,EAAKC,GAChC,OAAO5sM,EAEP,SAASA,EAAO7H,EAAGhuB,EAAM+e,EAAO9lB,GAE9B,MACM2gF,EADmBhmF,MAAM+4B,QAAQ5N,EAAMtpB,UACfgtO,EAAOD,EACrC,OAAOvpO,EAAM2gF,EAAG55E,EAAM+e,EAAO9lB,GAAO2gF,EAAG55E,EAAM+e,EAC/C,CACF,CA1SailP,CAAiBt4P,EAAUwT,EAAQsjN,IAAKtjN,EAAQujN,KAC3D,CAGA,MAAM96N,EAAQ,CACZ46N,SAAUrjN,EAAQqjN,SAClBugC,UAAW,GACXmB,WAAY/kP,EAAQ+kP,YAAc,CAAC,EACnCpuO,SACAquO,yBAA0BhlP,EAAQglP,0BAA4B,QAC9DC,UAAWjlP,EAAQklP,gBAAkBllP,EAAQklP,uBAAoBhrQ,EACjEsS,WACA24P,mBAAoBnlP,EAAQmlP,qBAAsB,EAClDC,UAA+B,IAArBplP,EAAQolP,SAClBC,SAAUrlP,EAAQqlP,WAAY,EAC9BrmB,OAA0B,QAAlBh/N,EAAQ0lO,MAAkB1hN,EAAM+9D,EACxCujK,sBAAuBtlP,EAAQslP,uBAAyB,MACxDC,uBAAyD,IAAlCvlP,EAAQulP,uBAG3Br4O,EAASs4O,GAAI/8P,EAAOg8P,OAAMvqQ,GAGhC,OAAIgzB,GAA4B,kBAAXA,EACZA,EAIFzkB,EAAMkuB,OACX8tO,EACAh8P,EAAM46N,SACN,CAAC9sO,SAAU22B,QAAUhzB,QACrBA,EAEJ,CAcA,SAASsrQ,GAAI/8P,EAAO89B,EAAMxsC,GACxB,MAAkB,YAAdwsC,EAAKzlC,KAqCX,SAAiB2H,EAAO89B,EAAMxsC,GAC5B,MAAM0rQ,EAAeh9P,EAAMu2O,OAC3B,IAAIA,EAASymB,EAEsB,QAA/Bl/N,EAAK2D,QAAQj2C,eAAkD,SAAvBwxQ,EAAa/f,QACvD1G,EAASh7M,EACTv7B,EAAMu2O,OAASA,GAGjBv2O,EAAMm7P,UAAUngP,KAAK8iB,GAErB,MAAMzlC,EAAO4kQ,GAAsBj9P,EAAO89B,EAAK2D,SAAS,GAClDrqB,EAkPR,SAA4BpX,EAAO89B,GAEjC,MAAM1mB,EAAQ,CAAC,EAEf,IAAI8lP,EAEAnuJ,EAEJ,IAAKA,KAAQjxE,EAAKy7G,WAChB,GAAa,aAATxqC,GAAuBivI,GAAIrxN,KAAKmR,EAAKy7G,WAAYxqC,GAAO,CAC1D,MAAMtqF,EAAS04O,GAAen9P,EAAO+uG,EAAMjxE,EAAKy7G,WAAWxqC,IAE3D,GAAItqF,EAAQ,CACV,MAAOnzB,EAAKzD,GAAS42B,EAGnBzkB,EAAM88P,uBACE,UAARxrQ,GACiB,kBAAVzD,GACPguQ,GAAiB1gO,IAAI2C,EAAK2D,SAE1By7N,EAAarvQ,EAEbupB,EAAM9lB,GAAOzD,CAEjB,CACF,CAGF,GAAIqvQ,EAAY,EAEsB9lP,EAAMjpB,QAAUipB,EAAMjpB,MAAQ,CAAC,IAC7B,QAAhC6R,EAAM68P,sBAAkC,aAAe,aAC3DK,CACJ,CAEA,OAAO9lP,CACT,CAvRgBgmP,CAAmBp9P,EAAO89B,GACxC,IAAIhwC,EAAWuvQ,GAAer9P,EAAO89B,GAEjC89N,GAAczgO,IAAI2C,EAAK2D,WACzB3zC,EAAWA,EAAShD,QAAO,SAAUm6B,GACnC,MAAwB,kBAAVA,KvBvaM,kBADC2+M,EuBwa0B3+M,GvBtahC,SAAf2+M,EAAMvrO,MACJykP,EAAMlZ,EAAM/1O,OAEdivP,EAAMlZ,IALL,IAAoBA,CuByavB,KAUF,OAPA05B,GAAQt9P,EAAOoX,EAAO/e,EAAMylC,GAC5By/N,GAAYnmP,EAAOtpB,GAGnBkS,EAAMm7P,UAAUz4M,MAChB1iD,EAAMu2O,OAASymB,EAERh9P,EAAMkuB,OAAO4P,EAAMzlC,EAAM+e,EAAO9lB,EACzC,CAjEWvG,CAAQiV,EAAO89B,EAAMxsC,GAGZ,sBAAdwsC,EAAKzlC,MAA8C,sBAAdylC,EAAKzlC,KA0EhD,SAAuB2H,EAAO89B,GAC5B,GAAIA,EAAK/rC,MAAQ+rC,EAAK/rC,KAAKyrQ,QAAUx9P,EAAMw8P,UAAW,CACpD,MACM7vF,EADU7uI,EAAK/rC,KAAKyrQ,OACCnsQ,KAAK,GAIhC,OAHOs7K,EAAWt0K,KAIhB2H,EAAMw8P,UAAUiB,mBAAmB9wF,EAAWA,WAElD,CAEA+wF,GAAY19P,EAAO89B,EAAKrmB,SAC1B,CAtFWkmP,CAAc39P,EAAO89B,GAGZ,sBAAdA,EAAKzlC,MAA8C,sBAAdylC,EAAKzlC,KAsHhD,SAAuB2H,EAAO89B,EAAMxsC,GAClC,MAAM0rQ,EAAeh9P,EAAMu2O,OAC3B,IAAIA,EAASymB,EAEK,QAAdl/N,EAAKnpC,MAAyC,SAAvBqoQ,EAAa/f,QACtC1G,EAASh7M,EACTv7B,EAAMu2O,OAASA,GAGjBv2O,EAAMm7P,UAAUngP,KAAK8iB,GAErB,MAAMzlC,EACU,OAAdylC,EAAKnpC,KACDqL,EAAM46N,SACNqiC,GAAsBj9P,EAAO89B,EAAKnpC,MAAM,GACxCyiB,EAuMR,SAA+BpX,EAAO89B,GAEpC,MAAM1mB,EAAQ,CAAC,EAEf,IAAK,MAAMgmO,KAAat/M,EAAKsC,WAC3B,GAAuB,8BAAnBg9M,EAAU/kP,KACZ,GAAI+kP,EAAUrrP,MAAQqrP,EAAUrrP,KAAKyrQ,QAAUx9P,EAAMw8P,UAAW,CAC9D,MACM7vF,EADUywE,EAAUrrP,KAAKyrQ,OACJnsQ,KAAK,GACzBs7K,EAAWt0K,KAClB,MAAMulQ,EAAmBjxF,EAAWA,WAC7BixF,EAAiBvlQ,KACxB,MAAM62G,EAAW0uJ,EAAiBrkH,WAAW,GACtCrqC,EAAS72G,KAEhB9G,OAAOmxB,OACLtL,EACApX,EAAMw8P,UAAUiB,mBAAmBvuJ,EAAS2uJ,UAEhD,MACEH,GAAY19P,EAAO89B,EAAKrmB,cAErB,CAEL,MAAM9iB,EAAOyoP,EAAUzoP,KAEvB,IAAI9G,EAEJ,GAAIuvP,EAAUvvP,OAAoC,kBAApBuvP,EAAUvvP,MACtC,GACEuvP,EAAUvvP,MAAMkE,MAChBqrP,EAAUvvP,MAAMkE,KAAKyrQ,QACrBx9P,EAAMw8P,UACN,CACA,MACM7vF,EADUywE,EAAUvvP,MAAMkE,KAAKyrQ,OACVnsQ,KAAK,GACzBs7K,EAAWt0K,KAClBxK,EAAQmS,EAAMw8P,UAAUiB,mBAAmB9wF,EAAWA,WACxD,MACE+wF,GAAY19P,EAAO89B,EAAKrmB,eAG1B5pB,EAA4B,OAApBuvP,EAAUvvP,OAAwBuvP,EAAUvvP,MAItDupB,EAAMziB,GAA2C9G,CACnD,CAGF,OAAOupB,CACT,CA1PgB0mP,CAAsB99P,EAAO89B,GACrChwC,EAAWuvQ,GAAer9P,EAAO89B,GASvC,OAPAw/N,GAAQt9P,EAAOoX,EAAO/e,EAAMylC,GAC5By/N,GAAYnmP,EAAOtpB,GAGnBkS,EAAMm7P,UAAUz4M,MAChB1iD,EAAMu2O,OAASymB,EAERh9P,EAAMkuB,OAAO4P,EAAMzlC,EAAM+e,EAAO9lB,EACzC,CA/IWysQ,CAAc/9P,EAAO89B,EAAMxsC,GAGlB,aAAdwsC,EAAKzlC,KA2FX,SAAgB2H,EAAO89B,GACrB,GAAIA,EAAK/rC,MAAQ+rC,EAAK/rC,KAAKyrQ,QAAUx9P,EAAMw8P,UAEzC,OACEx8P,EAAMw8P,UAAUwB,gBAAgBlgO,EAAK/rC,KAAKyrQ,QAI9CE,GAAY19P,EAAO89B,EAAKrmB,SAC1B,CAnGWwmP,CAAOj+P,EAAO89B,GAGL,SAAdA,EAAKzlC,KAsJX,SAAc2H,EAAO89B,EAAMxsC,GAEzB,MAAM8lB,EAAQ,CAAC,EAIf,OAFAmmP,GAAYnmP,EAAOimP,GAAer9P,EAAO89B,IAElC99B,EAAMkuB,OAAO4P,EAAM99B,EAAM46N,SAAUxjN,EAAO9lB,EACnD,CA5JWy7I,CAAK/sI,EAAO89B,EAAMxsC,GAGT,SAAdwsC,EAAKzlC,KAqKX,SAAcguB,EAAGyX,GACf,OAAOA,EAAKjwC,KACd,CAtKWkrB,CAAK/Y,EAAO89B,QADrB,CAGF,CAoLA,SAASw/N,GAAQt9P,EAAOoX,EAAO/e,EAAMylC,GAEf,kBAATzlC,GAAqBA,IAAS2H,EAAM46N,UAAY56N,EAAM48P,WAC/DxlP,EAAM0mB,KAAOA,EAEjB,CAYA,SAASy/N,GAAYnmP,EAAOtpB,GAC1B,GAAIA,EAASpC,OAAS,EAAG,CACvB,MAAMmC,EAAQC,EAASpC,OAAS,EAAIoC,EAAWA,EAAS,GAEpDD,IACFupB,EAAMtpB,SAAWD,EAErB,CACF,CA+KA,SAASwvQ,GAAer9P,EAAO89B,GAE7B,MAAMhwC,EAAW,GACjB,IAAIgU,GAAS,EAIb,MAAMo8P,EAAel+P,EAAM28P,SAAW,IAAI7uP,IAAQ4tP,GAElD,OAAS55P,EAAQg8B,EAAKhwC,SAASpC,QAAQ,CACrC,MAAMu5B,EAAQ6Y,EAAKhwC,SAASgU,GAE5B,IAAIxQ,EAEJ,GAAI0O,EAAM28P,SAAU,CAClB,MAAMhoQ,EACW,YAAfswB,EAAM5sB,KACF4sB,EAAMwc,QACS,sBAAfxc,EAAM5sB,MACW,sBAAf4sB,EAAM5sB,KACN4sB,EAAMtwB,UACNlD,EAER,GAAIkD,EAAM,CACR,MAAMghB,EAAQuoP,EAAazzQ,IAAIkK,IAAS,EACxCrD,EAAMqD,EAAO,IAAMghB,EACnBuoP,EAAa9iO,IAAIzmC,EAAMghB,EAAQ,EACjC,CACF,CAEA,MAAM8O,EAASs4O,GAAI/8P,EAAOilB,EAAO3zB,QAClBG,IAAXgzB,GAAsB32B,EAASktB,KAAKyJ,EAC1C,CAEA,OAAO32B,CACT,CAcA,SAASqvQ,GAAen9P,EAAO+uG,EAAMlhH,GACnC,MAAMqwP,ENzzBD,SAAc3H,EAAQ1oP,GAC3B,MAAMmvP,EAAS/1E,EAAUp5K,GACzB,IAAIkhH,EAAOlhH,EACPswQ,EAAOhhB,EAEX,GAAIH,KAAUzG,EAAOyG,OACnB,OAAOzG,EAAOrnI,SAASqnI,EAAOyG,OAAOA,IAGvC,GAAIA,EAAOtxP,OAAS,GAA4B,SAAvBsxP,EAAOt2O,MAAM,EAAG,IAAiB0zP,EAAM9/N,KAAKzsC,GAAQ,CAE3E,GAAwB,MAApBA,EAAMq9C,OAAO,GAAY,CAE3B,MAAM4pC,EAAOjnF,EAAM6Y,MAAM,GAAGwc,QAAQwqB,EAAM8sN,GAC1CzrJ,EAAO,OAASj6B,EAAK5pC,OAAO,GAAG/wB,cAAgB26D,EAAKpuE,MAAM,EAC5D,KAAO,CAEL,MAAMouE,EAAOjnF,EAAM6Y,MAAM,GAEzB,IAAKgnC,EAAKpT,KAAKw6C,GAAO,CACpB,IAAIspL,EAAStpL,EAAK5xD,QAAQm3O,EAAKC,GAEN,MAArB8D,EAAOlzN,OAAO,KAChBkzN,EAAS,IAAMA,GAGjBvwQ,EAAQ,OAASuwQ,CACnB,CACF,CAEAD,EAAOrgB,CACT,CAEA,OAAO,IAAIqgB,EAAKpvJ,EAAMlhH,EACxB,CMuxBe8W,CAAK3E,EAAMu2O,OAAQxnI,GAGhC,KACY,OAAVlhH,QACU4D,IAAV5D,GACkB,kBAAVA,GAAsBs+C,OAAOU,MAAMh/C,IAH7C,CAeA,GAPI5B,MAAM+4B,QAAQn3B,KAGhBA,EAAQqwP,EAAKX,eC5xBV,SAAmB5nP,EAAQ4hB,GAChC,MAAM8mP,EAAW9mP,GAAW,CAAC,EAK7B,OAF4C,KAA9B5hB,EAAOA,EAAOjK,OAAS,GAAY,IAAIiK,EAAQ,IAAMA,GAGhE0kB,MACEgkP,EAASC,SAAW,IAAM,IACzB,MACsB,IAArBD,EAASE,QAAoB,GAAK,MAEtCl3O,MACL,CD+wBkCm3O,CAAO3wQ,GAAgBA,EEl0BzCwsB,KAAK,KAAKgN,QFs0BF,UAAlB62N,EAAKhvI,SAAsB,CAC7B,IAAIkuH,EACe,kBAAVvvO,EAAqBA,EA6BlC,SAAoBmS,EAAOnS,GAEzB,MAAM42B,EAAS,CAAC,EAEhB,IAEEg6O,EAAc5wQ,EAAO6wQ,EACvB,CAAE,MAAOxxQ,GACP,IAAK8S,EAAM08P,mBAAoB,CAC7B,MAAMl0B,EAA8Bt7O,EAC9B6D,EAAU,IAAI+pQ,GAAa,iCAAkC,CACjEK,UAAWn7P,EAAMm7P,UACjB3yB,QACA4yB,OAAQ,QACRxzO,OAAQ,6BAKV,MAHA72B,EAAQuqQ,KAAOt7P,EAAM+D,eAAYtS,EACjCV,EAAQqE,IAAM0mQ,GAAO,gCAEf/qQ,CACR,CACF,CAEA,OAAO0zB,EAaP,SAASi6O,EAAS/pQ,EAAM9G,GACtB,IAAIyD,EAAMqD,EAEc,OAApBrD,EAAIoV,MAAM,EAAG,KACS,SAApBpV,EAAIoV,MAAM,EAAG,KAAepV,EAAM,MAAQA,EAAIoV,MAAM,IACxDpV,EAAMA,EAAI4xB,QAAQy4O,GAAegD,KAGnCl6O,EAAOnzB,GAAOzD,CAChB,CACF,CA3E0C+wQ,CAAW5+P,EAAOguB,OAAOngC,IAM/D,MAJoC,QAAhCmS,EAAM68P,wBACRz/B,EAsKN,SAAoCyhC,GAElC,MAAMC,EAAY,CAAC,EAEnB,IAAI5yQ,EAEJ,IAAKA,KAAQ2yQ,EACP7gB,GAAIrxN,KAAKkyO,EAAW3yQ,KACtB4yQ,EAAUC,GAA0B7yQ,IAAS2yQ,EAAU3yQ,IAI3D,OAAO4yQ,CACT,CAnLoBE,CAA2B5hC,IAGpC,CAAC,QAASA,EACnB,CAEA,MAAO,CAC8B,UAAnCp9N,EAAMu8P,0BAAwCre,EAAKjB,MAC/Cwd,EAAYvc,EAAKhvI,WAAagvI,EAAKhvI,SACnCgvI,EAAKd,UACTvvP,EAxBF,CA0BF,CA0EA,SAASovQ,GAAsBj9P,EAAOrL,EAAMsqQ,GAE1C,IAAIx6O,EAEJ,GAAKw6O,EAEE,GAAItqQ,EAAKlJ,SAAS,KAAM,CAC7B,MAAMyzQ,EAAcvqQ,EAAKklB,MAAM,KAC/B,IAEIikB,EAFAh8B,GAAS,EAIb,OAASA,EAAQo9P,EAAYxzQ,QAAQ,CAEnC,MAAMqjH,EAAOowJ,EAAiBD,EAAYp9P,IACtC,CAACzJ,KAAM,aAAc1D,KAAMuqQ,EAAYp9P,IACvC,CAACzJ,KAAM,UAAWxK,MAAOqxQ,EAAYp9P,IACzCg8B,EAAOA,EACH,CACEzlC,KAAM,mBACNq4G,OAAQ5yE,EACRoxE,SAAUH,EACV+/H,SAAUn+M,QAAQ7uB,GAAuB,YAAditG,EAAK12G,MAChC+mQ,UAAU,GAEZrwJ,CACN,CAGAtqF,EAASqZ,CACX,MACErZ,EACE06O,EAAiBxqQ,KAAU,SAAS2lC,KAAK3lC,GACrC,CAAC0D,KAAM,aAAc1D,QACrB,CAAC0D,KAAM,UAAWxK,MAAO8G,QA7B/B8vB,EAAS,CAACpsB,KAAM,UAAWxK,MAAO8G,GAkCpC,GAAoB,YAAhB8vB,EAAOpsB,KAAoB,CAC7B,MAAM1D,EAAmD8vB,EAAO52B,MAEhE,OAAOmwP,GAAIrxN,KAAK3sB,EAAMs8P,WAAY3nQ,GAAQqL,EAAMs8P,WAAW3nQ,GAAQA,CACrE,CAGA,GAAIqL,EAAMw8P,UACR,OAAOx8P,EAAMw8P,UAAUiB,mBAAmBh5O,GAG5Ci5O,GAAY19P,EACd,CAOA,SAAS09P,GAAY19P,EAAOk7P,GAC1B,MAAMnqQ,EAAU,IAAI+pQ,GAClB,sDACA,CACEK,UAAWn7P,EAAMm7P,UACjBD,QACAE,OAAQ,aACRxzO,OAAQ,6BAMZ,MAHA72B,EAAQuqQ,KAAOt7P,EAAM+D,eAAYtS,EACjCV,EAAQqE,IAAM0mQ,GAAO,qDAEf/qQ,CACR,CA6BA,SAASguQ,GAA0B7yQ,GACjC,IAAIoJ,EAAKpJ,EAAKg3B,QAAQm3O,GAAKgF,IAG3B,MADuB,QAAnB/pQ,EAAGoR,MAAM,EAAG,KAAcpR,EAAK,IAAMA,GAClCA,CACT,CAYA,SAASqpQ,GAAQt4O,EAAGi5O,GAClB,OAAOA,EAAGnlP,aACZ,CAUA,SAASklP,GAAO9E,GACd,MAAO,IAAMA,EAAG/uQ,aAClB,CGnjCO,MAAM+zQ,GAAgB,CAC3BhuL,OAAQ,CAAC,QACT4xK,KAAM,CAAC,aAAc,MAAO,MAAO,KACnCpxP,KAAM,CAAC,UACPmpF,WAAY,CAAC,SAAU,SACvBjmF,KAAM,CAAC,IAAK,OAAQ,OAAQ,QAC5BuqQ,KAAM,CAAC,YACP7a,OAAQ,KACR9xK,SAAU,CAAC,QACXy3K,KAAM,CAAC,IAAK,QACZK,OAAQ,CAAC,SACTn1P,IAAK,CACH,QACA,QACA,SACA,MACA,QACA,SACA,SACA,QACA,wBChBJ,MAAMqnP,GAAe,CAAC,EAuCtB,SAASkgB,GAAIlvQ,EAAO4xQ,EAAiBC,GACnC,GAqDF,SAAc7xQ,GACZ,OAAO8iC,QAAQ9iC,GAA0B,kBAAVA,EACjC,CAvDMiwC,CAAKjwC,GAAQ,CACf,GAAI,UAAWA,EACb,MAAsB,SAAfA,EAAMwK,MAAoBqnQ,EAAmB7xQ,EAAMA,MAAX,GAGjD,GAAI4xQ,GAAmB,QAAS5xQ,GAASA,EAAM6H,IAC7C,OAAO7H,EAAM6H,IAGf,GAAI,aAAc7H,EAChB,OAAOw3F,GAAIx3F,EAAMC,SAAU2xQ,EAAiBC,EAEhD,CAEA,OAAIzzQ,MAAM+4B,QAAQn3B,GACTw3F,GAAIx3F,EAAO4xQ,EAAiBC,GAG9B,EACT,CAcA,SAASr6K,GAAI1vF,EAAQ8pQ,EAAiBC,GAEpC,MAAMj7O,EAAS,GACf,IAAI3iB,GAAS,EAEb,OAASA,EAAQnM,EAAOjK,QACtB+4B,EAAO3iB,GAASi7P,GAAIpnQ,EAAOmM,GAAQ29P,EAAiBC,GAGtD,OAAOj7O,EAAOpK,KAAK,GACrB,CCzEO,SAASke,GAAOsgE,EAAM33D,EAAOqjB,EAAQnuC,GAC1C,MAAM0zB,EAAM+uD,EAAKntG,OACjB,IAEIi0Q,EAFAC,EAAa,EAajB,GAPE1+N,EADEA,EAAQ,GACDA,EAAQ4I,EAAM,EAAIA,EAAM5I,EAEzBA,EAAQ4I,EAAMA,EAAM5I,EAE9BqjB,EAASA,EAAS,EAAIA,EAAS,EAG3BnuC,EAAM1qB,OAAS,IACjBi0Q,EAAa1zQ,MAAMC,KAAKkqB,GACxBupP,EAAW18M,QAAQ/hB,EAAOqjB,GAE1Bs0C,EAAKtgE,UAAUonO,QAMf,IAHIp7M,GAAQs0C,EAAKtgE,OAAO2I,EAAOqjB,GAGxBq7M,EAAaxpP,EAAM1qB,QACxBi0Q,EAAavpP,EAAM1P,MAAMk5P,EAAYA,EAAa,KAClDD,EAAW18M,QAAQ/hB,EAAO,GAE1B23D,EAAKtgE,UAAUonO,GACfC,GAAc,IACd1+N,GAAS,GAGf,CAkBO,SAASlmB,GAAK69E,EAAMziF,GACzB,OAAIyiF,EAAKntG,OAAS,GAChB6sC,GAAOsgE,EAAMA,EAAKntG,OAAQ,EAAG0qB,GACtByiF,GAEFziF,CACT,CCnDO,MAAMypP,GAOX1oP,WAAAA,CAAY2oP,GAEVxoP,KAAKxqB,KAAOgzQ,EAAU,IAAIA,GAAW,GAErCxoP,KAAKlU,MAAQ,EACf,CAWA3Y,GAAAA,CAAIqX,GACF,GAAIA,EAAQ,GAAKA,GAASwV,KAAKxqB,KAAKpB,OAAS4rB,KAAKlU,MAAM1X,OACtD,MAAM,IAAIq0Q,WAAW,wBAA0Bj+P,EAAQ,kCAAoCwV,KAAKxqB,KAAKpB,OAAS4rB,KAAKlU,MAAM1X,QAAU,KAErI,OAAIoW,EAAQwV,KAAKxqB,KAAKpB,OAAe4rB,KAAKxqB,KAAKgV,GACxCwV,KAAKlU,MAAMkU,KAAKlU,MAAM1X,OAASoW,EAAQwV,KAAKxqB,KAAKpB,OAAS,EACnE,CAMA,UAAIA,GACF,OAAO4rB,KAAKxqB,KAAKpB,OAAS4rB,KAAKlU,MAAM1X,MACvC,CASAs3D,KAAAA,GAEE,OADA1rC,KAAK0oP,UAAU,GACR1oP,KAAKlU,MAAMs/C,KACpB,CAaAh8C,KAAAA,CAAMw6B,EAAO4I,GAEX,MAAM1I,EAAe,OAAR0I,QAAwBr4C,IAARq4C,EAAoBqC,OAAO8zN,kBAAoBn2N,EAC5E,OAAI1I,EAAO9pB,KAAKxqB,KAAKpB,OACZ4rB,KAAKxqB,KAAK4Z,MAAMw6B,EAAOE,GAE5BF,EAAQ5pB,KAAKxqB,KAAKpB,OACb4rB,KAAKlU,MAAMsD,MAAM4Q,KAAKlU,MAAM1X,OAAS01C,EAAO9pB,KAAKxqB,KAAKpB,OAAQ4rB,KAAKlU,MAAM1X,OAASw1C,EAAQ5pB,KAAKxqB,KAAKpB,QAAQwwE,UAE9G5kD,KAAKxqB,KAAK4Z,MAAMw6B,GAAO50C,OAAOgrB,KAAKlU,MAAMsD,MAAM4Q,KAAKlU,MAAM1X,OAAS01C,EAAO9pB,KAAKxqB,KAAKpB,QAAQwwE,UACrG,CAsBA3jC,MAAAA,CAAO2I,EAAOg/N,EAAa9pP,GAEzB,MAAMT,EAAQuqP,GAAe,EAC7B5oP,KAAK0oP,UAAUn9P,KAAKs9P,MAAMj/N,IAC1B,MAAMk/N,EAAU9oP,KAAKlU,MAAMm1B,OAAOjhB,KAAKlU,MAAM1X,OAASiqB,EAAOw2B,OAAO8zN,mBAEpE,OADI7pP,GAAOiqP,GAAY/oP,KAAKxqB,KAAMspB,GAC3BgqP,EAAQlkM,SACjB,CAUAxZ,GAAAA,GAEE,OADAprC,KAAK0oP,UAAU7zN,OAAO8zN,mBACf3oP,KAAKxqB,KAAK41D,KACnB,CAWA1nC,IAAAA,CAAKxE,GACHc,KAAK0oP,UAAU7zN,OAAO8zN,mBACtB3oP,KAAKxqB,KAAKkuB,KAAKxE,EACjB,CAWA8pP,QAAAA,CAASlqP,GACPkB,KAAK0oP,UAAU7zN,OAAO8zN,mBACtBI,GAAY/oP,KAAKxqB,KAAMspB,EACzB,CAWA6sC,OAAAA,CAAQzsC,GACNc,KAAK0oP,UAAU,GACf1oP,KAAKlU,MAAM4X,KAAKxE,EAClB,CAWA+pP,WAAAA,CAAYnqP,GACVkB,KAAK0oP,UAAU,GACfK,GAAY/oP,KAAKlU,MAAOgT,EAAM8lD,UAChC,CAcA8jM,SAAAA,CAAUzzO,GACR,KAAIA,IAAMjV,KAAKxqB,KAAKpB,QAAU6gC,EAAIjV,KAAKxqB,KAAKpB,QAAgC,IAAtB4rB,KAAKlU,MAAM1X,QAAgB6gC,EAAI,GAA0B,IAArBjV,KAAKxqB,KAAKpB,QACpG,GAAI6gC,EAAIjV,KAAKxqB,KAAKpB,OAAQ,CAExB,MAAM00Q,EAAU9oP,KAAKxqB,KAAKyrC,OAAOhM,EAAG4f,OAAO8zN,mBAC3CI,GAAY/oP,KAAKlU,MAAOg9P,EAAQlkM,UAClC,KAAO,CAEL,MAAMkkM,EAAU9oP,KAAKlU,MAAMm1B,OAAOjhB,KAAKxqB,KAAKpB,OAAS4rB,KAAKlU,MAAM1X,OAAS6gC,EAAG4f,OAAO8zN,mBACnFI,GAAY/oP,KAAKxqB,KAAMszQ,EAAQlkM,UACjC,CACF,EAeF,SAASmkM,GAAYxnK,EAAMz1F,GAEzB,IAAIw8P,EAAa,EACjB,GAAIx8P,EAAM1X,OAAS,IACjBmtG,EAAK79E,QAAQ5X,QAEb,KAAOw8P,EAAax8P,EAAM1X,QACxBmtG,EAAK79E,QAAQ5X,EAAMsD,MAAMk5P,EAAYA,EAAa,MAClDA,GAAc,GAGpB,CCrOO,SAASY,GAAYC,GAE1B,MAAMC,EAAQ,CAAC,EACf,IAEIvhO,EAEAwhO,EAEAC,EAEAC,EAEAlB,EAEAmB,EAEAC,EAdAj/P,GAAS,EAeb,MAAMy+B,EAAS,IAAIs/N,GAAaY,GAChC,OAAS3+P,EAAQy+B,EAAO70C,QAAQ,CAC9B,KAAOoW,KAAS4+P,GACd5+P,EAAQ4+P,EAAM5+P,GAMhB,GAJAq9B,EAAQoB,EAAO91C,IAAIqX,GAIfA,GAA2B,cAAlBq9B,EAAM,GAAG9mC,MAA0D,mBAAlCkoC,EAAO91C,IAAIqX,EAAQ,GAAG,GAAGzJ,OACrEyoQ,EAAY3hO,EAAM,GAAG6hO,WAAWzgO,OAChCqgO,EAAa,EACTA,EAAaE,EAAUp1Q,QAA4C,oBAAlCo1Q,EAAUF,GAAY,GAAGvoQ,OAC5DuoQ,GAAc,GAEZA,EAAaE,EAAUp1Q,QAA4C,YAAlCo1Q,EAAUF,GAAY,GAAGvoQ,MAC5D,OAASuoQ,EAAaE,EAAUp1Q,QACQ,YAAlCo1Q,EAAUF,GAAY,GAAGvoQ,MAGS,cAAlCyoQ,EAAUF,GAAY,GAAGvoQ,OAC3ByoQ,EAAUF,GAAY,GAAGK,6BAA8B,EACvDL,KAOR,GAAiB,UAAbzhO,EAAM,GACJA,EAAM,GAAG0uD,cACXt8F,OAAOmxB,OAAOg+O,EAAOQ,GAAW3gO,EAAQz+B,IACxCA,EAAQ4+P,EAAM5+P,GACdi/P,GAAO,QAIN,GAAI5hO,EAAM,GAAGgiO,WAAY,CAG5B,IAFAP,EAAa9+P,EACb6+P,OAAYlvQ,EACLmvQ,MACLC,EAAatgO,EAAO91C,IAAIm2Q,GACG,eAAvBC,EAAW,GAAGxoQ,MAAgD,oBAAvBwoQ,EAAW,GAAGxoQ,OACjC,UAAlBwoQ,EAAW,KACTF,IACFpgO,EAAO91C,IAAIk2Q,GAAW,GAAGtoQ,KAAO,mBAElCwoQ,EAAW,GAAGxoQ,KAAO,aACrBsoQ,EAAYC,GAMdD,IAEFxhO,EAAM,GAAG2K,IAAMv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAO91C,IAAIk2Q,GAAW,GAAGz/N,OAG1Dy+N,EAAap/N,EAAO75B,MAAMi6P,EAAW7+P,GACrC69P,EAAW18M,QAAQ9jB,GACnBoB,EAAOhI,OAAOooO,EAAW7+P,EAAQ6+P,EAAY,EAAGhB,GAEpD,CACF,CAIA,OADApnO,GAAOkoO,EAAa,EAAGt0N,OAAO8zN,kBAAmB1/N,EAAO75B,MAAM,KACtDq6P,CACV,CASA,SAASG,GAAW3gO,EAAQ6gO,GAC1B,MAAMzuQ,EAAQ4tC,EAAO91C,IAAI22Q,GAAY,GAC/BllQ,EAAUqkC,EAAO91C,IAAI22Q,GAAY,GACvC,IAAIC,EAAgBD,EAAa,EAEjC,MAAME,EAAiB,GACjBC,EAAY5uQ,EAAMquQ,YAAc9kQ,EAAQ8lO,OAAOrvO,EAAMk7F,aAAal7F,EAAMuuC,OACxEsgO,EAAcD,EAAUhhO,OAExBmgO,EAAQ,GAERe,EAAO,CAAC,EAEd,IAAIC,EAEAC,EACA7/P,GAAS,EAETN,EAAU7O,EACVivQ,EAAS,EACT1gO,EAAQ,EACZ,MAAM2gO,EAAS,CAAC3gO,GAIhB,KAAO1/B,GAAS,CAEd,KAAO++B,EAAO91C,MAAM42Q,GAAe,KAAO7/P,IAG1C8/P,EAAetmP,KAAKqmP,GACf7/P,EAAQw/P,aACXU,EAASxlQ,EAAQ4lQ,YAAYtgQ,GACxBA,EAAQ6D,MACXq8P,EAAO1mP,KAAK,MAEV2mP,GACFJ,EAAUQ,WAAWvgQ,EAAQ0/B,OAE3B1/B,EAAQy/P,8BACVM,EAAUS,oCAAqC,GAEjDT,EAAU5lM,MAAM+lM,GACZlgQ,EAAQy/P,8BACVM,EAAUS,wCAAqCvwQ,IAKnDkwQ,EAAWngQ,EACXA,EAAUA,EAAQ6D,IACpB,CAKA,IADA7D,EAAU7O,IACDmP,EAAQ0/P,EAAY91Q,QAGD,SAA1B81Q,EAAY1/P,GAAO,IAA+C,UAA9B0/P,EAAY1/P,EAAQ,GAAG,IAAkB0/P,EAAY1/P,GAAO,GAAGzJ,OAASmpQ,EAAY1/P,EAAQ,GAAG,GAAGzJ,MAAQmpQ,EAAY1/P,GAAO,GAAGo/B,MAAM+sE,OAASuzJ,EAAY1/P,GAAO,GAAGgoC,IAAImkE,OAC3M/sE,EAAQp/B,EAAQ,EAChB+/P,EAAO7mP,KAAKkmB,GAEZ1/B,EAAQw/P,gBAAavvQ,EACrB+P,EAAQmgQ,cAAWlwQ,EACnB+P,EAAUA,EAAQ6D,MAqBtB,IAhBAk8P,EAAUhhO,OAAS,GAKf/+B,GAEFA,EAAQw/P,gBAAavvQ,EACrB+P,EAAQmgQ,cAAWlwQ,GAEnBowQ,EAAOn/M,MAKT5gD,EAAQ+/P,EAAOn2Q,OACRoW,KAAS,CACd,MAAM4E,EAAQ86P,EAAY96P,MAAMm7P,EAAO//P,GAAQ+/P,EAAO//P,EAAQ,IACxDo/B,EAAQogO,EAAe5+M,MAC7Bg+M,EAAM1lP,KAAK,CAACkmB,EAAOA,EAAQx6B,EAAMhb,OAAS,IAC1C60C,EAAOhI,OAAO2I,EAAO,EAAGx6B,EAC1B,CAGA,IAFAg6P,EAAMxkM,UACNp6D,GAAS,IACAA,EAAQ4+P,EAAMh1Q,QACrB+1Q,EAAKG,EAASlB,EAAM5+P,GAAO,IAAM8/P,EAASlB,EAAM5+P,GAAO,GACvD8/P,GAAUlB,EAAM5+P,GAAO,GAAK4+P,EAAM5+P,GAAO,GAAK,EAEhD,OAAO2/P,CACT,CC/MA,MAAM/0O,GAAiB,CAAC,EAAEA,eA+B1B,SAASu1O,GAAgB58K,EAAK68K,GAE5B,IAAIC,EAEJ,IAAKA,KAAQD,EAAW,CACtB,MAEMp1Q,GAFQ4/B,GAAeC,KAAK04D,EAAK88K,GAAQ98K,EAAI88K,QAAQ1wQ,KAEpC4zF,EAAI88K,GAAQ,CAAC,GAE9B/+P,EAAQ8+P,EAAUC,GAExB,IAAIr9L,EAEJ,GAAI1hE,EACF,IAAK0hE,KAAQ1hE,EAAO,CACbspB,GAAeC,KAAK7/B,EAAMg4E,KAAOh4E,EAAKg4E,GAAQ,IACnD,MAAMj3E,EAAQuV,EAAM0hE,GACpBs9L,GAEEt1Q,EAAKg4E,GACL74E,MAAM+4B,QAAQn3B,GAASA,EAAQA,EAAQ,CAACA,GAAS,GAErD,CAEJ,CACF,CAUA,SAASu0Q,GAAW7gK,EAAU1I,GAC5B,IAAI/2F,GAAS,EAEb,MAAMugQ,EAAS,GAEf,OAASvgQ,EAAQ+2F,EAAKntG,SAEE,UAApBmtG,EAAK/2F,GAAOkhC,IAAkBu+D,EAAW8gK,GAAQrnP,KAAK69E,EAAK/2F,IAG/Dy2B,GAAOgpE,EAAU,EAAG,EAAG8gK,EACzB,CCjEO,MAAMC,GAAaC,GAAW,YAcxBC,GAAoBD,GAAW,cAuB/BE,GAAaF,GAAW,uBAa9B,SAASG,GAAa59L,GAC3B,OAGW,OAATA,IAAkBA,EAAO,IAAe,MAATA,EAEnC,CAaO,MAAM69L,GAAaJ,GAAW,MAoBxBK,GAAgBL,GAAW,cAe3BM,GAAmBN,GAAW,kBAiBpC,SAASO,GAAmBh+L,GACjC,OAAgB,OAATA,GAAiBA,GAAQ,CAClC,CAWO,SAASi+L,GAA0Bj+L,GACxC,OAAgB,OAATA,IAAkBA,EAAO,GAAc,KAATA,EACvC,CAiBO,SAASk+L,GAAcl+L,GAC5B,OAAiB,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,CACvC,CAuBO,MAAMm+L,GAAqBV,GAAW,gBAsBhCW,GAAoBX,GAAW,MAQ5C,SAASA,GAAWx2Q,GAClB,OAUA,SAAe+4E,GACb,OAAgB,OAATA,GAAiBA,GAAQ,GAAK/4E,EAAMuuC,KAAKtM,OAAO0zB,aAAaojB,GACtE,CACF,CCzMO,SAASq+L,GAAarvH,EAASyyE,EAAIluN,EAAMyK,GAC9C,MAAMsgQ,EAAQtgQ,EAAMA,EAAM,EAAIqpC,OAAO8zN,kBACrC,IAAI59O,EAAO,EACX,OAGA,SAAeyiD,GACb,GAAIk+L,GAAcl+L,GAEhB,OADAgvE,EAAQ6kF,MAAMtgO,GACP6gD,EAAO4rB,GAEhB,OAAOyhJ,EAAGzhJ,EACZ,EAGA,SAAS5rB,EAAO4rB,GACd,OAAIk+L,GAAcl+L,IAASziD,IAAS+gP,GAClCtvH,EAAQuvH,QAAQv+L,GACT5rB,IAET46F,EAAQulF,KAAKhhO,GACNkuN,EAAGzhJ,GACZ,CACF,CCtDO,MAAM9zE,GAAU,CACrBsyQ,SAOF,SAA2BxvH,GACzB,MAAMyvH,EAAezvH,EAAQ0vH,QAC3BlsP,KAAK0qN,OAAOogC,WAAWqB,gBASzB,SAAoC3+L,GAClC,GAAa,OAATA,EAEF,YADAgvE,EAAQuvH,QAAQv+L,GAMlB,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACN8pC,GAAarvH,EAASyvH,EAAc,aAC7C,IAGA,SAA0Bz+L,GAExB,OADAgvE,EAAQ6kF,MAAM,aACP+qC,EAAU5+L,EACnB,IAnBA,IAAI68L,EACJ,OAAO4B,EAqBP,SAASG,EAAU5+L,GACjB,MAAMnyE,EAAQmhJ,EAAQ6kF,MAAM,YAAa,CACvC9qI,YAAa,OACb8zK,aAMF,OAJIA,IACFA,EAASt8P,KAAO1S,GAElBgvQ,EAAWhvQ,EACJZ,EAAK+yE,EACd,CAGA,SAAS/yE,EAAK+yE,GACZ,OAAa,OAATA,GACFgvE,EAAQulF,KAAK,aACbvlF,EAAQulF,KAAK,kBACbvlF,EAAQuvH,QAAQv+L,IAGdg+L,GAAmBh+L,IACrBgvE,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,aACNqqC,IAIT5vH,EAAQuvH,QAAQv+L,GACT/yE,EACT,CACF,GC1DO,MAAMnH,GAAW,CACtB04Q,SAYF,SAA4BxvH,GAC1B,MAAM9rH,EAAO1Q,KAEP2+I,EAAQ,GACd,IAEI0tG,EAEAC,EAEAC,EANAC,EAAY,EAOhB,OAAO5iO,EAGP,SAASA,EAAM4jC,GAWb,GAAIg/L,EAAY7tG,EAAMvqK,OAAQ,CAC5B,MAAM8qB,EAAOy/I,EAAM6tG,GAEnB,OADA97O,EAAK+7O,eAAiBvtP,EAAK,GACpBs9H,EAAQ0vH,QACbhtP,EAAK,GAAGwtP,aACRC,EACAC,EAHKpwH,CAILhvE,EACJ,CAGA,OAAOo/L,EAAmBp/L,EAC5B,CAGA,SAASm/L,EAAiBn/L,GAMxB,GALAg/L,IAKI97O,EAAK+7O,eAAeI,WAAY,CAClCn8O,EAAK+7O,eAAeI,gBAAa1yQ,EAC7BkyQ,GACFS,IAKF,MAAMC,EAAmBr8O,EAAKuY,OAAO70C,OACrC,IAEI6qE,EAFA+tM,EAAkBD,EAKtB,KAAOC,KACL,GACsC,SAApCt8O,EAAKuY,OAAO+jO,GAAiB,IACY,cAAzCt8O,EAAKuY,OAAO+jO,GAAiB,GAAGjsQ,KAChC,CACAk+D,EAAQvuC,EAAKuY,OAAO+jO,GAAiB,GAAGx6N,IACxC,KACF,CAEFy6N,EAAeT,GAGf,IAAIhiQ,EAAQuiQ,EACZ,KAAOviQ,EAAQkmB,EAAKuY,OAAO70C,QACzBs8B,EAAKuY,OAAOz+B,GAAO,GAAGgoC,IAAMv4C,OAAOmxB,OAAO,CAAC,EAAG6zC,GAC9Cz0D,IAaF,OATAy2B,GACEvQ,EAAKuY,OACL+jO,EAAkB,EAClB,EACAt8O,EAAKuY,OAAO75B,MAAM29P,IAIpBr8O,EAAKuY,OAAO70C,OAASoW,EACdoiQ,EAAmBp/L,EAC5B,CACA,OAAO5jC,EAAM4jC,EACf,CAGA,SAASo/L,EAAmBp/L,GAM1B,GAAIg/L,IAAc7tG,EAAMvqK,OAAQ,CAI9B,IAAKi4Q,EACH,OAAOa,EAAkB1/L,GAM3B,GAAI6+L,EAAUc,kBAAoBd,EAAUc,iBAAiBC,SAC3D,OAAOC,EAAU7/L,GAQnB98C,EAAK48O,UAAYj0O,QACfgzO,EAAUc,mBAAqBd,EAAUkB,8BAE7C,CAIA,OADA78O,EAAK+7O,eAAiB,CAAC,EAChBjwH,EAAQvvC,MACbugK,GACAC,EACAC,EAHKlxH,CAILhvE,EACJ,CAGA,SAASigM,EAAqBjgM,GAG5B,OAFI6+L,GAAWS,IACfG,EAAeT,GACRU,EAAkB1/L,EAC3B,CAGA,SAASkgM,EAAsBlgM,GAG7B,OAFA98C,EAAKg6M,OAAOvkJ,KAAKz1D,EAAKnxB,MAAMo3G,MAAQ61J,IAAc7tG,EAAMvqK,OACxDm4Q,EAAkB77O,EAAKnxB,MAAMo6B,OACtB0zO,EAAU7/L,EACnB,CAGA,SAAS0/L,EAAkB1/L,GAGzB,OADA98C,EAAK+7O,eAAiB,CAAC,EAChBjwH,EAAQ0vH,QACbsB,GACAG,EACAN,EAHK7wH,CAILhvE,EACJ,CAGA,SAASmgM,EAAkBngM,GAIzB,OAHAg/L,IACA7tG,EAAMj7I,KAAK,CAACgN,EAAKy8O,iBAAkBz8O,EAAK+7O,iBAEjCS,EAAkB1/L,EAC3B,CAGA,SAAS6/L,EAAU7/L,GACjB,OAAa,OAATA,GACE6+L,GAAWS,IACfG,EAAe,QACfzwH,EAAQuvH,QAAQv+L,KAGlB6+L,EAAYA,GAAa37O,EAAKg6M,OAAOkjC,KAAKl9O,EAAKnxB,OAC/Ci9I,EAAQ6kF,MAAM,YAAa,CACzB9qI,YAAa,OACb8zK,SAAUiC,EACV5C,WAAY2C,IAEPwB,EAAargM,GACtB,CAGA,SAASqgM,EAAargM,GACpB,OAAa,OAATA,GACFsgM,EAAatxH,EAAQulF,KAAK,cAAc,GACxCkrC,EAAe,QACfzwH,EAAQuvH,QAAQv+L,IAGdg+L,GAAmBh+L,IACrBgvE,EAAQuvH,QAAQv+L,GAChBsgM,EAAatxH,EAAQulF,KAAK,cAE1ByqC,EAAY,EACZ97O,EAAK48O,eAAYnzQ,EACVyvC,IAET4yG,EAAQuvH,QAAQv+L,GACTqgM,EACT,CAOA,SAASC,EAAazyQ,EAAO0yQ,GAC3B,MAAM3D,EAAS15O,EAAK85O,YAAYnvQ,GAyChC,GAxCI0yQ,GAAK3D,EAAO1mP,KAAK,MACrBroB,EAAMgvQ,SAAWiC,EACbA,IAAYA,EAAWv+P,KAAO1S,GAClCixQ,EAAajxQ,EACbgxQ,EAAU5B,WAAWpvQ,EAAMuuC,OAC3ByiO,EAAUhoM,MAAM+lM,GAmCZ15O,EAAKg6M,OAAOvkJ,KAAK9qF,EAAMuuC,MAAM+sE,MAAO,CACtC,IAAInsG,EAAQ6hQ,EAAUpjO,OAAO70C,OAC7B,KAAOoW,KACL,GAEE6hQ,EAAUpjO,OAAOz+B,GAAO,GAAGo/B,MAAMjQ,OAAS4yO,KAExCF,EAAUpjO,OAAOz+B,GAAO,GAAGgoC,KAE3B65N,EAAUpjO,OAAOz+B,GAAO,GAAGgoC,IAAI7Y,OAAS4yO,GAI1C,OAMJ,MAAMQ,EAAmBr8O,EAAKuY,OAAO70C,OACrC,IAEI45Q,EAEA/uM,EAJA+tM,EAAkBD,EAOtB,KAAOC,KACL,GACsC,SAApCt8O,EAAKuY,OAAO+jO,GAAiB,IACY,cAAzCt8O,EAAKuY,OAAO+jO,GAAiB,GAAGjsQ,KAChC,CACA,GAAIitQ,EAAM,CACR/uM,EAAQvuC,EAAKuY,OAAO+jO,GAAiB,GAAGx6N,IACxC,KACF,CACAw7N,GAAO,CACT,CAMF,IAJAf,EAAeT,GAGfhiQ,EAAQuiQ,EACDviQ,EAAQkmB,EAAKuY,OAAO70C,QACzBs8B,EAAKuY,OAAOz+B,GAAO,GAAGgoC,IAAMv4C,OAAOmxB,OAAO,CAAC,EAAG6zC,GAC9Cz0D,IAIFy2B,GACEvQ,EAAKuY,OACL+jO,EAAkB,EAClB,EACAt8O,EAAKuY,OAAO75B,MAAM29P,IAIpBr8O,EAAKuY,OAAO70C,OAASoW,CACvB,CACF,CAMA,SAASyiQ,EAAeliP,GACtB,IAAIvgB,EAAQm0J,EAAMvqK,OAGlB,KAAOoW,KAAUugB,GAAM,CACrB,MAAMmc,EAAQy3H,EAAMn0J,GACpBkmB,EAAK+7O,eAAiBvlO,EAAM,GAC5BA,EAAM,GAAG66L,KAAK1sM,KAAK3E,EAAM8rH,EAC3B,CACAmiB,EAAMvqK,OAAS22B,CACjB,CACA,SAAS+hP,IACPT,EAAUhoM,MAAM,CAAC,OACjBioM,OAAanyQ,EACbkyQ,OAAYlyQ,EACZu2B,EAAK+7O,eAAeI,gBAAa1yQ,CACnC,CACF,GArVMqzQ,GAAqB,CACzBxB,SA0VF,SAA2BxvH,EAASyyE,EAAIg/C,GAGtC,OAAOpC,GACLrvH,EACAA,EAAQ0vH,QAAQlsP,KAAK0qN,OAAOogC,WAAWx3Q,SAAU27N,EAAIg/C,GACrD,aACAjuP,KAAK0qN,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,qBAAkBgG,EAAY,EAE/E,GCnXO,MAAMi0Q,GAAY,CACvBpC,SAQF,SAA2BxvH,EAASyyE,EAAIg/C,GACtC,OAgBA,SAAezgM,GACb,OAAOk+L,GAAcl+L,GAAQq+L,GAAarvH,EAAS6xH,EAAO,aAA7BxC,CAA2Cr+L,GAAQ6gM,EAAM7gM,EACxF,EAgBA,SAAS6gM,EAAM7gM,GACb,OAAgB,OAATA,GAAiBg+L,GAAmBh+L,GAAQyhJ,EAAGzhJ,GAAQygM,EAAIzgM,EACpE,CACF,EA7CEinD,SAAS,GCIJ,MAAM/6H,GAAU,CACrBsyQ,SAyBF,SAAyBxvH,EAASyyE,GAEhC,IAAIo7C,EACJ,OAYA,SAAoB78L,GAKlB,OAJAgvE,EAAQ6kF,MAAM,WACdgpC,EAAW7tH,EAAQ6kF,MAAM,eAAgB,CACvC9qI,YAAa,YAER+3K,EAAY9gM,EACrB,EAYA,SAAS8gM,EAAY9gM,GACnB,OAAa,OAATA,EACK+gM,EAAW/gM,GAKhBg+L,GAAmBh+L,GACdgvE,EAAQvvC,MAAMuhK,GAAuBC,EAAiBF,EAAtD/xH,CAAkEhvE,IAI3EgvE,EAAQuvH,QAAQv+L,GACT8gM,EACT,CAOA,SAASC,EAAW/gM,GAGlB,OAFAgvE,EAAQulF,KAAK,gBACbvlF,EAAQulF,KAAK,WACN9S,EAAGzhJ,EACZ,CAOA,SAASihM,EAAgBjhM,GAQvB,OAPAgvE,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,gBACbsoC,EAASt8P,KAAOyuI,EAAQ6kF,MAAM,eAAgB,CAC5C9qI,YAAa,UACb8zK,aAEFA,EAAWA,EAASt8P,KACbugQ,CACT,CACF,EAnGEtqP,QAeF,SAAwBilB,GAEtB,OADAigO,GAAYjgO,GACLA,CACT,GAdMulO,GAAwB,CAC5BxC,SAoGF,SAA8BxvH,EAASyyE,EAAIg/C,GACzC,MAAMv9O,EAAO1Q,KACb,OAOA,SAAwBwtD,GAKtB,OAJAgvE,EAAQulF,KAAK,gBACbvlF,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACN8pC,GAAarvH,EAASkyH,EAAU,aACzC,EAOA,SAASA,EAASlhM,GAChB,GAAa,OAATA,GAAiBg+L,GAAmBh+L,GACtC,OAAOygM,EAAIzgM,GAKb,MAAM0+I,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAC9C,OAAKs8B,EAAKg6M,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,iBAAmB+3N,GAAyB,eAAjBA,EAAK,GAAGnrN,MAAyBmrN,EAAK,GAAGyiD,eAAeziD,EAAK,IAAI,GAAM93N,QAAU,EACrJ66N,EAAGzhJ,GAELgvE,EAAQ8wH,UAAU58O,EAAKg6M,OAAOogC,WAAW8C,KAAMK,EAAKh/C,EAApDzyE,CAAwDhvE,EACjE,CACF,EAtIEinD,SAAS,GCbJ,MAAMm5I,GAAO,CAClB5B,SAOF,SAAwBxvH,GACtB,MAAM9rH,EAAO1Q,KACPwoP,EAAUhsH,EAAQ0vH,QAEtBkC,IAoBF,SAAuB5gM,GACrB,GAAa,OAATA,EAEF,YADAgvE,EAAQuvH,QAAQv+L,GAOlB,OAJAgvE,EAAQ6kF,MAAM,mBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,mBACbrxM,EAAKy8O,sBAAmBhzQ,EACjBquQ,CACT,GA3BEhsH,EAAQ0vH,QACNlsP,KAAK0qN,OAAOogC,WAAW8D,YACvBC,EACAhD,GACErvH,EACAA,EAAQ0vH,QACNlsP,KAAK0qN,OAAOogC,WAAW8C,KACvBiB,EACAryH,EAAQ0vH,QAAQxyQ,GAASm1Q,IAE3B,gBAIN,OAAOrG,EAgBP,SAASqG,EAAerhM,GACtB,GAAa,OAATA,EAQJ,OAJAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACbrxM,EAAKy8O,sBAAmBhzQ,EACjBquQ,EAPLhsH,EAAQuvH,QAAQv+L,EAQpB,CACF,GC1DO,MAAMshM,GAAW,CACtBC,WAAYC,MAEDrjP,GAASsjP,GAAkB,UAC3BxtP,GAAOwtP,GAAkB,QAMtC,SAASA,GAAkBvvL,GACzB,MAAO,CACLssL,SAUF,SAAwBxvH,GACtB,MAAM9rH,EAAO1Q,KACP8qP,EAAa9qP,KAAK0qN,OAAOogC,WAAWprL,GACpCj+D,EAAO+6H,EAAQ0vH,QAAQpB,EAAYlhO,EAAOslO,GAChD,OAAOtlO,EAGP,SAASA,EAAM4jC,GACb,OAAO2hM,EAAQ3hM,GAAQ/rD,EAAK+rD,GAAQ0hM,EAAQ1hM,EAC9C,CAGA,SAAS0hM,EAAQ1hM,GACf,GAAa,OAATA,EAMJ,OAFAgvE,EAAQ6kF,MAAM,QACd7kF,EAAQuvH,QAAQv+L,GACT/yE,EALL+hJ,EAAQuvH,QAAQv+L,EAMpB,CAGA,SAAS/yE,EAAK+yE,GACZ,OAAI2hM,EAAQ3hM,IACVgvE,EAAQulF,KAAK,QACNtgN,EAAK+rD,KAIdgvE,EAAQuvH,QAAQv+L,GACT/yE,EACT,CAMA,SAAS00Q,EAAQ3hM,GACf,GAAa,OAATA,EACF,OAAO,EAET,MAAM+zB,EAAOupK,EAAWt9L,GACxB,IAAIhjE,GAAS,EACb,GAAI+2F,EAGF,OAAS/2F,EAAQ+2F,EAAKntG,QAAQ,CAC5B,MAAM8qB,EAAOqiF,EAAK/2F,GAClB,IAAK0U,EAAKmrP,UAAYnrP,EAAKmrP,SAASh1O,KAAK3E,EAAMA,EAAK25O,UAClD,OAAO,CAEX,CAEF,OAAO,CACT,CACF,EAjEE0E,WAAYC,GACA,SAAVtvL,EAAmB0vL,QAAyBj1Q,GAiElD,CAMA,SAAS60Q,GAAeK,GACtB,OAGA,SAAwBpmO,EAAQrkC,GAC9B,IAEIy8N,EAFA72N,GAAS,EAMb,OAASA,GAASy+B,EAAO70C,aACT+F,IAAVknO,EACEp4L,EAAOz+B,IAAoC,SAA1By+B,EAAOz+B,GAAO,GAAGzJ,OACpCsgO,EAAQ72N,EACRA,KAEQy+B,EAAOz+B,IAAoC,SAA1By+B,EAAOz+B,GAAO,GAAGzJ,OAExCyJ,IAAU62N,EAAQ,IACpBp4L,EAAOo4L,GAAO,GAAG7uL,IAAMvJ,EAAOz+B,EAAQ,GAAG,GAAGgoC,IAC5CvJ,EAAOhI,OAAOogM,EAAQ,EAAG72N,EAAQ62N,EAAQ,GACzC72N,EAAQ62N,EAAQ,GAElBA,OAAQlnO,GAGZ,OAAOk1Q,EAAgBA,EAAcpmO,EAAQrkC,GAAWqkC,CAC1D,CACF,CAaA,SAASmmO,GAAuBnmO,EAAQrkC,GACtC,IAAIklQ,EAAa,EAEjB,OAASA,GAAc7gO,EAAO70C,QAC5B,IACG01Q,IAAe7gO,EAAO70C,QACU,eAA/B60C,EAAO6gO,GAAY,GAAG/oQ,OACW,SAAnCkoC,EAAO6gO,EAAa,GAAG,GAAG/oQ,KAC1B,CACA,MAAMtG,EAAOwuC,EAAO6gO,EAAa,GAAG,GAC9BwF,EAAS1qQ,EAAQ4lQ,YAAY/vQ,GACnC,IAII80Q,EAJA/kQ,EAAQ8kQ,EAAOl7Q,OACfo7Q,GAAe,EACfzkP,EAAO,EAGX,KAAOvgB,KAAS,CACd,MAAMilQ,EAAQH,EAAO9kQ,GACrB,GAAqB,kBAAVilQ,EAAoB,CAE7B,IADAD,EAAcC,EAAMr7Q,OACyB,KAAtCq7Q,EAAMplN,WAAWmlN,EAAc,IACpCzkP,IACAykP,IAEF,GAAIA,EAAa,MACjBA,GAAe,CACjB,MAEK,IAAe,IAAXC,EACPF,GAAO,EACPxkP,SACK,IAAe,IAAX0kP,EAEJ,CAELjlQ,IACA,KACF,CACF,CACA,GAAIugB,EAAM,CACR,MAAM1vB,EAAQ,CACZ0F,KACE+oQ,IAAe7gO,EAAO70C,QAAUm7Q,GAAQxkP,EAAO,EAC3C,aACA,oBACN6e,MAAO,CACL+sE,KAAMl8G,EAAK+3C,IAAImkE,KACfF,OAAQh8G,EAAK+3C,IAAIikE,OAAS1rF,EAC1B4O,OAAQl/B,EAAK+3C,IAAI7Y,OAAS5O,EAC1BuvB,OAAQ7/C,EAAKmvC,MAAM0Q,OAAS9vC,EAC5BklQ,aAAcllQ,EACVglQ,EACA/0Q,EAAKmvC,MAAM8lO,aAAeF,GAEhCh9N,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG3wB,EAAK+3C,MAE9B/3C,EAAK+3C,IAAMv4C,OAAOmxB,OAAO,CAAC,EAAG/vB,EAAMuuC,OAC/BnvC,EAAKmvC,MAAMjQ,SAAWl/B,EAAK+3C,IAAI7Y,OACjC1/B,OAAOmxB,OAAO3wB,EAAMY,IAEpB4tC,EAAOhI,OACL6oO,EACA,EACA,CAAC,QAASzuQ,EAAOuJ,GACjB,CAAC,OAAQvJ,EAAOuJ,IAElBklQ,GAAc,EAElB,CACAA,GACF,CAEF,OAAO7gO,CACT,CC/LO,SAAS8lO,GAAWjE,EAAY7hO,EAAQrkC,GAE7C,MAAMwnL,EAAS,GACf,IAAI5hL,GAAS,EAEb,OAASA,EAAQsgQ,EAAW12Q,QAAQ,CAClC,MAAM4vB,EAAU8mP,EAAWtgQ,GAAOukQ,WAE9B/qP,IAAYooK,EAAOj4L,SAAS6vB,KAC9BilB,EAASjlB,EAAQilB,EAAQrkC,GACzBwnL,EAAO1oK,KAAKM,GAEhB,CAEA,OAAOilB,CACT,CCcO,SAAS0mO,GAAgBjlC,EAAQ/6I,EAAY/6F,GAElD,IAAIqqE,EAAQhlE,OAAOmxB,OACjBx2B,EACIqF,OAAOmxB,OAAO,CAAC,EAAGx2B,GAClB,CACE+hH,KAAM,EACNF,OAAQ,EACR98E,OAAQ,GAEd,CACE2gB,OAAQ,EACRo1N,cAAe,IAInB,MAAME,EAAc,CAAC,EAEfC,EAAuB,GAE7B,IAAIP,EAAS,GAET3wG,EAAQ,GAERmxG,GAAW,EAOf,MAAMtzH,EAAU,CACduvH,QAkJF,SAAiBv+L,GACXg+L,GAAmBh+L,IACrBvO,EAAM03C,OACN13C,EAAMw3C,OAAS,EACfx3C,EAAMtlC,SAAoB,IAAV6zC,EAAc,EAAI,EAClCuiM,MACmB,IAAVviM,IACTvO,EAAMw3C,SACNx3C,EAAMtlC,UAIJslC,EAAMywM,aAAe,EACvBzwM,EAAM3kB,UAEN2kB,EAAMywM,eAKFzwM,EAAMywM,eAAiBJ,EAAOrwM,EAAM3kB,QAAQlmD,SAC9C6qE,EAAMywM,cAAgB,EACtBzwM,EAAM3kB,WAKV11C,EAAQylQ,SAAW78L,EAGnBsiM,GAAW,CACb,EAhLEzuC,MAmLF,SAAetgO,EAAMivQ,GAGnB,MAAM30Q,EAAQ20Q,GAAU,CAAC,EAKzB,OAJA30Q,EAAM0F,KAAOA,EACb1F,EAAMuuC,MAAQrqC,IACdqF,EAAQqkC,OAAOvlB,KAAK,CAAC,QAASroB,EAAOuJ,IACrC+5J,EAAMj7I,KAAKroB,GACJA,CACT,EA3LE0mO,KA8LF,SAAchhO,GACZ,MAAM1F,EAAQsjK,EAAMvzG,MAGpB,OAFA/vD,EAAMm3C,IAAMjzC,IACZqF,EAAQqkC,OAAOvlB,KAAK,CAAC,OAAQroB,EAAOuJ,IAC7BvJ,CACT,EAlME6wQ,QAAS+D,GAyMX,SAA+B9sE,EAAWyjD,GACxCspB,EAAU/sE,EAAWyjD,EAAKhyP,KAC5B,IA1MEq4G,MAAOgjK,EAAiBE,GACxB7C,UAAW2C,EAAiBE,EAAmB,CAC7C7C,WAAW,KAST1oQ,EAAU,CACdylQ,SAAU,KACV78L,KAAM,KACNi/L,eAAgB,CAAC,EACjBxjO,OAAQ,GACRyhM,SACA8/B,cACAmE,eA6CF,SAAwBtzQ,EAAO+0Q,GAC7B,OAsYJ,SAAyBd,EAAQc,GAC/B,IAAI5lQ,GAAS,EAEb,MAAM2iB,EAAS,GAEf,IAAIkjP,EACJ,OAAS7lQ,EAAQ8kQ,EAAOl7Q,QAAQ,CAC9B,MAAMq7Q,EAAQH,EAAO9kQ,GAErB,IAAIjU,EACJ,GAAqB,kBAAVk5Q,EACTl5Q,EAAQk5Q,OAER,OAAQA,GACN,KAAM,EACJl5Q,EAAQ,KACR,MAEF,KAAM,EACJA,EAAQ,KACR,MAEF,KAAM,EACJA,EAAQ,OACR,MAEF,KAAM,EACJA,EAAQ65Q,EAAa,IAAM,KAC3B,MAEF,KAAM,EACJ,IAAKA,GAAcC,EAAO,SAC1B95Q,EAAQ,IACR,MAEF,QAEEA,EAAQmgC,OAAO0zB,aAAaqlN,GAGlCY,GAAmB,IAAXZ,EACRtiP,EAAOzJ,KAAKntB,EACd,CACA,OAAO42B,EAAOpK,KAAK,GACrB,CAlbWutP,CAAgB9F,EAAYnvQ,GAAQ+0Q,EAC7C,EA9CE7wQ,MACAkrQ,WAkEF,SAAoBl0Q,GAClBq5Q,EAAYr5Q,EAAMogH,MAAQpgH,EAAMkgH,OAChCs5J,GACF,EApEE1rM,MAsBF,SAAej1D,GAKb,GAJAkgQ,EAAS5rP,GAAK4rP,EAAQlgQ,GACtBmhQ,IAGkC,OAA9BjB,EAAOA,EAAOl7Q,OAAS,GACzB,MAAO,GAMT,OAJA87Q,EAAUvgL,EAAY,GAGtB/qF,EAAQqkC,OAAS8lO,GAAWc,EAAsBjrQ,EAAQqkC,OAAQrkC,GAC3DA,EAAQqkC,MACjB,GA3BA,IAOIunO,EAPA9nQ,EAAQinF,EAAWq8K,SAAS32O,KAAKzwB,EAAS43I,GAW9C,OAHI7sD,EAAWo/K,YACbc,EAAqBnsP,KAAKisE,GAErB/qF,EA4BP,SAAS4lQ,EAAYnvQ,GACnB,OA8VJ,SAAqBi0Q,EAAQj0Q,GAC3B,MAAMikF,EAAajkF,EAAMuuC,MAAM0Q,OACzBm2N,EAAmBp1Q,EAAMuuC,MAAM8lO,aAC/BhyF,EAAWriL,EAAMm3C,IAAI8H,OACrBo2N,EAAiBr1Q,EAAMm3C,IAAIk9N,aAEjC,IAAI/2F,EACJ,GAAIr5F,IAAeo+F,EAEjB/E,EAAO,CAAC22F,EAAOhwL,GAAYlwE,MAAMqhQ,EAAkBC,QAC9C,CAEL,GADA/3F,EAAO22F,EAAOlgQ,MAAMkwE,EAAYo+F,GAC5B+yF,GAAoB,EAAG,CACzB,MAAM52B,EAAOlhE,EAAK,GACE,kBAATkhE,EACTlhE,EAAK,GAAKkhE,EAAKzqO,MAAMqhQ,GAErB93F,EAAKjtH,OAET,CACIglN,EAAiB,GAEnB/3F,EAAKj1J,KAAK4rP,EAAO5xF,GAAUtuK,MAAM,EAAGshQ,GAExC,CACA,OAAO/3F,CACT,CAxXWg4F,CAAYrB,EAAQj0Q,EAC7B,CAGA,SAASkE,IAEP,MAAM,KAACo3G,EAAI,OAAEF,EAAM,OAAE98E,EAAM,OAAE2gB,EAAM,aAAEo1N,GAAgBzwM,EACrD,MAAO,CACL03C,OACAF,SACA98E,SACA2gB,SACAo1N,eAEJ,CAsBA,SAASa,IAEP,IAAIK,EACJ,KAAO3xM,EAAM3kB,OAASg1N,EAAOl7Q,QAAQ,CACnC,MAAMq7Q,EAAQH,EAAOrwM,EAAM3kB,QAG3B,GAAqB,kBAAVm1N,EAKT,IAJAmB,EAAa3xM,EAAM3kB,OACf2kB,EAAMywM,aAAe,IACvBzwM,EAAMywM,aAAe,GAGrBzwM,EAAM3kB,SAAWs2N,GACjB3xM,EAAMywM,aAAeD,EAAMr7Q,QAE3B6mF,EAAGw0L,EAAMplN,WAAW4U,EAAMywM,oBAG5Bz0L,EAAGw0L,EAEP,CACF,CAQA,SAASx0L,EAAGzN,GACVsiM,OAAW31Q,EACXq2Q,EAAehjM,EACf9kE,EAAQA,EAAM8kE,EAChB,CAsEA,SAAS2iM,EAAkBphP,EAAG63N,GAC5BA,EAAKp6L,SACP,CAQA,SAASyjN,EAAiBY,EAAUb,GAClC,OAWA,SAAclF,EAAYgG,EAAaC,GAErC,IAAIC,EAEAC,EAEA9D,EAEAvmB,EACJ,OAAOjyP,MAAM+4B,QAAQo9O,GACjBoG,EAAuBpG,GACvB,aAAcA,EAEdoG,EAAuB,CAACpG,IAS5B,SAA+BttQ,GAC7B,OAAOosC,EAGP,SAASA,EAAM4jC,GACb,MAAM2pE,EAAe,OAAT3pE,GAAiBhwE,EAAIgwE,GAC3BugB,EAAe,OAATvgB,GAAiBhwE,EAAI2wQ,KAOjC,OAAO+C,EANM,IAGPv8Q,MAAM+4B,QAAQypH,GAAOA,EAAMA,EAAM,CAACA,GAAO,MACzCxiJ,MAAM+4B,QAAQqgE,GAAOA,EAAMA,EAAM,CAACA,GAAO,IAExCmjL,CAA6B1jM,EACtC,CACF,CAvBI2jM,CAAsBrG,GA+B1B,SAASoG,EAAuB3vK,GAG9B,OAFAyvK,EAAmBzvK,EACnB0vK,EAAiB,EACG,IAAhB1vK,EAAKntG,OACA28Q,EAEFK,EAAgB7vK,EAAK0vK,GAC9B,CAQA,SAASG,EAAgBjuE,GACvB,OAGA,SAAe31H,GAKbo5K,EAwER,WACE,MAAM7wN,EAAax2B,IACb8xQ,EAAgBzsQ,EAAQylQ,SACxBiH,EAAwB1sQ,EAAQuoQ,iBAChCoE,EAAmB3sQ,EAAQqkC,OAAO70C,OAClCo9Q,EAAa78Q,MAAMC,KAAK+pK,GAC9B,MAAO,CACLnyG,UACA53D,KAAM28Q,GAQR,SAAS/kN,IACPyS,EAAQlpC,EACRnxB,EAAQylQ,SAAWgH,EACnBzsQ,EAAQuoQ,iBAAmBmE,EAC3B1sQ,EAAQqkC,OAAO70C,OAASm9Q,EACxB5yG,EAAQ6yG,EACRzB,GACF,CACF,CAhGe0B,GACPtE,EAAmBhqE,EACdA,EAAU1uE,UACb7vH,EAAQuoQ,iBAAmBhqE,GAK7B,GACEA,EAAU9lM,MACVuH,EAAQ8lO,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAASgvM,EAAU9lM,MAE1D,OAAO4wQ,EAAIzgM,GAEb,OAAO21H,EAAU6oE,SAAS32O,KAIxB26O,EAAS/1Q,OAAOmxB,OAAOnxB,OAAO28B,OAAOhyB,GAAUorQ,GAAUprQ,EACzD43I,EACAyyE,EACAg/C,EAPK9qE,CAQL31H,EACJ,CACF,CAGA,SAASyhJ,EAAGzhJ,GAGV,OAFAsiM,GAAW,EACXe,EAAS1D,EAAkBvmB,GACpBkqB,CACT,CAGA,SAAS7C,EAAIzgM,GAGX,OAFAsiM,GAAW,EACXlpB,EAAKp6L,YACCykN,EAAiBD,EAAiB58Q,OAC/Bg9Q,EAAgBJ,EAAiBC,IAEnCF,CACT,CACF,CACF,CAOA,SAASb,EAAU/sE,EAAWvuM,GACxBuuM,EAAU4rE,aAAec,EAAqB17Q,SAASgvM,IACzD0sE,EAAqBnsP,KAAKy/K,GAExBA,EAAUn/K,SACZid,GACEr8B,EAAQqkC,OACRr0C,EACAgQ,EAAQqkC,OAAO70C,OAASQ,EACxBuuM,EAAUn/K,QAAQpf,EAAQqkC,OAAO75B,MAAMxa,GAAOgQ,IAG9Cu+L,EAAUpjH,YACZn7E,EAAQqkC,OAASk6J,EAAUpjH,UAAUn7E,EAAQqkC,OAAQrkC,GAEzD,CAuCA,SAASmrQ,IACH9wM,EAAM03C,QAAQi5J,GAAe3wM,EAAMw3C,OAAS,IAC9Cx3C,EAAMw3C,OAASm5J,EAAY3wM,EAAM03C,MACjC13C,EAAMtlC,QAAUi2O,EAAY3wM,EAAM03C,MAAQ,EAE9C,CACF,CCleO,MAAM+6J,GAAgB,CAC3Br0Q,KAAM,gBACN2uQ,SAOF,SAA+BxvH,EAASyyE,EAAIg/C,GAC1C,IAEIlhJ,EAFAhiG,EAAO,EAGX,OAYA,SAAeyiD,GAGb,OAFAgvE,EAAQ6kF,MAAM,iBAehB,SAAgB7zJ,GAEd,OADAu/C,EAASv/C,EACF2hM,EAAQ3hM,EACjB,CAhBSu9L,CAAOv9L,EAChB,EA2BA,SAAS2hM,EAAQ3hM,GACf,OAAIA,IAASu/C,GACXyvB,EAAQ6kF,MAAM,yBACP9kE,EAAS/uF,IAEdziD,GAAQ,IAAe,OAATyiD,GAAiBg+L,GAAmBh+L,KACpDgvE,EAAQulF,KAAK,iBACN9S,EAAGzhJ,IAELygM,EAAIzgM,EACb,CAYA,SAAS+uF,EAAS/uF,GAChB,OAAIA,IAASu/C,GACXyvB,EAAQuvH,QAAQv+L,GAChBziD,IACOwxI,IAET/f,EAAQulF,KAAK,yBACN2pC,GAAcl+L,GAAQq+L,GAAarvH,EAAS2yH,EAAS,aAA/BtD,CAA6Cr+L,GAAQ2hM,EAAQ3hM,GAC5F,CACF,GClFO,MAAM+zB,GAAO,CAClBlkG,KAAM,OACN2uQ,SA0BF,SAA2BxvH,EAASyyE,EAAIg/C,GACtC,MAAMv9O,EAAO1Q,KACPksM,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAC9C,IAAIu9Q,EAAczlD,GAAyB,eAAjBA,EAAK,GAAGnrN,KAAwBmrN,EAAK,GAAGyiD,eAAeziD,EAAK,IAAI,GAAM93N,OAAS,EACrG22B,EAAO,EACX,OAGA,SAAeyiD,GACb,MAAMkhK,EAAOh+M,EAAK+7O,eAAe1rQ,OAAkB,KAATysE,GAAwB,KAATA,GAAwB,KAATA,EAAc,gBAAkB,eACxG,GAAa,kBAATkhK,GAA4Bh+M,EAAK+7O,eAAe1/I,QAAUv/C,IAAS98C,EAAK+7O,eAAe1/I,OAASs+I,GAAW79L,GAAO,CAOpH,GANK98C,EAAK+7O,eAAe1rQ,OACvB2vB,EAAK+7O,eAAe1rQ,KAAO2tO,EAC3BlyF,EAAQ6kF,MAAMqN,EAAM,CAClBm7B,YAAY,KAGH,kBAATn7B,EAEF,OADAlyF,EAAQ6kF,MAAM,kBACE,KAAT7zJ,GAAwB,KAATA,EAAcgvE,EAAQvvC,MAAMykK,GAAezD,EAAK2D,EAAlCp1H,CAA4ChvE,GAAQokM,EAASpkM,GAEnG,IAAK98C,EAAK48O,WAAsB,KAAT9/L,EAGrB,OAFAgvE,EAAQ6kF,MAAM,kBACd7kF,EAAQ6kF,MAAM,iBACPwwC,EAAOrkM,EAElB,CACA,OAAOygM,EAAIzgM,EACb,EAGA,SAASqkM,EAAOrkM,GACd,OAAI69L,GAAW79L,MAAWziD,EAAO,IAC/ByxH,EAAQuvH,QAAQv+L,GACTqkM,KAEHnhP,EAAK48O,WAAaviP,EAAO,KAAO2F,EAAK+7O,eAAe1/I,OAASv/C,IAAS98C,EAAK+7O,eAAe1/I,OAAkB,KAATv/C,GAAwB,KAATA,IACtHgvE,EAAQulF,KAAK,iBACN6vC,EAASpkM,IAEXygM,EAAIzgM,EACb,CAKA,SAASokM,EAASpkM,GAKhB,OAJAgvE,EAAQ6kF,MAAM,kBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,kBACbrxM,EAAK+7O,eAAe1/I,OAASr8F,EAAK+7O,eAAe1/I,QAAUv/C,EACpDgvE,EAAQvvC,MAAMmhK,GAErB19O,EAAK48O,UAAYW,EAAM6D,EAASt1H,EAAQ0vH,QAAQ6F,GAAmCC,EAAaC,GAClG,CAGA,SAASH,EAAQtkM,GAGf,OAFA98C,EAAK+7O,eAAeyF,kBAAmB,EACvCP,IACOK,EAAYxkM,EACrB,CAGA,SAASykM,EAAYzkM,GACnB,OAAIk+L,GAAcl+L,IAChBgvE,EAAQ6kF,MAAM,4BACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,4BACNiwC,GAEF/D,EAAIzgM,EACb,CAGA,SAASwkM,EAAYxkM,GAEnB,OADA98C,EAAK+7O,eAAe1hP,KAAO4mP,EAAcjhP,EAAKi+O,eAAenyH,EAAQulF,KAAK,mBAAmB,GAAM3tO,OAC5F66N,EAAGzhJ,EACZ,CACF,EAxGEk/L,aAAc,CACZV,SA6GJ,SAAkCxvH,EAASyyE,EAAIg/C,GAC7C,MAAMv9O,EAAO1Q,KAEb,OADA0Q,EAAK+7O,eAAeI,gBAAa1yQ,EAC1BqiJ,EAAQvvC,MAAMmhK,GAAW0D,EAASK,GAGzC,SAASL,EAAQtkM,GAKf,OAJA98C,EAAK+7O,eAAe2F,kBAAoB1hP,EAAK+7O,eAAe2F,mBAAqB1hP,EAAK+7O,eAAeyF,iBAI9FrG,GAAarvH,EAASyyE,EAAI,iBAAkBv+L,EAAK+7O,eAAe1hP,KAAO,EAAvE8gP,CAA0Er+L,EACnF,CAGA,SAAS2kM,EAAS3kM,GAChB,OAAI98C,EAAK+7O,eAAe2F,oBAAsB1G,GAAcl+L,IAC1D98C,EAAK+7O,eAAe2F,uBAAoBj4Q,EACxCu2B,EAAK+7O,eAAeyF,sBAAmB/3Q,EAChCk4Q,EAAiB7kM,KAE1B98C,EAAK+7O,eAAe2F,uBAAoBj4Q,EACxCu2B,EAAK+7O,eAAeyF,sBAAmB/3Q,EAChCqiJ,EAAQ0vH,QAAQoG,GAAiBrjD,EAAIojD,EAArC71H,CAAuDhvE,GAChE,CAGA,SAAS6kM,EAAiB7kM,GAOxB,OALA98C,EAAK+7O,eAAeI,YAAa,EAEjCn8O,EAAK48O,eAAYnzQ,EAGV0xQ,GAAarvH,EAASA,EAAQ0vH,QAAQ3qK,GAAM0tH,EAAIg/C,GAAM,aAAcv9O,EAAKg6M,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,qBAAkBgG,EAAY,EAA/I0xQ,CAAkJr+L,EAC3J,CACF,GA/IEu0J,KAoKF,SAAyBvlF,GACvBA,EAAQulF,KAAK/hN,KAAKysP,eAAe1rQ,KACnC,GAlKMgxQ,GAAoC,CACxC/F,SAuKF,SAA0CxvH,EAASyyE,EAAIg/C,GACrD,MAAMv9O,EAAO1Q,KAIb,OAAO6rP,GAAarvH,GAGpB,SAAqBhvE,GACnB,MAAM0+I,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAC9C,OAAQs3Q,GAAcl+L,IAAS0+I,GAAyB,6BAAjBA,EAAK,GAAGnrN,KAAsCkuN,EAAGzhJ,GAAQygM,EAAIzgM,EACtG,GAN0C,2BAA4B98C,EAAKg6M,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,qBAAkBgG,EAAY,EAOnJ,EAlLEs6H,SAAS,GAIL69I,GAAkB,CACtBtG,SA0IF,SAAwBxvH,EAASyyE,EAAIg/C,GACnC,MAAMv9O,EAAO1Q,KACb,OAAO6rP,GAAarvH,GAGpB,SAAqBhvE,GACnB,MAAM0+I,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAC9C,OAAO83N,GAAyB,mBAAjBA,EAAK,GAAGnrN,MAA6BmrN,EAAK,GAAGyiD,eAAeziD,EAAK,IAAI,GAAM93N,SAAWs8B,EAAK+7O,eAAe1hP,KAAOkkM,EAAGzhJ,GAAQygM,EAAIzgM,EACjJ,GAN0C,iBAAkB98C,EAAK+7O,eAAe1hP,KAAO,EAOzF,EAlJE0pG,SAAS,GCvBJ,MAAM89I,GAAa,CACxBl1Q,KAAM,aACN2uQ,SAWF,SAAiCxvH,EAASyyE,EAAIg/C,GAC5C,MAAMv9O,EAAO1Q,KACb,OAYA,SAAewtD,GACb,GAAa,KAATA,EAAa,CACf,MAAM9kE,EAAQgoB,EAAK+7O,eAWnB,OAVK/jQ,EAAM07D,OACTo4E,EAAQ6kF,MAAM,aAAc,CAC1BwoC,YAAY,IAEdnhQ,EAAM07D,MAAO,GAEfo4E,EAAQ6kF,MAAM,oBACd7kF,EAAQ6kF,MAAM,oBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,oBACNssC,CACT,CACA,OAAOJ,EAAIzgM,EACb,EAYA,SAAS6gM,EAAM7gM,GACb,OAAIk+L,GAAcl+L,IAChBgvE,EAAQ6kF,MAAM,8BACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,8BACbvlF,EAAQulF,KAAK,oBACN9S,IAETzyE,EAAQulF,KAAK,oBACN9S,EAAGzhJ,GACZ,CACF,EA/DEk/L,aAAc,CACZV,SA4EJ,SAAwCxvH,EAASyyE,EAAIg/C,GACnD,MAAMv9O,EAAO1Q,KACb,OAeA,SAAmBwtD,GACjB,GAAIk+L,GAAcl+L,GAGhB,OAAOq+L,GAAarvH,EAASg2H,EAAY,aAAc9hP,EAAKg6M,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,qBAAkBgG,EAAY,EAA3H0xQ,CAA8Hr+L,GAEvI,OAAOglM,EAAWhlM,EACpB,EAeA,SAASglM,EAAWhlM,GAClB,OAAOgvE,EAAQ0vH,QAAQqG,GAAYtjD,EAAIg/C,EAAhCzxH,CAAqChvE,EAC9C,CACF,GApHEu0J,KAuHF,SAAcvlF,GACZA,EAAQulF,KAAK,aACf,GC1FO,SAAS0wC,GACdj2H,EACAyyE,EACAg/C,EACAltQ,EACA2xQ,EACAC,EACAC,EACAC,EACArnQ,GAEA,MAAMsgQ,EAAQtgQ,GAAOqpC,OAAO8zN,kBAC5B,IAAImK,EAAU,EACd,OAcA,SAAetlM,GACb,GAAa,KAATA,EAMF,OALAgvE,EAAQ6kF,MAAMtgO,GACdy7I,EAAQ6kF,MAAMqxC,GACdl2H,EAAQ6kF,MAAMsxC,GACdn2H,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK4wC,GACNI,EAIT,GAAa,OAATvlM,GAA0B,KAATA,GAAwB,KAATA,GAAe49L,GAAa59L,GAC9D,OAAOygM,EAAIzgM,GAQb,OANAgvE,EAAQ6kF,MAAMtgO,GACdy7I,EAAQ6kF,MAAMuxC,GACdp2H,EAAQ6kF,MAAMwxC,GACdr2H,EAAQ6kF,MAAM,cAAe,CAC3B9qI,YAAa,WAERy8K,EAAIxlM,EACb,EAYA,SAASulM,EAAevlM,GACtB,OAAa,KAATA,GACFgvE,EAAQ6kF,MAAMsxC,GACdn2H,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK4wC,GACbn2H,EAAQulF,KAAK2wC,GACbl2H,EAAQulF,KAAKhhO,GACNkuN,IAETzyE,EAAQ6kF,MAAMwxC,GACdr2H,EAAQ6kF,MAAM,cAAe,CAC3B9qI,YAAa,WAER08K,EAASzlM,GAClB,CAYA,SAASylM,EAASzlM,GAChB,OAAa,KAATA,GACFgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK8wC,GACNE,EAAevlM,IAEX,OAATA,GAA0B,KAATA,GAAeg+L,GAAmBh+L,GAC9CygM,EAAIzgM,IAEbgvE,EAAQuvH,QAAQv+L,GACA,KAATA,EAAc0lM,EAAiBD,EACxC,CAYA,SAASC,EAAe1lM,GACtB,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAChCgvE,EAAQuvH,QAAQv+L,GACTylM,GAEFA,EAASzlM,EAClB,CAYA,SAASwlM,EAAIxlM,GACX,OACGslM,GACS,OAATtlM,GAA0B,KAATA,IAAei+L,GAA0Bj+L,GAQzDslM,EAAUhH,GAAkB,KAATt+L,GACrBgvE,EAAQuvH,QAAQv+L,GAChBslM,IACOE,GAEI,KAATxlM,GACFgvE,EAAQuvH,QAAQv+L,GAChBslM,IACOE,GAMI,OAATxlM,GAA0B,KAATA,GAAwB,KAATA,GAAe49L,GAAa59L,GACvDygM,EAAIzgM,IAEbgvE,EAAQuvH,QAAQv+L,GACA,KAATA,EAAc2lM,EAAYH,IAxB/Bx2H,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK8wC,GACbr2H,EAAQulF,KAAK6wC,GACbp2H,EAAQulF,KAAKhhO,GACNkuN,EAAGzhJ,GAqBd,CAYA,SAAS2lM,EAAU3lM,GACjB,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAChCgvE,EAAQuvH,QAAQv+L,GACTwlM,GAEFA,EAAIxlM,EACb,CACF,CCzLO,SAAS4lM,GAAa52H,EAASyyE,EAAIg/C,EAAKltQ,EAAMgmD,EAAY8rN,GAC/D,MAAMniP,EAAO1Q,KACb,IAEIguP,EAFAjjP,EAAO,EAGX,OAYA,SAAeyiD,GAMb,OALAgvE,EAAQ6kF,MAAMtgO,GACdy7I,EAAQ6kF,MAAMt6K,GACdy1F,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAKh7K,GACby1F,EAAQ6kF,MAAMwxC,GACP1D,CACT,EAYA,SAASA,EAAQ3hM,GACf,OACEziD,EAAO,KACE,OAATyiD,GACS,KAATA,GACU,KAATA,IAAgBwgM,GAMP,KAATxgM,IACEziD,GACD,2BAA4B2F,EAAKg6M,OAAOogC,WAEnCmD,EAAIzgM,GAEA,KAATA,GACFgvE,EAAQulF,KAAK8wC,GACbr2H,EAAQ6kF,MAAMt6K,GACdy1F,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAKh7K,GACby1F,EAAQulF,KAAKhhO,GACNkuN,GAILu8C,GAAmBh+L,IACrBgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNotC,IAET3yH,EAAQ6kF,MAAM,cAAe,CAC3B9qI,YAAa,WAER88K,EAAY7lM,GACrB,CAYA,SAAS6lM,EAAY7lM,GACnB,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACAg+L,GAAmBh+L,IACnBziD,IAAS,KAETyxH,EAAQulF,KAAK,eACNotC,EAAQ3hM,KAEjBgvE,EAAQuvH,QAAQv+L,GACXwgM,IAAMA,GAAQtC,GAAcl+L,IACjB,KAATA,EAAc8lM,EAAcD,EACrC,CAYA,SAASC,EAAY9lM,GACnB,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAChCgvE,EAAQuvH,QAAQv+L,GAChBziD,IACOsoP,GAEFA,EAAY7lM,EACrB,CACF,CCtHO,SAAS+lM,GAAa/2H,EAASyyE,EAAIg/C,EAAKltQ,EAAMgmD,EAAY8rN,GAE/D,IAAI9lJ,EACJ,OAYA,SAAev/C,GACb,GAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,EAMhC,OALAgvE,EAAQ6kF,MAAMtgO,GACdy7I,EAAQ6kF,MAAMt6K,GACdy1F,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAKh7K,GACbgmE,EAAkB,KAATv/C,EAAc,GAAKA,EACrBivL,EAET,OAAOwR,EAAIzgM,EACb,EAcA,SAASivL,EAAMjvL,GACb,OAAIA,IAASu/C,GACXyvB,EAAQ6kF,MAAMt6K,GACdy1F,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAKh7K,GACby1F,EAAQulF,KAAKhhO,GACNkuN,IAETzyE,EAAQ6kF,MAAMwxC,GACP1D,EAAQ3hM,GACjB,CAYA,SAAS2hM,EAAQ3hM,GACf,OAAIA,IAASu/C,GACXyvB,EAAQulF,KAAK8wC,GACNpW,EAAM1vI,IAEF,OAATv/C,EACKygM,EAAIzgM,GAITg+L,GAAmBh+L,IAErBgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACN8pC,GAAarvH,EAAS2yH,EAAS,gBAExC3yH,EAAQ6kF,MAAM,cAAe,CAC3B9qI,YAAa,WAERs7K,EAAOrkM,GAChB,CAOA,SAASqkM,EAAOrkM,GACd,OAAIA,IAASu/C,GAAmB,OAATv/C,GAAiBg+L,GAAmBh+L,IACzDgvE,EAAQulF,KAAK,eACNotC,EAAQ3hM,KAEjBgvE,EAAQuvH,QAAQv+L,GACA,KAATA,EAAci2J,EAASouC,EAChC,CAYA,SAASpuC,EAAOj2J,GACd,OAAIA,IAASu/C,GAAmB,KAATv/C,GACrBgvE,EAAQuvH,QAAQv+L,GACTqkM,GAEFA,EAAOrkM,EAChB,CACF,CClIO,SAASgmM,GAAkBh3H,EAASyyE,GAEzC,IAAI++C,EACJ,OAGA,SAASpkO,EAAM4jC,GACb,GAAIg+L,GAAmBh+L,GAKrB,OAJAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACbisC,GAAO,EACApkO,EAET,GAAI8hO,GAAcl+L,GAChB,OAAOq+L,GACLrvH,EACA5yG,EACAokO,EAAO,aAAe,aAHjBnC,CAILr+L,GAEJ,OAAOyhJ,EAAGzhJ,EACZ,CACF,CC7BO,SAASimM,GAAoBl9Q,GAClC,OACEA,EAEGq1B,QAAQ,cAAe,KAEvBA,QAAQ,SAAU,IAOlB13B,cACA2uB,aAEP,CCpBO,MAAM8jO,GAAa,CACxBtpP,KAAM,aACN2uQ,SAaF,SAA4BxvH,EAASyyE,EAAIg/C,GACvC,MAAMv9O,EAAO1Q,KAEb,IAAI0zP,EACJ,OAYA,SAAelmM,GAKb,OADAgvE,EAAQ6kF,MAAM,cAchB,SAAgB7zJ,GAGd,OAAO4lM,GAAa/9O,KAAK3E,EAAM8rH,EAASm3H,EAExC1F,EAAK,kBAAmB,wBAAyB,wBAF1CmF,CAEmE5lM,EAC5E,CAnBSu9L,CAAOv9L,EAChB,EA8BA,SAASmmM,EAAWnmM,GAElB,OADAkmM,EAAaD,GAAoB/iP,EAAKi+O,eAAej+O,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAAG,IAAIgb,MAAM,GAAI,IAC1F,KAATo+D,GACFgvE,EAAQ6kF,MAAM,oBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,oBACN6xC,GAEF3F,EAAIzgM,EACb,CAYA,SAASomM,EAAYpmM,GAEnB,OAAOi+L,GAA0Bj+L,GAAQgmM,GAAkBh3H,EAASq3H,EAA3BL,CAA8ChmM,GAAQqmM,EAAkBrmM,EACnH,CAYA,SAASqmM,EAAkBrmM,GACzB,OAAOilM,GAAmBj2H,EAASs3H,EAEnC7F,EAAK,wBAAyB,+BAAgC,qCAAsC,2BAA4B,8BAFzHwE,CAEwJjlM,EACjK,CAYA,SAASsmM,EAAiBtmM,GACxB,OAAOgvE,EAAQ0vH,QAAQ6H,GAAa1F,EAAOA,EAApC7xH,CAA2ChvE,EACpD,CAcA,SAAS6gM,EAAM7gM,GACb,OAAOk+L,GAAcl+L,GAAQq+L,GAAarvH,EAASw3H,EAAiB,aAAvCnI,CAAqDr+L,GAAQwmM,EAAgBxmM,EAC5G,CAcA,SAASwmM,EAAgBxmM,GACvB,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,cAKbrxM,EAAKg6M,OAAO0b,QAAQ1iO,KAAKgwP,GAKlBzkD,EAAGzhJ,IAELygM,EAAIzgM,EACb,CACF,GAjKMumM,GAAc,CAClB/H,SAsKF,SAA6BxvH,EAASyyE,EAAIg/C,GACxC,OAcA,SAAqBzgM,GACnB,OAAOi+L,GAA0Bj+L,GAAQgmM,GAAkBh3H,EAASy3H,EAA3BT,CAAyChmM,GAAQygM,EAAIzgM,EAChG,EAaA,SAASymM,EAAazmM,GACpB,OAAO+lM,GAAa/2H,EAAS03H,EAAYjG,EAAK,kBAAmB,wBAAyB,wBAAnFsF,CAA4G/lM,EACrH,CAYA,SAAS0mM,EAAW1mM,GAClB,OAAOk+L,GAAcl+L,GAAQq+L,GAAarvH,EAAS23H,EAA8B,aAApDtI,CAAkEr+L,GAAQ2mM,EAA6B3mM,EACtI,CAYA,SAAS2mM,EAA6B3mM,GACpC,OAAgB,OAATA,GAAiBg+L,GAAmBh+L,GAAQyhJ,EAAGzhJ,GAAQygM,EAAIzgM,EACpE,CACF,EAlOEinD,SAAS,GCbJ,MAAM2/I,GAAe,CAC1B/2Q,KAAM,eACN2uQ,SAaF,SAA8BxvH,EAASyyE,EAAIg/C,GACzC,MAAMv9O,EAAO1Q,KACb,OAgBA,SAAewtD,GAMb,OAHAgvE,EAAQ6kF,MAAM,gBAGPwqC,GAAarvH,EAAS63H,EAAa,aAAc,EAAjDxI,CAAwDr+L,EACjE,EAYA,SAAS6mM,EAAY7mM,GACnB,MAAM0+I,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAC9C,OAAO83N,GAAyB,eAAjBA,EAAK,GAAGnrN,MAAyBmrN,EAAK,GAAGyiD,eAAeziD,EAAK,IAAI,GAAM93N,QAAU,EAAI+6Q,EAAQ3hM,GAAQygM,EAAIzgM,EAC1H,CAYA,SAAS2hM,EAAQ3hM,GACf,OAAa,OAATA,EACK6gM,EAAM7gM,GAEXg+L,GAAmBh+L,GACdgvE,EAAQ0vH,QAAQoI,GAAcnF,EAASd,EAAvC7xH,CAA8ChvE,IAEvDgvE,EAAQ6kF,MAAM,iBACPwwC,EAAOrkM,GAChB,CAYA,SAASqkM,EAAOrkM,GACd,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,iBACNotC,EAAQ3hM,KAEjBgvE,EAAQuvH,QAAQv+L,GACTqkM,EACT,CAGA,SAASxD,EAAM7gM,GAKb,OAJAgvE,EAAQulF,KAAK,gBAIN9S,EAAGzhJ,EACZ,CACF,GAnGM8mM,GAAe,CACnBtI,SAwGF,SAA8BxvH,EAASyyE,EAAIg/C,GACzC,MAAMv9O,EAAO1Q,KACb,OAAOs0P,EAaP,SAASA,EAAa9mM,GAGpB,OAAI98C,EAAKg6M,OAAOvkJ,KAAKz1D,EAAKnxB,MAAMo3G,MACvBs3J,EAAIzgM,GAETg+L,GAAmBh+L,IACrBgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNuyC,GASFzI,GAAarvH,EAAS63H,EAAa,aAAc,EAAjDxI,CAAwDr+L,EACjE,CAYA,SAAS6mM,EAAY7mM,GACnB,MAAM0+I,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAC9C,OAAO83N,GAAyB,eAAjBA,EAAK,GAAGnrN,MAAyBmrN,EAAK,GAAGyiD,eAAeziD,EAAK,IAAI,GAAM93N,QAAU,EAAI66N,EAAGzhJ,GAAQg+L,GAAmBh+L,GAAQ8mM,EAAa9mM,GAAQygM,EAAIzgM,EACrK,CACF,EA1JEinD,SAAS,GCLJ,MAAM8/I,GAAa,CACxBl3Q,KAAM,aACN2uQ,SA8CF,SAA4BxvH,EAASyyE,EAAIg/C,GACvC,IAAIljP,EAAO,EACX,OAYA,SAAeyiD,GAGb,OADAgvE,EAAQ6kF,MAAM,cAchB,SAAgB7zJ,GAEd,OADAgvE,EAAQ6kF,MAAM,sBACPmzC,EAAahnM,EACtB,CAhBSu9L,CAAOv9L,EAChB,EA2BA,SAASgnM,EAAahnM,GACpB,OAAa,KAATA,GAAeziD,IAAS,GAC1ByxH,EAAQuvH,QAAQv+L,GACTgnM,GAII,OAAThnM,GAAiBi+L,GAA0Bj+L,IAC7CgvE,EAAQulF,KAAK,sBACNotC,EAAQ3hM,IAEVygM,EAAIzgM,EACb,CAYA,SAAS2hM,EAAQ3hM,GACf,OAAa,KAATA,GACFgvE,EAAQ6kF,MAAM,sBACPozC,EAAgBjnM,IAEZ,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,cAIN9S,EAAGzhJ,IAERk+L,GAAcl+L,GACTq+L,GAAarvH,EAAS2yH,EAAS,aAA/BtD,CAA6Cr+L,IAKtDgvE,EAAQ6kF,MAAM,kBACP5mO,EAAK+yE,GACd,CAcA,SAASinM,EAAgBjnM,GACvB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTinM,IAETj4H,EAAQulF,KAAK,sBACNotC,EAAQ3hM,GACjB,CAYA,SAAS/yE,EAAK+yE,GACZ,OAAa,OAATA,GAA0B,KAATA,GAAei+L,GAA0Bj+L,IAC5DgvE,EAAQulF,KAAK,kBACNotC,EAAQ3hM,KAEjBgvE,EAAQuvH,QAAQv+L,GACT/yE,EACT,CACF,EA/KEupB,QAIF,SAA2BilB,EAAQrkC,GACjC,IAGIlL,EAEA+nB,EALA8sP,EAAatlO,EAAO70C,OAAS,EAC7B63Q,EAAe,EAOkB,eAAjChjO,EAAOgjO,GAAc,GAAGlrQ,OAC1BkrQ,GAAgB,GAIdsC,EAAa,EAAItC,GAA+C,eAA/BhjO,EAAOslO,GAAY,GAAGxtQ,OACzDwtQ,GAAc,GAEmB,uBAA/BtlO,EAAOslO,GAAY,GAAGxtQ,OAAkCkrQ,IAAiBsC,EAAa,GAAKA,EAAa,EAAItC,GAAmD,eAAnChjO,EAAOslO,EAAa,GAAG,GAAGxtQ,QACxJwtQ,GAActC,EAAe,IAAMsC,EAAa,EAAI,GAElDA,EAAatC,IACfvyQ,EAAU,CACRqH,KAAM,iBACN6oC,MAAOX,EAAOgjO,GAAc,GAAGriO,MAC/B4I,IAAKvJ,EAAOslO,GAAY,GAAG/7N,KAE7B/wB,EAAO,CACL1gB,KAAM,YACN6oC,MAAOX,EAAOgjO,GAAc,GAAGriO,MAC/B4I,IAAKvJ,EAAOslO,GAAY,GAAG/7N,IAC3B+jD,YAAa,QAEft1D,GAAOgI,EAAQgjO,EAAcsC,EAAatC,EAAe,EAAG,CAAC,CAAC,QAASvyQ,EAASkL,GAAU,CAAC,QAAS6c,EAAM7c,GAAU,CAAC,OAAQ6c,EAAM7c,GAAU,CAAC,OAAQlL,EAASkL,MAEjK,OAAOqkC,CACT,GC3CO,MAAMyrO,GAAkB,CAC7Br3Q,KAAM,kBACN2uQ,SAkEF,SAAiCxvH,EAASyyE,EAAIg/C,GAC5C,MAAMv9O,EAAO1Q,KAEb,IAAI+sG,EACJ,OAaA,SAAev/C,GACb,IAEIx/C,EAFAxjB,EAAQkmB,EAAKuY,OAAO70C,OAIxB,KAAOoW,KAGL,GAAmC,eAA/BkmB,EAAKuY,OAAOz+B,GAAO,GAAGzJ,MAAwD,eAA/B2vB,EAAKuY,OAAOz+B,GAAO,GAAGzJ,MAAwD,YAA/B2vB,EAAKuY,OAAOz+B,GAAO,GAAGzJ,KAAoB,CAC1IitB,EAA2C,cAA/B0C,EAAKuY,OAAOz+B,GAAO,GAAGzJ,KAClC,KACF,CAKF,IAAK2vB,EAAKg6M,OAAOvkJ,KAAKz1D,EAAKnxB,MAAMo3G,QAAUjmF,EAAK48O,WAAat/O,GAG3D,OAFAwuH,EAAQ6kF,MAAM,qBACdt0G,EAASv/C,EAiBb,SAAgBA,GAEd,OADAgvE,EAAQ6kF,MAAM,6BACPwwC,EAAOrkM,EAChB,CAnBWu9L,CAAOv9L,GAEhB,OAAOygM,EAAIzgM,EACb,EA6BA,SAASqkM,EAAOrkM,GACd,OAAIA,IAASu/C,GACXyvB,EAAQuvH,QAAQv+L,GACTqkM,IAETr1H,EAAQulF,KAAK,6BACN2pC,GAAcl+L,GAAQq+L,GAAarvH,EAAS6xH,EAAO,aAA7BxC,CAA2Cr+L,GAAQ6gM,EAAM7gM,GACxF,CAaA,SAAS6gM,EAAM7gM,GACb,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,qBACN9S,EAAGzhJ,IAELygM,EAAIzgM,EACb,CACF,EAhKEuS,UAIF,SAAkC92C,EAAQrkC,GAExC,IAEIlL,EAEA+nB,EAEAklO,EANAn8O,EAAQy+B,EAAO70C,OAUnB,KAAOoW,KACL,GAAyB,UAArBy+B,EAAOz+B,GAAO,GAAgB,CAChC,GAA8B,YAA1By+B,EAAOz+B,GAAO,GAAGzJ,KAAoB,CACvCrH,EAAU8Q,EACV,KACF,CAC8B,cAA1By+B,EAAOz+B,GAAO,GAAGzJ,OACnB0gB,EAAOjX,EAEX,KAGgC,YAA1By+B,EAAOz+B,GAAO,GAAGzJ,MAEnBkoC,EAAOhI,OAAOz2B,EAAO,GAElBm8O,GAAwC,eAA1B19M,EAAOz+B,GAAO,GAAGzJ,OAClC4lP,EAAan8O,GAInB,MAAM0wH,EAAU,CACdn6H,KAAM,gBACN6oC,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOxnB,GAAM,GAAGmoB,OACzC4I,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOA,EAAO70C,OAAS,GAAG,GAAGo+C,MAItDvJ,EAAOxnB,GAAM,GAAG1gB,KAAO,oBAInB4lP,GACF19M,EAAOhI,OAAOxf,EAAM,EAAG,CAAC,QAASy5G,EAASt2H,IAC1CqkC,EAAOhI,OAAO0lN,EAAa,EAAG,EAAG,CAAC,OAAQ19M,EAAOvvC,GAAS,GAAIkL,IAC9DqkC,EAAOvvC,GAAS,GAAG84C,IAAMv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAO09M,GAAY,GAAGn0M,MAEjEvJ,EAAOvvC,GAAS,GAAKwhI,EAKvB,OADAjyF,EAAOvlB,KAAK,CAAC,OAAQw3G,EAASt2H,IACvBqkC,CACT,GC3DO,MAAM0rO,GAAiB,CAC5B,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MAeWC,GAAe,CAAC,MAAO,SAAU,QAAS,YC9E1CC,GAAW,CACtBx3Q,KAAM,WACN2uQ,SAsCF,SAA0BxvH,EAASyyE,EAAIg/C,GACrC,MAAMv9O,EAAO1Q,KAEb,IAAI+sG,EAEA+nJ,EAEAjxM,EAEAr5D,EAEAuqQ,EACJ,OAYA,SAAevnM,GAEb,OAaF,SAAgBA,GAId,OAHAgvE,EAAQ6kF,MAAM,YACd7kF,EAAQ6kF,MAAM,gBACd7kF,EAAQuvH,QAAQv+L,GACTpJ,CACT,CAlBS2mM,CAAOv9L,EAChB,EAiCA,SAASpJ,EAAKoJ,GACZ,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTwnM,GAEI,KAATxnM,GACFgvE,EAAQuvH,QAAQv+L,GAChBsnM,GAAa,EACNG,GAEI,KAATznM,GACFgvE,EAAQuvH,QAAQv+L,GAChBu/C,EAAS,EAMFr8F,EAAK48O,UAAYr+C,EAAKimD,GAI3BlK,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GAEhB3J,EAASntC,OAAO0zB,aAAaojB,GACtBrjC,GAEF8jO,EAAIzgM,EACb,CAgBA,SAASwnM,EAAgBxnM,GACvB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChBu/C,EAAS,EACFooJ,GAEI,KAAT3nM,GACFgvE,EAAQuvH,QAAQv+L,GAChBu/C,EAAS,EACTviH,EAAQ,EACD4qQ,GAILpK,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GAChBu/C,EAAS,EAGFr8F,EAAK48O,UAAYr+C,EAAKimD,GAExBjH,EAAIzgM,EACb,CAYA,SAAS2nM,EAAkB3nM,GACzB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAGT98C,EAAK48O,UAAYr+C,EAAKimD,GAExBjH,EAAIzgM,EACb,CAYA,SAAS4nM,EAAgB5nM,GACvB,MAAMj3E,EAAQ,SACd,OAAIi3E,IAASj3E,EAAM8zD,WAAW7/C,MAC5BgyI,EAAQuvH,QAAQv+L,GACFj3E,IAAViU,EAGKkmB,EAAK48O,UAAYr+C,EAAKy9C,EAExB0I,GAEFnH,EAAIzgM,EACb,CAYA,SAASynM,EAAcznM,GACrB,OAAIw9L,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GAEhB3J,EAASntC,OAAO0zB,aAAaojB,GACtBrjC,GAEF8jO,EAAIzgM,EACb,CAcA,SAASrjC,EAAQqjC,GACf,GAAa,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAei+L,GAA0Bj+L,GAAO,CAClF,MAAM6nM,EAAiB,KAAT7nM,EACRnwE,EAAOwmE,EAAO3vE,cACpB,OAAKmhR,GAAUP,IAAcF,GAAazgR,SAASkJ,GAM/Cs3Q,GAAexgR,SAAS0vE,EAAO3vE,gBACjC64H,EAAS,EACLsoJ,GACF74H,EAAQuvH,QAAQv+L,GACT8nM,GAKF5kP,EAAK48O,UAAYr+C,EAAGzhJ,GAAQk/L,EAAal/L,KAElDu/C,EAAS,EAEFr8F,EAAK48O,YAAc58O,EAAKg6M,OAAOvkJ,KAAKz1D,EAAKnxB,MAAMo3G,MAAQs3J,EAAIzgM,GAAQsnM,EAAaS,EAAwB/nM,GAAQgoM,EAA4BhoM,KAlBjJu/C,EAAS,EAGFr8F,EAAK48O,UAAYr+C,EAAGzhJ,GAAQk/L,EAAal/L,GAgBpD,CAGA,OAAa,KAATA,GAAe09L,GAAkB19L,IACnCgvE,EAAQuvH,QAAQv+L,GAChB3J,GAAUntC,OAAO0zB,aAAaojB,GACvBrjC,GAEF8jO,EAAIzgM,EACb,CAYA,SAAS8nM,EAAiB9nM,GACxB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAGT98C,EAAK48O,UAAYr+C,EAAKy9C,GAExBuB,EAAIzgM,EACb,CAYA,SAAS+nM,EAAwB/nM,GAC/B,OAAIk+L,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACT+nM,GAEFE,EAAYjoM,EACrB,CAyBA,SAASgoM,EAA4BhoM,GACnC,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTioM,GAII,KAATjoM,GAAwB,KAATA,GAAew9L,GAAWx9L,IAC3CgvE,EAAQuvH,QAAQv+L,GACTkoM,GAELhK,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACTgoM,GAEFC,EAAYjoM,EACrB,CAgBA,SAASkoM,EAAsBloM,GAE7B,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAe09L,GAAkB19L,IAChFgvE,EAAQuvH,QAAQv+L,GACTkoM,GAEFC,EAA2BnoM,EACpC,CAeA,SAASmoM,EAA2BnoM,GAClC,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTooM,GAELlK,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACTmoM,GAEFH,EAA4BhoM,EACrC,CAeA,SAASooM,EAA6BpoM,GACpC,OAAa,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACzDygM,EAAIzgM,GAEA,KAATA,GAAwB,KAATA,GACjBgvE,EAAQuvH,QAAQv+L,GAChBunM,EAAUvnM,EACHqoM,GAELnK,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACTooM,GAEFE,EAA+BtoM,EACxC,CAcA,SAASqoM,EAA6BroM,GACpC,OAAIA,IAASunM,GACXv4H,EAAQuvH,QAAQv+L,GAChBunM,EAAU,KACHgB,GAEI,OAATvoM,GAAiBg+L,GAAmBh+L,GAC/BygM,EAAIzgM,IAEbgvE,EAAQuvH,QAAQv+L,GACTqoM,EACT,CAYA,SAASC,EAA+BtoM,GACtC,OAAa,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAei+L,GAA0Bj+L,GAC/ImoM,EAA2BnoM,IAEpCgvE,EAAQuvH,QAAQv+L,GACTsoM,EACT,CAaA,SAASC,EAAkCvoM,GACzC,OAAa,KAATA,GAAwB,KAATA,GAAek+L,GAAcl+L,GACvCgoM,EAA4BhoM,GAE9BygM,EAAIzgM,EACb,CAYA,SAASioM,EAAYjoM,GACnB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTwoM,GAEF/H,EAAIzgM,EACb,CAYA,SAASwoM,EAAcxoM,GACrB,OAAa,OAATA,GAAiBg+L,GAAmBh+L,GAG/Bk/L,EAAal/L,GAElBk+L,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACTwoM,GAEF/H,EAAIzgM,EACb,CAYA,SAASk/L,EAAal/L,GACpB,OAAa,KAATA,GAA0B,IAAXu/C,GACjByvB,EAAQuvH,QAAQv+L,GACTyoM,GAEI,KAATzoM,GAA0B,IAAXu/C,GACjByvB,EAAQuvH,QAAQv+L,GACT0oM,GAEI,KAAT1oM,GAA0B,IAAXu/C,GACjByvB,EAAQuvH,QAAQv+L,GACT2oM,GAEI,KAAT3oM,GAA0B,IAAXu/C,GACjByvB,EAAQuvH,QAAQv+L,GACT0nM,GAEI,KAAT1nM,GAA0B,IAAXu/C,GACjByvB,EAAQuvH,QAAQv+L,GACT4oM,IAEL5K,GAAmBh+L,IAAqB,IAAXu/C,GAA2B,IAAXA,EAIpC,OAATv/C,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,gBACNs0C,EAAkB7oM,KAE3BgvE,EAAQuvH,QAAQv+L,GACTk/L,IARLlwH,EAAQulF,KAAK,gBACNvlF,EAAQvvC,MAAMqpK,GAAiBC,EAAmBF,EAAlD75H,CAAqEhvE,GAQhF,CAaA,SAAS6oM,EAAkB7oM,GACzB,OAAOgvE,EAAQvvC,MAAMupK,GAA0BC,EAA0BF,EAAlE/5H,CAAqFhvE,EAC9F,CAaA,SAASipM,EAAyBjpM,GAIhC,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACN20C,CACT,CAaA,SAASA,EAAmBlpM,GAC1B,OAAa,OAATA,GAAiBg+L,GAAmBh+L,GAC/B6oM,EAAkB7oM,IAE3BgvE,EAAQ6kF,MAAM,gBACPqrC,EAAal/L,GACtB,CAYA,SAASyoM,EAA0BzoM,GACjC,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACT0nM,GAEFxI,EAAal/L,EACtB,CAYA,SAAS0oM,EAAuB1oM,GAC9B,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChB3J,EAAS,GACF8yM,GAEFjK,EAAal/L,EACtB,CAYA,SAASmpM,EAAsBnpM,GAC7B,GAAa,KAATA,EAAa,CACf,MAAMnwE,EAAOwmE,EAAO3vE,cACpB,OAAI0gR,GAAazgR,SAASkJ,IACxBm/I,EAAQuvH,QAAQv+L,GACT2oM,GAEFzJ,EAAal/L,EACtB,CACA,OAAIw9L,GAAWx9L,IAAS3J,EAAOzvE,OAAS,GACtCooJ,EAAQuvH,QAAQv+L,GAEhB3J,GAAUntC,OAAO0zB,aAAaojB,GACvBmpM,GAEFjK,EAAal/L,EACtB,CAYA,SAAS4oM,EAAwB5oM,GAC/B,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACT0nM,GAEFxI,EAAal/L,EACtB,CAoBA,SAAS0nM,EAA8B1nM,GACrC,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACT2oM,GAII,KAAT3oM,GAA0B,IAAXu/C,GACjByvB,EAAQuvH,QAAQv+L,GACT0nM,GAEFxI,EAAal/L,EACtB,CAYA,SAAS2oM,EAAkB3oM,GACzB,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,gBACNw0C,EAAkB/oM,KAE3BgvE,EAAQuvH,QAAQv+L,GACT2oM,EACT,CAYA,SAASI,EAAkB/oM,GAMzB,OALAgvE,EAAQulF,KAAK,YAKN9S,EAAGzhJ,EACZ,CACF,EA9wBEuS,UAeF,SAA2B92C,GACzB,IAAIz+B,EAAQy+B,EAAO70C,OACnB,KAAOoW,MACoB,UAArBy+B,EAAOz+B,GAAO,IAA4C,aAA1By+B,EAAOz+B,GAAO,GAAGzJ,QAInDyJ,EAAQ,GAAmC,eAA9By+B,EAAOz+B,EAAQ,GAAG,GAAGzJ,OAEpCkoC,EAAOz+B,GAAO,GAAGo/B,MAAQX,EAAOz+B,EAAQ,GAAG,GAAGo/B,MAE9CX,EAAOz+B,EAAQ,GAAG,GAAGo/B,MAAQX,EAAOz+B,EAAQ,GAAG,GAAGo/B,MAElDX,EAAOhI,OAAOz2B,EAAQ,EAAG,IAE3B,OAAOy+B,CACT,EA9BEmkO,UAAU,GAINkJ,GAAkB,CACtBtK,SA2zBF,SAAiCxvH,EAASyyE,EAAIg/C,GAC5C,OAaA,SAAezgM,GAIb,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNvlF,EAAQ0vH,QAAQkC,GAAWn/C,EAAIg/C,EACxC,CACF,EA90BEx5I,SAAS,GAEL+hJ,GAA2B,CAC/BxK,SA0wBF,SAA0CxvH,EAASyyE,EAAIg/C,GACrD,MAAMv9O,EAAO1Q,KACb,OAaA,SAAewtD,GACb,GAAIg+L,GAAmBh+L,GAIrB,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNssC,EAET,OAAOJ,EAAIzgM,EACb,EAaA,SAAS6gM,EAAM7gM,GACb,OAAO98C,EAAKg6M,OAAOvkJ,KAAKz1D,EAAKnxB,MAAMo3G,MAAQs3J,EAAIzgM,GAAQyhJ,EAAGzhJ,EAC5D,CACF,EAhzBEinD,SAAS,GCjBX,MAAMmiJ,GAAsB,CAC1B5K,SA+ZF,SAAqCxvH,EAASyyE,EAAIg/C,GAChD,MAAMv9O,EAAO1Q,KACb,OAOA,SAAewtD,GACb,GAAa,OAATA,EACF,OAAOygM,EAAIzgM,GAKb,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNqqC,CACT,EAOA,SAASA,EAAU5+L,GACjB,OAAO98C,EAAKg6M,OAAOvkJ,KAAKz1D,EAAKnxB,MAAMo3G,MAAQs3J,EAAIzgM,GAAQyhJ,EAAGzhJ,EAC5D,CACF,EAzbEinD,SAAS,GAIEoiJ,GAAa,CACxBx5Q,KAAM,aACN2uQ,SAQF,SAA4BxvH,EAASyyE,EAAIg/C,GACvC,MAAMv9O,EAAO1Q,KAEP82P,EAAa,CACjB9K,SAiSF,SAA4BxvH,EAASyyE,EAAIg/C,GACvC,IAAIljP,EAAO,EACX,OAAOgsP,EAOP,SAASA,EAAYvpM,GAInB,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNn4L,CACT,CAcA,SAASA,EAAM4jC,GAKb,OADAgvE,EAAQ6kF,MAAM,mBACPqqC,GAAcl+L,GAAQq+L,GAAarvH,EAASw6H,EAAqB,aAActmP,EAAKg6M,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,qBAAkBgG,EAAY,EAApI0xQ,CAAuIr+L,GAAQwpM,EAAoBxpM,EAClM,CAcA,SAASwpM,EAAoBxpM,GAC3B,OAAIA,IAASu/C,GACXyvB,EAAQ6kF,MAAM,2BACP41C,EAAczpM,IAEhBygM,EAAIzgM,EACb,CAcA,SAASypM,EAAczpM,GACrB,OAAIA,IAASu/C,GACXhiG,IACAyxH,EAAQuvH,QAAQv+L,GACTypM,GAELlsP,GAAQmsP,GACV16H,EAAQulF,KAAK,2BACN2pC,GAAcl+L,GAAQq+L,GAAarvH,EAAS26H,EAAoB,aAA1CtL,CAAwDr+L,GAAQ2pM,EAAmB3pM,IAE3GygM,EAAIzgM,EACb,CAcA,SAAS2pM,EAAmB3pM,GAC1B,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,mBACN9S,EAAGzhJ,IAELygM,EAAIzgM,EACb,CACF,EApYEinD,SAAS,GAEX,IAGI1H,EAHAqqJ,EAAgB,EAChBF,EAAW,EAGf,OAcA,SAAe1pM,GAEb,OAeF,SAA4BA,GAC1B,MAAM0+I,EAAOx7L,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAM9C,OALAgjR,EAAgBlrD,GAAyB,eAAjBA,EAAK,GAAGnrN,KAAwBmrN,EAAK,GAAGyiD,eAAeziD,EAAK,IAAI,GAAM93N,OAAS,EACvG24H,EAASv/C,EACTgvE,EAAQ6kF,MAAM,cACd7kF,EAAQ6kF,MAAM,mBACd7kF,EAAQ6kF,MAAM,2BACPmzC,EAAahnM,EACtB,CAvBS6pM,CAAmB7pM,EAC5B,EAoCA,SAASgnM,EAAahnM,GACpB,OAAIA,IAASu/C,GACXmqJ,IACA16H,EAAQuvH,QAAQv+L,GACTgnM,GAEL0C,EAAW,EACNjJ,EAAIzgM,IAEbgvE,EAAQulF,KAAK,2BACN2pC,GAAcl+L,GAAQq+L,GAAarvH,EAAS86H,EAAY,aAAlCzL,CAAgDr+L,GAAQ8pM,EAAW9pM,GAClG,CAcA,SAAS8pM,EAAW9pM,GAClB,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,mBACNrxM,EAAK48O,UAAYr+C,EAAGzhJ,GAAQgvE,EAAQvvC,MAAM2pK,GAAqBW,EAAgBlJ,EAAnD7xH,CAA0DhvE,KAE/FgvE,EAAQ6kF,MAAM,uBACd7kF,EAAQ6kF,MAAM,cAAe,CAC3B9qI,YAAa,WAERqwJ,EAAKp5K,GACd,CAcA,SAASo5K,EAAKp5K,GACZ,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK,uBACNu1C,EAAW9pM,IAEhBk+L,GAAcl+L,IAChBgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK,uBACN8pC,GAAarvH,EAASg7H,EAAY,aAAlC3L,CAAgDr+L,IAE5C,KAATA,GAAeA,IAASu/C,EACnBkhJ,EAAIzgM,IAEbgvE,EAAQuvH,QAAQv+L,GACTo5K,EACT,CAcA,SAAS4wB,EAAWhqM,GAClB,OAAa,OAATA,GAAiBg+L,GAAmBh+L,GAC/B8pM,EAAW9pM,IAEpBgvE,EAAQ6kF,MAAM,uBACd7kF,EAAQ6kF,MAAM,cAAe,CAC3B9qI,YAAa,WAERha,EAAK/O,GACd,CAcA,SAAS+O,EAAK/O,GACZ,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK,uBACNu1C,EAAW9pM,IAEP,KAATA,GAAeA,IAASu/C,EACnBkhJ,EAAIzgM,IAEbgvE,EAAQuvH,QAAQv+L,GACT+O,EACT,CAeA,SAASg7L,EAAe/pM,GACtB,OAAOgvE,EAAQ0vH,QAAQ4K,EAAYzI,EAAOoJ,EAAnCj7H,CAAkDhvE,EAC3D,CAcA,SAASiqM,EAAcjqM,GAIrB,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNkqC,CACT,CAcA,SAASA,EAAaz+L,GACpB,OAAO4pM,EAAgB,GAAK1L,GAAcl+L,GAAQq+L,GAAarvH,EAASk7H,EAAoB,aAAcN,EAAgB,EAAxEvL,CAA2Er+L,GAAQkqM,EAAmBlqM,EAC1J,CAcA,SAASkqM,EAAmBlqM,GAC1B,OAAa,OAATA,GAAiBg+L,GAAmBh+L,GAC/BgvE,EAAQvvC,MAAM2pK,GAAqBW,EAAgBlJ,EAAnD7xH,CAA0DhvE,IAEnEgvE,EAAQ6kF,MAAM,iBACPs2C,EAAanqM,GACtB,CAcA,SAASmqM,EAAanqM,GACpB,OAAa,OAATA,GAAiBg+L,GAAmBh+L,IACtCgvE,EAAQulF,KAAK,iBACN21C,EAAmBlqM,KAE5BgvE,EAAQuvH,QAAQv+L,GACTmqM,EACT,CAcA,SAAStJ,EAAM7gM,GAEb,OADAgvE,EAAQulF,KAAK,cACN9S,EAAGzhJ,EACZ,CA2GF,EAjZE4/L,UAAU,GChBZ,MAAM35Q,GAAUH,SAASytB,cAAc,KAMhC,SAAS62P,GAA8BrhR,GAC5C,MAAMshR,EAAqB,IAAMthR,EAAQ,IACzC9C,GAAQa,UAAYujR,EACpB,MAAMp4L,EAAOhsF,GAAQk1C,YAUrB,OAAyC,KAArC82C,EAAKp1B,WAAWo1B,EAAKrrF,OAAS,IAAiC,SAAVmC,KAQlDkpF,IAASo4L,GAA6Bp4L,EAC/C,CCrBO,MAAMo4L,GAAqB,CAChCx6Q,KAAM,qBACN2uQ,SAOF,SAAoCxvH,EAASyyE,EAAIg/C,GAC/C,MAAMv9O,EAAO1Q,KACb,IAEIxU,EAEAw3B,EAJAjY,EAAO,EAKX,OAgBA,SAAeyiD,GAKb,OAJAgvE,EAAQ6kF,MAAM,sBACd7kF,EAAQ6kF,MAAM,4BACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,4BACN39J,CACT,EAiBA,SAASA,EAAKoJ,GACZ,OAAa,KAATA,GACFgvE,EAAQ6kF,MAAM,mCACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,mCACN+1C,IAETt7H,EAAQ6kF,MAAM,2BACd71N,EAAM,GACNw3B,EAAOkoO,GACA30Q,EAAMi3E,GACf,CAcA,SAASsqM,EAAQtqM,GACf,OAAa,KAATA,GAAwB,MAATA,GACjBgvE,EAAQ6kF,MAAM,uCACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,uCACbvlF,EAAQ6kF,MAAM,2BACd71N,EAAM,EACNw3B,EAAOsoO,GACA/0Q,IAETimJ,EAAQ6kF,MAAM,2BACd71N,EAAM,EACNw3B,EAAOqoO,GACA90Q,EAAMi3E,GACf,CAmBA,SAASj3E,EAAMi3E,GACb,GAAa,KAATA,GAAeziD,EAAM,CACvB,MAAM1vB,EAAQmhJ,EAAQulF,KAAK,2BAC3B,OAAI/+L,IAASkoO,IAAsB0M,GAA8BlnP,EAAKi+O,eAAetzQ,KAMrFmhJ,EAAQ6kF,MAAM,4BACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,4BACbvlF,EAAQulF,KAAK,sBACN9S,GATEg/C,EAAIzgM,EAUf,CACA,OAAIxqC,EAAKwqC,IAASziD,IAASvf,GACzBgxI,EAAQuvH,QAAQv+L,GACTj3E,GAEF03Q,EAAIzgM,EACb,CACF,GCxIO,MAAMuqM,GAAkB,CAC7B16Q,KAAM,kBACN2uQ,SAOF,SAAiCxvH,EAASyyE,EAAIg/C,GAC5C,OAYA,SAAezgM,GAKb,OAJAgvE,EAAQ6kF,MAAM,mBACd7kF,EAAQ6kF,MAAM,gBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,gBACN8vC,CACT,EAYA,SAASA,EAAOrkM,GAEd,OAAI+9L,GAAiB/9L,IACnBgvE,EAAQ6kF,MAAM,wBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,wBACbvlF,EAAQulF,KAAK,mBACN9S,GAEFg/C,EAAIzgM,EACb,CACF,GClDO,MAAMwqM,GAAa,CACxB36Q,KAAM,aACN2uQ,SAOF,SAA4BxvH,EAASyyE,GACnC,OAGA,SAAezhJ,GAIb,OAHAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACN8pC,GAAarvH,EAASyyE,EAAI,aACnC,CACF,GCVO,MAAMgpD,GAAW,CACtB56Q,KAAM,WACN2uQ,SAoHF,SAA0BxvH,EAASyyE,EAAIg/C,GACrC,MAAMv9O,EAAO1Q,KACb,IAEIk4P,EAEA9xB,EAJA57O,EAAQkmB,EAAKuY,OAAO70C,OAOxB,KAAOoW,KACL,IAAoC,eAA/BkmB,EAAKuY,OAAOz+B,GAAO,GAAGzJ,MAAwD,cAA/B2vB,EAAKuY,OAAOz+B,GAAO,GAAGzJ,QAA0B2vB,EAAKuY,OAAOz+B,GAAO,GAAG2tQ,UAAW,CACnID,EAAaxnP,EAAKuY,OAAOz+B,GAAO,GAChC,KACF,CAEF,OAiBA,SAAegjE,GAEb,IAAK0qM,EACH,OAAOjK,EAAIzgM,GAYb,GAAI0qM,EAAWE,UACb,OAAOC,EAAY7qM,GAWrB,OATA44K,EAAU11N,EAAKg6M,OAAO0b,QAAQjyP,SAASs/Q,GAAoB/iP,EAAKi+O,eAAe,CAC7E/kO,MAAOsuO,EAAW1lO,IAClBA,IAAK9hB,EAAKnxB,UAEZi9I,EAAQ6kF,MAAM,YACd7kF,EAAQ6kF,MAAM,eACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK,YACNssC,CACT,EAkBA,SAASA,EAAM7gM,GAKb,OAAa,KAATA,EACKgvE,EAAQ0vH,QAAQoM,GAAmBC,EAAYnyB,EAAUmyB,EAAaF,EAAtE77H,CAAmFhvE,GAI/E,KAATA,EACKgvE,EAAQ0vH,QAAQsM,GAAwBD,EAAYnyB,EAAUqyB,EAAmBJ,EAAjF77H,CAA8FhvE,GAIhG44K,EAAUmyB,EAAW/qM,GAAQ6qM,EAAY7qM,EAClD,CAgBA,SAASirM,EAAiBjrM,GACxB,OAAOgvE,EAAQ0vH,QAAQwM,GAA6BH,EAAYF,EAAzD77H,CAAsEhvE,EAC/E,CAkBA,SAAS+qM,EAAW/qM,GAElB,OAAOyhJ,EAAGzhJ,EACZ,CAkBA,SAAS6qM,EAAY7qM,GAEnB,OADA0qM,EAAWC,WAAY,EAChBlK,EAAIzgM,EACb,CACF,EA9QEuS,UAiCF,SAA2B92C,EAAQrkC,GACjC,IAGIvJ,EAEA+oE,EAEAE,EAEAupL,EATArjP,EAAQy+B,EAAO70C,OACfulC,EAAS,EAWb,KAAOnvB,KAEL,GADAnP,EAAQ4tC,EAAOz+B,GAAO,GAClB45D,EAAM,CAER,GAAmB,SAAf/oE,EAAM0F,MAAkC,cAAf1F,EAAM0F,MAAwB1F,EAAM+8Q,UAC/D,MAKuB,UAArBnvO,EAAOz+B,GAAO,IAAiC,cAAfnP,EAAM0F,OACxC1F,EAAM+8Q,WAAY,EAEtB,MAAO,GAAI9zM,GACT,GAAyB,UAArBr7B,EAAOz+B,GAAO,KAAkC,eAAfnP,EAAM0F,MAAwC,cAAf1F,EAAM0F,QAA0B1F,EAAM88Q,YACxG/zM,EAAO55D,EACY,cAAfnP,EAAM0F,MAAsB,CAC9B44B,EAAS,EACT,KACF,MAEsB,aAAft+B,EAAM0F,OACfujE,EAAQ95D,GAGZ,MAAM4pI,EAAQ,CACZrzI,KAA+B,cAAzBkoC,EAAOm7B,GAAM,GAAGrjE,KAAuB,OAAS,QACtD6oC,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOm7B,GAAM,GAAGx6B,OACzC4I,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOA,EAAO70C,OAAS,GAAG,GAAGo+C,MAEhDxvB,EAAQ,CACZjiB,KAAM,QACN6oC,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOm7B,GAAM,GAAGx6B,OACzC4I,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOq7B,GAAO,GAAG9xB,MAEpC/wB,EAAO,CACX1gB,KAAM,YACN6oC,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOm7B,EAAOzqC,EAAS,GAAG,GAAG6Y,KACtDA,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOq7B,EAAQ,GAAG,GAAG16B,QAwB9C,OAtBAikN,EAAQ,CAAC,CAAC,QAASz5G,EAAOxvI,GAAU,CAAC,QAASoe,EAAOpe,IAGrDipP,EAAQnqO,GAAKmqO,EAAO5kN,EAAO75B,MAAMg1D,EAAO,EAAGA,EAAOzqC,EAAS,IAG3Dk0N,EAAQnqO,GAAKmqO,EAAO,CAAC,CAAC,QAASpsO,EAAM7c,KAKrCipP,EAAQnqO,GAAKmqO,EAAOkhB,GAAWnqQ,EAAQ8lO,OAAOogC,WAAW6N,WAAWxK,KAAMllO,EAAO75B,MAAMg1D,EAAOzqC,EAAS,EAAG2qC,EAAQ,GAAI1/D,IAGtHipP,EAAQnqO,GAAKmqO,EAAO,CAAC,CAAC,OAAQpsO,EAAM7c,GAAUqkC,EAAOq7B,EAAQ,GAAIr7B,EAAOq7B,EAAQ,GAAI,CAAC,OAAQthD,EAAOpe,KAGpGipP,EAAQnqO,GAAKmqO,EAAO5kN,EAAO75B,MAAMk1D,EAAQ,IAGzCupL,EAAQnqO,GAAKmqO,EAAO,CAAC,CAAC,OAAQz5G,EAAOxvI,KACrCq8B,GAAOgI,EAAQm7B,EAAMn7B,EAAO70C,OAAQy5P,GAC7B5kN,CACT,EA5GE8lO,WAiBF,SAA4B9lO,GAC1B,IAAIz+B,GAAS,EACb,OAASA,EAAQy+B,EAAO70C,QAAQ,CAC9B,MAAMiH,EAAQ4tC,EAAOz+B,GAAO,GACT,eAAfnP,EAAM0F,MAAwC,cAAf1F,EAAM0F,MAAuC,aAAf1F,EAAM0F,OAErEkoC,EAAOhI,OAAOz2B,EAAQ,EAAkB,eAAfnP,EAAM0F,KAAwB,EAAI,GAC3D1F,EAAM0F,KAAO,OACbyJ,IAEJ,CACA,OAAOy+B,CACT,GAzBMqvO,GAAoB,CACxBtM,SA8QF,SAA0BxvH,EAASyyE,EAAIg/C,GACrC,OAYA,SAAuBzgM,GAKrB,OAJAgvE,EAAQ6kF,MAAM,YACd7kF,EAAQ6kF,MAAM,kBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,kBACN62C,CACT,EAYA,SAASA,EAAeprM,GACtB,OAAOi+L,GAA0Bj+L,GAAQgmM,GAAkBh3H,EAASq8H,EAA3BrF,CAAyChmM,GAAQqrM,EAAarrM,EACzG,CAYA,SAASqrM,EAAarrM,GACpB,OAAa,KAATA,EACKsrM,EAAYtrM,GAEdilM,GAAmBj2H,EAASu8H,EAA0BC,EAA4B,sBAAuB,6BAA8B,mCAAoC,yBAA0B,4BAA6B,GAAlOvG,CAAsOjlM,EAC/O,CAYA,SAASurM,EAAyBvrM,GAChC,OAAOi+L,GAA0Bj+L,GAAQgmM,GAAkBh3H,EAASy8H,EAA3BzF,CAA4ChmM,GAAQsrM,EAAYtrM,EAC3G,CAYA,SAASwrM,EAA2BxrM,GAClC,OAAOygM,EAAIzgM,EACb,CAYA,SAASyrM,EAAgBzrM,GACvB,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACzB+lM,GAAa/2H,EAAS08H,EAAoBjL,EAAK,gBAAiB,sBAAuB,sBAAvFsF,CAA8G/lM,GAEhHsrM,EAAYtrM,EACrB,CAYA,SAAS0rM,EAAmB1rM,GAC1B,OAAOi+L,GAA0Bj+L,GAAQgmM,GAAkBh3H,EAASs8H,EAA3BtF,CAAwChmM,GAAQsrM,EAAYtrM,EACvG,CAYA,SAASsrM,EAAYtrM,GACnB,OAAa,KAATA,GACFgvE,EAAQ6kF,MAAM,kBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,kBACbvlF,EAAQulF,KAAK,YACN9S,GAEFg/C,EAAIzgM,EACb,CACF,GA9YMgrM,GAAyB,CAC7BxM,SAmZF,SAA+BxvH,EAASyyE,EAAIg/C,GAC1C,MAAMv9O,EAAO1Q,KACb,OAYA,SAAuBwtD,GACrB,OAAO4lM,GAAa/9O,KAAK3E,EAAM8rH,EAAS28H,EAAoBC,EAAsB,YAAa,kBAAmB,kBAA3GhG,CAA8H5lM,EACvI,EAYA,SAAS2rM,EAAmB3rM,GAC1B,OAAO98C,EAAKg6M,OAAO0b,QAAQjyP,SAASs/Q,GAAoB/iP,EAAKi+O,eAAej+O,EAAKuY,OAAOvY,EAAKuY,OAAO70C,OAAS,GAAG,IAAIgb,MAAM,GAAI,KAAO6/M,EAAGzhJ,GAAQygM,EAAIzgM,EACtJ,CAYA,SAAS4rM,EAAqB5rM,GAC5B,OAAOygM,EAAIzgM,EACb,CACF,GA7bMkrM,GAA8B,CAClC1M,SAkcF,SAAoCxvH,EAASyyE,EAAIg/C,GAC/C,OAcA,SAAiCzgM,GAO/B,OAJAgvE,EAAQ6kF,MAAM,aACd7kF,EAAQ6kF,MAAM,mBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,mBACNs3C,CACT,EAcA,SAASA,EAAuB7rM,GAC9B,OAAa,KAATA,GACFgvE,EAAQ6kF,MAAM,mBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,mBACbvlF,EAAQulF,KAAK,aACN9S,GAEFg/C,EAAIzgM,EACb,CACF,GC3gBO,MAAM8rM,GAAkB,CAC7Bj8Q,KAAM,kBACN2uQ,SAQF,SAAiCxvH,EAASyyE,EAAIg/C,GAC5C,MAAMv9O,EAAO1Q,KACb,OAYA,SAAewtD,GAKb,OAJAgvE,EAAQ6kF,MAAM,cACd7kF,EAAQ6kF,MAAM,oBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,oBACN39J,CACT,EAYA,SAASA,EAAKoJ,GACZ,OAAa,KAATA,GACFgvE,EAAQ6kF,MAAM,eACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK,cACNssC,GAEFJ,EAAIzgM,EACb,CA6BA,SAAS6gM,EAAM7gM,GAMb,OAAgB,KAATA,GAAe,2BAA4B98C,EAAKg6M,OAAOogC,WAAamD,EAAIzgM,GAAQyhJ,EAAGzhJ,EAC5F,CACF,EArFEuhM,WAAYkJ,GAASlJ,YCUhB,SAASwK,GAAkB/rM,GAChC,OACW,OAATA,GACAi+L,GAA0Bj+L,IAC1Bo+L,GAAkBp+L,GAEX,EAELm+L,GAAmBn+L,GACd,OADT,CAGF,CClBO,MAAMgsM,GAAY,CACvBn8Q,KAAM,YACN2uQ,SA+HF,SAA2BxvH,EAASyyE,GAClC,MAAMwqD,EAAmBz5P,KAAK0qN,OAAOogC,WAAW2O,iBAAiBtL,KAC3D9D,EAAWrqP,KAAKqqP,SAChBU,EAASwO,GAAkBlP,GAGjC,IAAIt9I,EACJ,OAYA,SAAev/C,GAGb,OAFAu/C,EAASv/C,EACTgvE,EAAQ6kF,MAAM,qBACPwwC,EAAOrkM,EAChB,EAYA,SAASqkM,EAAOrkM,GACd,GAAIA,IAASu/C,EAEX,OADAyvB,EAAQuvH,QAAQv+L,GACTqkM,EAET,MAAMx2Q,EAAQmhJ,EAAQulF,KAAK,qBAGrBssC,EAAQkL,GAAkB/rM,GAI1BpJ,GAAQiqM,GAAmB,IAAVA,GAAetD,GAAU0O,EAAiBtlR,SAASq5E,GACpElJ,GAASymM,GAAqB,IAAXA,GAAgBsD,GAASoL,EAAiBtlR,SAASk2Q,GAG5E,OAFAhvQ,EAAMq+Q,MAAQrgP,QAAmB,KAAX0zF,EAAgB3oD,EAAOA,IAAS2mM,IAAWzmM,IACjEjpE,EAAMs+Q,OAAStgP,QAAmB,KAAX0zF,EAAgBzoD,EAAQA,IAAU+pM,IAAUjqM,IAC5D6qJ,EAAGzhJ,EACZ,CACF,EAnLEuhM,WASF,SAA6B9lO,EAAQrkC,GACnC,IAEIw/D,EAEAgwE,EAEA3yH,EAEAm4P,EAEAC,EAEA9mC,EAEA+mC,EAEAngP,EAhBAnvB,GAAS,EAsBb,OAASA,EAAQy+B,EAAO70C,QAEtB,GAAyB,UAArB60C,EAAOz+B,GAAO,IAA4C,sBAA1By+B,EAAOz+B,GAAO,GAAGzJ,MAAgCkoC,EAAOz+B,GAAO,GAAGmvQ,OAIpG,IAHAv1M,EAAO55D,EAGA45D,KAEL,GAAwB,SAApBn7B,EAAOm7B,GAAM,IAA0C,sBAAzBn7B,EAAOm7B,GAAM,GAAGrjE,MAAgCkoC,EAAOm7B,GAAM,GAAGs1M,OAElG90Q,EAAQ+pQ,eAAe1lO,EAAOm7B,GAAM,IAAI/Z,WAAW,KAAOzlD,EAAQ+pQ,eAAe1lO,EAAOz+B,GAAO,IAAI6/C,WAAW,GAAI,CAKhH,IAAKphB,EAAOm7B,GAAM,GAAGu1M,QAAU1wO,EAAOz+B,GAAO,GAAGkvQ,SAAWzwO,EAAOz+B,GAAO,GAAGgoC,IAAI7Y,OAASsP,EAAOz+B,GAAO,GAAGo/B,MAAMjQ,QAAU,MAAQsP,EAAOm7B,GAAM,GAAG5xB,IAAI7Y,OAASsP,EAAOm7B,GAAM,GAAGx6B,MAAMjQ,OAASsP,EAAOz+B,GAAO,GAAGgoC,IAAI7Y,OAASsP,EAAOz+B,GAAO,GAAGo/B,MAAMjQ,QAAU,GAC3P,SAIFo5M,EAAM9pM,EAAOm7B,GAAM,GAAG5xB,IAAI7Y,OAASsP,EAAOm7B,GAAM,GAAGx6B,MAAMjQ,OAAS,GAAKsP,EAAOz+B,GAAO,GAAGgoC,IAAI7Y,OAASsP,EAAOz+B,GAAO,GAAGo/B,MAAMjQ,OAAS,EAAI,EAAI,EAC7I,MAAMiQ,EAAQ3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOm7B,GAAM,GAAG5xB,KAC1CA,EAAMv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOz+B,GAAO,GAAGo/B,OAC/CmwO,GAAUnwO,GAAQmpM,GAClBgnC,GAAUvnO,EAAKugM,GACf6mC,EAAkB,CAChB74Q,KAAMgyO,EAAM,EAAI,iBAAmB,mBACnCnpM,QACA4I,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOm7B,GAAM,GAAG5xB,MAEzCqnO,EAAkB,CAChB94Q,KAAMgyO,EAAM,EAAI,iBAAmB,mBACnCnpM,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOz+B,GAAO,GAAGo/B,OAC1C4I,OAEF/wB,EAAO,CACL1gB,KAAMgyO,EAAM,EAAI,aAAe,eAC/BnpM,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOm7B,GAAM,GAAG5xB,KACzCA,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAG6d,EAAOz+B,GAAO,GAAGo/B,QAE1CwqG,EAAQ,CACNrzI,KAAMgyO,EAAM,EAAI,SAAW,WAC3BnpM,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAGwuP,EAAgBhwO,OACzC4I,IAAKv4C,OAAOmxB,OAAO,CAAC,EAAGyuP,EAAgBrnO,MAEzCvJ,EAAOm7B,GAAM,GAAG5xB,IAAMv4C,OAAOmxB,OAAO,CAAC,EAAGwuP,EAAgBhwO,OACxDX,EAAOz+B,GAAO,GAAGo/B,MAAQ3vC,OAAOmxB,OAAO,CAAC,EAAGyuP,EAAgBrnO,KAC3DsnO,EAAa,GAGT7wO,EAAOm7B,GAAM,GAAG5xB,IAAI7Y,OAASsP,EAAOm7B,GAAM,GAAGx6B,MAAMjQ,SACrDmgP,EAAap2P,GAAKo2P,EAAY,CAAC,CAAC,QAAS7wO,EAAOm7B,GAAM,GAAIx/D,GAAU,CAAC,OAAQqkC,EAAOm7B,GAAM,GAAIx/D,MAIhGk1Q,EAAap2P,GAAKo2P,EAAY,CAAC,CAAC,QAAS1lI,EAAOxvI,GAAU,CAAC,QAASg1Q,EAAiBh1Q,GAAU,CAAC,OAAQg1Q,EAAiBh1Q,GAAU,CAAC,QAAS6c,EAAM7c,KAKnJk1Q,EAAap2P,GAAKo2P,EAAY/K,GAAWnqQ,EAAQ8lO,OAAOogC,WAAW6N,WAAWxK,KAAMllO,EAAO75B,MAAMg1D,EAAO,EAAG55D,GAAQ5F,IAGnHk1Q,EAAap2P,GAAKo2P,EAAY,CAAC,CAAC,OAAQr4P,EAAM7c,GAAU,CAAC,QAASi1Q,EAAiBj1Q,GAAU,CAAC,OAAQi1Q,EAAiBj1Q,GAAU,CAAC,OAAQwvI,EAAOxvI,KAG7IqkC,EAAOz+B,GAAO,GAAGgoC,IAAI7Y,OAASsP,EAAOz+B,GAAO,GAAGo/B,MAAMjQ,QACvDA,EAAS,EACTmgP,EAAap2P,GAAKo2P,EAAY,CAAC,CAAC,QAAS7wO,EAAOz+B,GAAO,GAAI5F,GAAU,CAAC,OAAQqkC,EAAOz+B,GAAO,GAAI5F,MAEhG+0B,EAAS,EAEXsH,GAAOgI,EAAQm7B,EAAO,EAAG55D,EAAQ45D,EAAO,EAAG01M,GAC3CtvQ,EAAQ45D,EAAO01M,EAAW1lR,OAASulC,EAAS,EAC5C,KACF,CAMNnvB,GAAS,EACT,OAASA,EAAQy+B,EAAO70C,QACQ,sBAA1B60C,EAAOz+B,GAAO,GAAGzJ,OACnBkoC,EAAOz+B,GAAO,GAAGzJ,KAAO,QAG5B,OAAOkoC,CACT,GAuEA,SAAS8wO,GAAU96M,EAAOtlC,GACxBslC,EAAMw3C,QAAU98E,EAChBslC,EAAMtlC,QAAUA,EAChBslC,EAAMywM,cAAgB/1O,CACxB,CC7MO,MAAMqgP,GAAW,CACtB38Q,KAAM,WACN2uQ,SAOF,SAA0BxvH,EAASyyE,EAAIg/C,GACrC,IAAIljP,EAAO,EACX,OAcA,SAAeyiD,GAMb,OALAgvE,EAAQ6kF,MAAM,YACd7kF,EAAQ6kF,MAAM,kBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,kBACbvlF,EAAQ6kF,MAAM,oBACPj9J,CACT,EAcA,SAASA,EAAKoJ,GACZ,OAAIw9L,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GACTysM,GAEI,KAATzsM,EACKygM,EAAIzgM,GAEN0sM,EAAW1sM,EACpB,CAcA,SAASysM,EAAmBzsM,GAE1B,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAe09L,GAAkB19L,IAEjEziD,EAAO,EACAovP,EAAyB3sM,IAE3B0sM,EAAW1sM,EACpB,CAcA,SAAS2sM,EAAyB3sM,GAChC,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChBziD,EAAO,EACAqvP,IAIK,KAAT5sM,GAAwB,KAATA,GAAwB,KAATA,GAAe09L,GAAkB19L,KAAUziD,IAAS,IACrFyxH,EAAQuvH,QAAQv+L,GACT2sM,IAETpvP,EAAO,EACAmvP,EAAW1sM,GACpB,CAYA,SAAS4sM,EAAU5sM,GACjB,OAAa,KAATA,GACFgvE,EAAQulF,KAAK,oBACbvlF,EAAQ6kF,MAAM,kBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,kBACbvlF,EAAQulF,KAAK,YACN9S,GAII,OAATzhJ,GAA0B,KAATA,GAAwB,KAATA,GAAe49L,GAAa59L,GACvDygM,EAAIzgM,IAEbgvE,EAAQuvH,QAAQv+L,GACT4sM,EACT,CAYA,SAASF,EAAW1sM,GAClB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACT6sM,GAELlP,GAAW39L,IACbgvE,EAAQuvH,QAAQv+L,GACT0sM,GAEFjM,EAAIzgM,EACb,CAYA,SAAS6sM,EAAiB7sM,GACxB,OAAO09L,GAAkB19L,GAAQ8sM,EAAW9sM,GAAQygM,EAAIzgM,EAC1D,CAYA,SAAS8sM,EAAW9sM,GAClB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChBziD,EAAO,EACAsvP,GAEI,KAAT7sM,GAEFgvE,EAAQulF,KAAK,oBAAoBhhO,KAAO,gBACxCy7I,EAAQ6kF,MAAM,kBACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,kBACbvlF,EAAQulF,KAAK,YACN9S,GAEFsrD,EAAW/sM,EACpB,CAcA,SAAS+sM,EAAW/sM,GAElB,IAAc,KAATA,GAAe09L,GAAkB19L,KAAUziD,IAAS,GAAI,CAC3D,MAAMhd,EAAgB,KAATy/D,EAAc+sM,EAAaD,EAExC,OADA99H,EAAQuvH,QAAQv+L,GACTz/D,CACT,CACA,OAAOkgQ,EAAIzgM,EACb,CACF,GC1NO,MAAMgtM,GAAW,CACtBn9Q,KAAM,WACN2uQ,SAOF,SAA0BxvH,EAASyyE,EAAIg/C,GACrC,MAAMv9O,EAAO1Q,KAEb,IAAI+sG,EAEAviH,EAEAsmQ,EACJ,OAYA,SAAetjM,GAIb,OAHAgvE,EAAQ6kF,MAAM,YACd7kF,EAAQ6kF,MAAM,gBACd7kF,EAAQuvH,QAAQv+L,GACTpJ,CACT,EAgBA,SAASA,EAAKoJ,GACZ,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTwnM,GAEI,KAATxnM,GACFgvE,EAAQuvH,QAAQv+L,GACTynM,GAEI,KAATznM,GACFgvE,EAAQuvH,QAAQv+L,GACTitM,GAILzP,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GACTktM,GAEFzM,EAAIzgM,EACb,CAgBA,SAASwnM,EAAgBxnM,GACvB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACT2nM,GAEI,KAAT3nM,GACFgvE,EAAQuvH,QAAQv+L,GAChBhjE,EAAQ,EACD4qQ,GAELpK,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GACTgqC,GAEFy2J,EAAIzgM,EACb,CAYA,SAAS2nM,EAAkB3nM,GACzB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTmtM,GAEF1M,EAAIzgM,EACb,CAYA,SAAS8pC,EAAQ9pC,GACf,OAAa,OAATA,EACKygM,EAAIzgM,GAEA,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTotM,GAELpP,GAAmBh+L,IACrBsjM,EAAcx5J,EACPujK,EAAiBrtM,KAE1BgvE,EAAQuvH,QAAQv+L,GACT8pC,EACT,CAYA,SAASsjK,EAAaptM,GACpB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTmtM,GAEFrjK,EAAQ9pC,EACjB,CAYA,SAASmtM,EAAWntM,GAClB,OAAgB,KAATA,EAAch7B,EAAIg7B,GAAiB,KAATA,EAAcotM,EAAaptM,GAAQ8pC,EAAQ9pC,EAC9E,CAYA,SAAS4nM,EAAgB5nM,GACvB,MAAMj3E,EAAQ,SACd,OAAIi3E,IAASj3E,EAAM8zD,WAAW7/C,MAC5BgyI,EAAQuvH,QAAQv+L,GACCj3E,IAAViU,EAAyBswQ,EAAQ1F,GAEnCnH,EAAIzgM,EACb,CAYA,SAASstM,EAAMttM,GACb,OAAa,OAATA,EACKygM,EAAIzgM,GAEA,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTutM,GAELvP,GAAmBh+L,IACrBsjM,EAAcgK,EACPD,EAAiBrtM,KAE1BgvE,EAAQuvH,QAAQv+L,GACTstM,EACT,CAYA,SAASC,EAAWvtM,GAClB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTwtM,GAEFF,EAAMttM,EACf,CAYA,SAASwtM,EAASxtM,GAChB,OAAa,KAATA,EACKh7B,EAAIg7B,GAEA,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTwtM,GAEFF,EAAMttM,EACf,CAYA,SAASgqC,EAAYhqC,GACnB,OAAa,OAATA,GAA0B,KAATA,EACZh7B,EAAIg7B,GAETg+L,GAAmBh+L,IACrBsjM,EAAct5J,EACPqjK,EAAiBrtM,KAE1BgvE,EAAQuvH,QAAQv+L,GACTgqC,EACT,CAYA,SAASijK,EAAYjtM,GACnB,OAAa,OAATA,EACKygM,EAAIzgM,GAEA,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTytM,GAELzP,GAAmBh+L,IACrBsjM,EAAc2J,EACPI,EAAiBrtM,KAE1BgvE,EAAQuvH,QAAQv+L,GACTitM,EACT,CAYA,SAASQ,EAAiBztM,GACxB,OAAgB,KAATA,EAAch7B,EAAIg7B,GAAQitM,EAAYjtM,EAC/C,CAYA,SAASynM,EAAcznM,GAErB,OAAIw9L,GAAWx9L,IACbgvE,EAAQuvH,QAAQv+L,GACT0tM,GAEFjN,EAAIzgM,EACb,CAYA,SAAS0tM,EAAS1tM,GAEhB,OAAa,KAATA,GAAe09L,GAAkB19L,IACnCgvE,EAAQuvH,QAAQv+L,GACT0tM,GAEFC,EAAgB3tM,EACzB,CAYA,SAAS2tM,EAAgB3tM,GACvB,OAAIg+L,GAAmBh+L,IACrBsjM,EAAcqK,EACPN,EAAiBrtM,IAEtBk+L,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACT2tM,GAEF3oO,EAAIg7B,EACb,CAYA,SAASktM,EAAQltM,GAEf,OAAa,KAATA,GAAe09L,GAAkB19L,IACnCgvE,EAAQuvH,QAAQv+L,GACTktM,GAEI,KAATltM,GAAwB,KAATA,GAAei+L,GAA0Bj+L,GACnD4tM,EAAe5tM,GAEjBygM,EAAIzgM,EACb,CAYA,SAAS4tM,EAAe5tM,GACtB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACTh7B,GAII,KAATg7B,GAAwB,KAATA,GAAew9L,GAAWx9L,IAC3CgvE,EAAQuvH,QAAQv+L,GACT6tM,GAEL7P,GAAmBh+L,IACrBsjM,EAAcsK,EACPP,EAAiBrtM,IAEtBk+L,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACT4tM,GAEF5oO,EAAIg7B,EACb,CAYA,SAAS6tM,EAAqB7tM,GAE5B,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAe09L,GAAkB19L,IAChFgvE,EAAQuvH,QAAQv+L,GACT6tM,GAEFC,EAA0B9tM,EACnC,CAaA,SAAS8tM,EAA0B9tM,GACjC,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GACT+tM,GAEL/P,GAAmBh+L,IACrBsjM,EAAcwK,EACPT,EAAiBrtM,IAEtBk+L,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACT8tM,GAEFF,EAAe5tM,EACxB,CAaA,SAAS+tM,EAA4B/tM,GACnC,OAAa,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACzDygM,EAAIzgM,GAEA,KAATA,GAAwB,KAATA,GACjBgvE,EAAQuvH,QAAQv+L,GAChBu/C,EAASv/C,EACFguM,GAELhQ,GAAmBh+L,IACrBsjM,EAAcyK,EACPV,EAAiBrtM,IAEtBk+L,GAAcl+L,IAChBgvE,EAAQuvH,QAAQv+L,GACT+tM,IAET/+H,EAAQuvH,QAAQv+L,GACTiuM,EACT,CAYA,SAASD,EAA4BhuM,GACnC,OAAIA,IAASu/C,GACXyvB,EAAQuvH,QAAQv+L,GAChBu/C,OAAS5yH,EACFuhR,GAEI,OAATluM,EACKygM,EAAIzgM,GAETg+L,GAAmBh+L,IACrBsjM,EAAc0K,EACPX,EAAiBrtM,KAE1BgvE,EAAQuvH,QAAQv+L,GACTguM,EACT,CAYA,SAASC,EAA8BjuM,GACrC,OAAa,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACxEygM,EAAIzgM,GAEA,KAATA,GAAwB,KAATA,GAAei+L,GAA0Bj+L,GACnD4tM,EAAe5tM,IAExBgvE,EAAQuvH,QAAQv+L,GACTiuM,EACT,CAaA,SAASC,EAAiCluM,GACxC,OAAa,KAATA,GAAwB,KAATA,GAAei+L,GAA0Bj+L,GACnD4tM,EAAe5tM,GAEjBygM,EAAIzgM,EACb,CAYA,SAASh7B,EAAIg7B,GACX,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,gBACbvlF,EAAQulF,KAAK,YACN9S,GAEFg/C,EAAIzgM,EACb,CAgBA,SAASqtM,EAAiBrtM,GAKxB,OAJAgvE,EAAQulF,KAAK,gBACbvlF,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACN45C,CACT,CAgBA,SAASA,EAAgBnuM,GAGvB,OAAOk+L,GAAcl+L,GAAQq+L,GAAarvH,EAASo/H,EAAuB,aAAclrP,EAAKg6M,OAAOogC,WAAWoD,QAAQC,KAAKh6Q,SAAS,qBAAkBgG,EAAY,EAAtI0xQ,CAAyIr+L,GAAQouM,EAAsBpuM,EACtM,CAgBA,SAASouM,EAAsBpuM,GAE7B,OADAgvE,EAAQ6kF,MAAM,gBACPyvC,EAAYtjM,EACrB,CACF,GCxpBO,MAAMquM,GAAiB,CAC5Bx+Q,KAAM,iBACN2uQ,SAQF,SAAgCxvH,EAASyyE,EAAIg/C,GAC3C,MAAMv9O,EAAO1Q,KACb,OAYA,SAAewtD,GAMb,OALAgvE,EAAQ6kF,MAAM,aACd7kF,EAAQ6kF,MAAM,eACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,eACbvlF,EAAQulF,KAAK,aACNssC,CACT,EAGA,SAASA,EAAM7gM,GAKb,OAAgB,KAATA,GAAe,2BAA4B98C,EAAKg6M,OAAOogC,WAAamD,EAAIzgM,GAAQyhJ,EAAGzhJ,EAC5F,CACF,EAtCEuhM,WAAYkJ,GAASlJ,YCJhB,MAAM+M,GAAkB,CAC7Bz+Q,KAAM,kBACN2uQ,SAOF,SAAiCxvH,EAASyyE,EAAIg/C,GAC5C,OAaA,SAAezgM,GAGb,OAFAgvE,EAAQ6kF,MAAM,mBACd7kF,EAAQuvH,QAAQv+L,GACT6gM,CACT,EAaA,SAASA,EAAM7gM,GACb,OAAIg+L,GAAmBh+L,IACrBgvE,EAAQulF,KAAK,mBACN9S,EAAGzhJ,IAELygM,EAAIzgM,EACb,CACF,GC5CO,MAAMuuM,GAAW,CACtB1+Q,KAAM,WACN2uQ,SAmEF,SAA0BxvH,EAASyyE,EAAIg/C,GAErC,IAEIljP,EAEA1vB,EAJA67Q,EAAW,EAKf,OAcA,SAAe1pM,GAGb,OAFAgvE,EAAQ6kF,MAAM,YACd7kF,EAAQ6kF,MAAM,oBACPmzC,EAAahnM,EACtB,EAYA,SAASgnM,EAAahnM,GACpB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChB0pM,IACO1C,IAETh4H,EAAQulF,KAAK,oBACNi6C,EAAQxuM,GACjB,CAYA,SAASwuM,EAAQxuM,GAEf,OAAa,OAATA,EACKygM,EAAIzgM,GAMA,KAATA,GACFgvE,EAAQ6kF,MAAM,SACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,SACNi6C,GAII,KAATxuM,GACFnyE,EAAQmhJ,EAAQ6kF,MAAM,oBACtBt2M,EAAO,EACAksP,EAAczpM,IAEnBg+L,GAAmBh+L,IACrBgvE,EAAQ6kF,MAAM,cACd7kF,EAAQuvH,QAAQv+L,GAChBgvE,EAAQulF,KAAK,cACNi6C,IAITx/H,EAAQ6kF,MAAM,gBACP5mO,EAAK+yE,GACd,CAYA,SAAS/yE,EAAK+yE,GACZ,OAAa,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAeg+L,GAAmBh+L,IACpEgvE,EAAQulF,KAAK,gBACNi6C,EAAQxuM,KAEjBgvE,EAAQuvH,QAAQv+L,GACT/yE,EACT,CAYA,SAASw8Q,EAAczpM,GAErB,OAAa,KAATA,GACFgvE,EAAQuvH,QAAQv+L,GAChBziD,IACOksP,GAILlsP,IAASmsP,GACX16H,EAAQulF,KAAK,oBACbvlF,EAAQulF,KAAK,YACN9S,EAAGzhJ,KAIZnyE,EAAM0F,KAAO,eACNtG,EAAK+yE,GACd,CACF,EA7MExpD,QAMF,SAAyBilB,GACvB,IAGIz+B,EAEA62N,EALA46C,EAAgBhzO,EAAO70C,OAAS,EAChC8nR,EAAiB,EAOrB,IAAwC,eAAnCjzO,EAAOizO,GAAgB,GAAGn7Q,MAA4D,UAAnCkoC,EAAOizO,GAAgB,GAAGn7Q,QAAwD,eAAlCkoC,EAAOgzO,GAAe,GAAGl7Q,MAA2D,UAAlCkoC,EAAOgzO,GAAe,GAAGl7Q,MAIjL,IAHAyJ,EAAQ0xQ,IAGC1xQ,EAAQyxQ,GACf,GAA8B,iBAA1BhzO,EAAOz+B,GAAO,GAAGzJ,KAAyB,CAE5CkoC,EAAOizO,GAAgB,GAAGn7Q,KAAO,kBACjCkoC,EAAOgzO,GAAe,GAAGl7Q,KAAO,kBAChCm7Q,GAAkB,EAClBD,GAAiB,EACjB,KACF,CAKJzxQ,EAAQ0xQ,EAAiB,EACzBD,IACA,OAASzxQ,GAASyxQ,QACF9hR,IAAVknO,EACE72N,IAAUyxQ,GAA2C,eAA1BhzO,EAAOz+B,GAAO,GAAGzJ,OAC9CsgO,EAAQ72N,GAEDA,IAAUyxQ,GAA2C,eAA1BhzO,EAAOz+B,GAAO,GAAGzJ,OACrDkoC,EAAOo4L,GAAO,GAAGtgO,KAAO,eACpByJ,IAAU62N,EAAQ,IACpBp4L,EAAOo4L,GAAO,GAAG7uL,IAAMvJ,EAAOz+B,EAAQ,GAAG,GAAGgoC,IAC5CvJ,EAAOhI,OAAOogM,EAAQ,EAAG72N,EAAQ62N,EAAQ,GACzC46C,GAAiBzxQ,EAAQ62N,EAAQ,EACjC72N,EAAQ62N,EAAQ,GAElBA,OAAQlnO,GAGZ,OAAO8uC,CACT,EAlDEohO,SAwDF,SAAkB78L,GAEhB,OAAgB,KAATA,GAA+D,oBAAhDxtD,KAAKipB,OAAOjpB,KAAKipB,OAAO70C,OAAS,GAAG,GAAG2M,IAC/D,GC9CO,MAAMzN,GAAW,CACtB,GAAMiuG,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMA,GACN,GAAMgxK,IAIKpG,GAAiB,CAC5B,GAAMxlB,IAIKioB,GAAc,CACzB,EAAE,GAAIwF,GACN,EAAE,GAAIA,GACN,GAAMA,IAIKxG,GAAO,CAClB,GAAM2G,GACN,GAAM7C,GACN,GAAM,CAACgD,GAAiBhD,IACxB,GAAMmD,GACN,GAAMH,GACN,GAAMhD,GACN,GAAMmF,GACN,IAAOA,IAIIlrP,GAAS,CACpB,GAAMksP,GACN,GAAME,IAIKt2P,GAAO,CAClB,EAAE,GAAIu2P,GACN,EAAE,GAAIA,GACN,EAAE,GAAIA,GACN,GAAMsB,GACN,GAAMzB,GACN,GAAM2B,GACN,GAAM,CAACQ,GAAUQ,IACjB,GAAMqB,GACN,GAAM,CAACC,GAAiB/D,IACxB,GAAME,GACN,GAAMuB,GACN,GAAMuC,IAIKpD,GAAa,CACxBxK,KAAM,CAACqL,GAAW2C,KAIP1C,GAAmB,CAC9BtL,KAAM,CAAC,GAAI,KAIAD,GAAU,CACrBC,KAAM,ICpFD,SAAS3+O,GAAMvP,GACpB,MACM6qP,ExCHD,SAA2B1hC,GAEhC,MAAMr7I,EAAM,CAAC,EACb,IAAIvjF,GAAS,EAEb,OAASA,EAAQ4+N,EAAWh1O,QAC1Bu2Q,GAAgB58K,EAAKq7I,EAAW5+N,IAGlC,OAAOujF,CACT,CwCLIquL,CAAkB,CAACC,MAHJp8P,GAAW,CAAC,GAGwBmpN,YAAc,KAG7DsB,EAAS,CACb0b,QAAS,GACTjgK,KAAM,CAAC,EACP2kL,aACApxQ,QAASk9B,EAAOl9B,IAChBpG,SAAUsjC,EAAOtjC,IACjBs6Q,KAAMh3O,EAAOg3O,IACbjiP,OAAQiL,EAAOjL,IACflK,KAAMmV,EAAOnV,KAEf,OAAOipN,EAKP,SAAS9zM,EAAO4xO,GACd,OAEA,SAAiB5zQ,GACf,OAAO+6Q,GAAgBjlC,EAAQ89B,EAAS5zQ,EAC1C,CACF,CACF,CClCA,MAAMk8B,GAAS,cCDR,SAASwrP,GAAgC/lR,EAAOs8C,GACrD,MAAM26B,EAAO34B,OAAOsW,SAAS50D,EAAOs8C,GACpC,OAEA26B,EAAO,GAAc,KAATA,GAAeA,EAAO,IAAMA,EAAO,IAE/CA,EAAO,KAAOA,EAAO,KAErBA,EAAO,OAAUA,EAAO,OAExBA,EAAO,OAAUA,EAAO,OACJ,SAAZ,MAAPA,IAAiD,SAAZ,MAAPA,IAE/BA,EAAO,QACE,SAEF92C,OAAO6lP,cAAc/uM,EAC9B,CC7BA,MAAMgvM,GACJ,oEAwBF,SAASC,GAAOxZ,EAAI+E,EAAI0U,GACtB,GAAI1U,EAEF,OAAOA,EAKT,GAAa,KADA0U,EAAGryN,WAAW,GACV,CACf,MAAMwvL,EAAO6iC,EAAGryN,WAAW,GACrB00D,EAAe,MAAT86H,GAAyB,KAATA,EAC5B,OAAOyiC,GAAgCI,EAAGttQ,MAAM2vG,EAAM,EAAI,GAAIA,EAAM,GAAK,GAC3E,CACA,OAAO64J,GAA8B8E,IAAOzZ,CAC9C,CCqGA,MAAMvc,GAAM,CAAC,EAAEtxN,eAyBR,SAASunP,GAAapmR,EAAOqmR,EAAU38P,GAK5C,MAJwB,kBAAb28P,IACT38P,EAAU28P,EACVA,OAAWziR,GAcf,SAAkB8lB,GAEhB,MAAM2tF,EAAS,CACbs2C,WAAY,GACZ24H,eAAgB,CAAC,WAAY,WAAY,UAAW,YAAa,UACjEx7C,MAAO,CACL24C,SAAU8C,EAAOx/Q,IACjBy/Q,iBAAkBC,EAClBC,cAAeD,EACfE,WAAYJ,EAAO5hJ,GACnBq3I,WAAYuK,EAAOvK,GACnBwF,gBAAiBiF,EACjBnF,mBAAoBmF,EACpBnG,WAAYiG,EAAOK,GACnBC,oBAAqBv5M,EACrBw5M,oBAAqBx5M,EACrBuwM,aAAc0I,EAAOK,EAAUt5M,GAC/Bk4M,SAAUe,EAAOf,EAAUl4M,GAC3By5M,aAAcN,EACdviR,KAAMuiR,EACNO,cAAeP,EACfr2B,WAAYm2B,EAAOn2B,GACnB62B,4BAA6B35M,EAC7B45M,sBAAuB55M,EACvB65M,sBAAuB75M,EACvB85M,SAAUb,EAAOa,GACjB7B,gBAAiBgB,EAAOc,GACxBC,kBAAmBf,EAAOc,GAC1B/I,SAAUiI,EAAO96K,EAAMn+B,GACvBi6M,aAAcd,EACdxC,SAAUsC,EAAO96K,EAAMn+B,GACvBk6M,aAAcf,EACdnjO,MAAOijO,EAAOjjO,IACd72B,MAAO6gD,EACPvmE,KAAMw/Q,EAAOx/Q,IACb2vB,SAAU6vP,EAAO7vP,IACjB+wP,cAAeC,EACfC,YAAapB,EAAOv7K,GAAM48K,GAC1BC,cAAetB,EAAOv7K,IACtBvzE,UAAW8uP,EAAO9uP,IAClBy5C,UAAW42M,EACXC,gBAAiBz6M,EACjB06M,0BAA2B16M,EAC3B26M,oBAAqB36M,EACrB46M,cAAe3B,EAAO5hJ,GACtBwjJ,OAAQ5B,EAAO4B,IACfhN,cAAeoL,EAAOpL,KAExB3vC,KAAM,CACJm7C,WAAYyB,IACZC,mBAAoBC,EACpB7E,SAAU2E,IACV1B,cAAe6B,EACf/B,iBAAkBgC,EAClBxM,WAAYoM,IACZK,qBAAsBC,EACtBC,oCAAqCC,EACrCC,gCAAiCD,EACjCE,wBAAyBC,EACzBzI,WAAY8H,EAAOY,GACnBC,gBAAiBC,EACjBrC,oBAAqBsC,EACrBrC,oBAAqBsC,EACrBpC,cAAe0B,EACf7K,aAAcuK,EAAOiB,GACrB7D,SAAU4C,EAAOkB,GACjBvC,aAAc2B,EACdxkR,KAAMwkR,EACNt4B,WAAYg4B,IACZnB,4BAA6BsC,EAC7BrC,sBAAuBsC,EACvBrC,sBAAuBsC,EACvBrC,SAAUgB,IACV7C,gBAAiB6C,EAAOsB,GACxBpC,kBAAmBc,EAAOsB,GAC1BpL,SAAU8J,EAAOuB,GACjBpC,aAAcmB,EACdzE,SAAUmE,EAAOwB,GACjBpC,aAAckB,EACdplO,MAAO8kO,EAAOyB,GACdp9P,MAAOq9P,EACPC,UAAWC,EACXvI,WAAYwI,EACZljR,KAAMqhR,EAAO8B,GACbxzP,SAAU0xP,IACVT,YAAaS,IACbP,cAAeO,IACf3wP,UAAW2wP,IACXL,gBAAiBoC,EACjBnC,0BAA2BoC,EAC3BnC,oBAAqBoC,EACrB9f,SAAU+f,EACVpC,cAAeE,EAAOmC,GACtBC,0BAA2BC,EAC3BC,kBAAmBC,EACnBxC,OAAQC,IACRjN,cAAeiN,MAGnBwC,GAAUvzK,GAAS3tF,GAAW,CAAC,GAAGmhQ,iBAAmB,IAGrD,MAAM3mR,EAAO,CAAC,EACd,OAAO4mR,EAUP,SAASA,EAAQp4O,GAEf,IAAIy7N,EAAO,CACT3jQ,KAAM,OACNvK,SAAU,IAGZ,MAAMoO,EAAU,CACd+5J,MAAO,CAAC+lG,GACR4c,WAAY,GACZ1zK,SACAyzH,QACAU,OACAl+J,SACAm2C,SACAv/G,QAGI8mR,EAAY,GAClB,IAAI/2Q,GAAS,EACb,OAASA,EAAQy+B,EAAO70C,QAGtB,GAC4B,gBAA1B60C,EAAOz+B,GAAO,GAAGzJ,MACS,kBAA1BkoC,EAAOz+B,GAAO,GAAGzJ,KAEjB,GAAyB,UAArBkoC,EAAOz+B,GAAO,GAChB+2Q,EAAU79P,KAAKlZ,OACV,CAELA,EAAQg3Q,EAAYv4O,EADPs4O,EAAUn2N,MACW5gD,EACpC,CAIJ,IADAA,GAAS,IACAA,EAAQy+B,EAAO70C,QAAQ,CAC9B,MAAM4hG,EAAU4X,EAAO3kE,EAAOz+B,GAAO,IACjCk8O,GAAIrxN,KAAK2gE,EAAS/sD,EAAOz+B,GAAO,GAAGzJ,OACrCi1F,EAAQ/sD,EAAOz+B,GAAO,GAAGzJ,MAAMs0B,KAC7Bp7B,OAAOmxB,OACL,CACEujP,eAAgB1lO,EAAOz+B,GAAO,GAAGmkQ,gBAEnC/pQ,GAEFqkC,EAAOz+B,GAAO,GAGpB,CAGA,GAAI5F,EAAQ08Q,WAAWltR,OAAS,EAAG,CACjC,MAAM83N,EAAOtnN,EAAQ08Q,WAAW18Q,EAAQ08Q,WAAWltR,OAAS,IAC5C83N,EAAK,IAAMu1D,IACnBpsP,KAAKzwB,OAASzK,EAAW+xN,EAAK,GACxC,CA0BA,IAvBAw4C,EAAKvkP,SAAW,CACdypB,MAAOq1B,GACLh2B,EAAO70C,OAAS,EACZ60C,EAAO,GAAG,GAAGW,MACb,CACE+sE,KAAM,EACNF,OAAQ,EACR98E,OAAQ,IAGhB6Y,IAAKysB,GACHh2B,EAAO70C,OAAS,EACZ60C,EAAOA,EAAO70C,OAAS,GAAG,GAAGo+C,IAC7B,CACEmkE,KAAM,EACNF,OAAQ,EACR98E,OAAQ,KAMlBnvB,GAAS,IACAA,EAAQojG,EAAOs2C,WAAW9vJ,QACjCswQ,EAAO92J,EAAOs2C,WAAW15I,GAAOk6P,IAASA,EAE3C,OAAOA,CACT,CAQA,SAAS8c,EAAYv4O,EAAQW,EAAOx1C,GAClC,IAII64B,EAEAo8O,EAEAqY,EAEA9P,EAVApnQ,EAAQo/B,EAAQ,EAChB+3O,GAAoB,EACpBC,GAAa,EASjB,OAASp3Q,GAASpW,GAAQ,CACxB,MAAMyzC,EAAQoB,EAAOz+B,GACrB,OAAQq9B,EAAM,GAAG9mC,MACf,IAAK,gBACL,IAAK,cACL,IAAK,aACc,UAAb8mC,EAAM,GACR85O,IAEAA,IAEF/P,OAAWz3Q,EACX,MAEF,IAAK,kBACc,UAAb0tC,EAAM,MAEN5a,GACC2kP,GACA+P,GACAD,IAEDA,EAAsBl3Q,GAExBonQ,OAAWz3Q,GAEb,MAEF,IAAK,aACL,IAAK,gBACL,IAAK,iBACL,IAAK,iBACL,IAAK,2BAGH,MAEF,QACEy3Q,OAAWz3Q,EAGf,IACIwnR,GACa,UAAb95O,EAAM,IACY,mBAAlBA,EAAM,GAAG9mC,OACY,IAAtB4gR,GACc,SAAb95O,EAAM,KACa,kBAAlBA,EAAM,GAAG9mC,MACU,gBAAlB8mC,EAAM,GAAG9mC,MACb,CACA,GAAIksB,EAAU,CACZ,IAAI40P,EAAYr3Q,EAEhB,IADA6+P,OAAYlvQ,EACL0nR,KAAa,CAClB,MAAMC,EAAY74O,EAAO44O,GACzB,GACwB,eAAtBC,EAAU,GAAG/gR,MACS,oBAAtB+gR,EAAU,GAAG/gR,KACb,CACA,GAAqB,SAAjB+gR,EAAU,GAAe,SACzBzY,IACFpgO,EAAOogO,GAAW,GAAGtoQ,KAAO,kBAC5B6gR,GAAa,GAEfE,EAAU,GAAG/gR,KAAO,aACpBsoQ,EAAYwY,CACd,MAAO,GACiB,eAAtBC,EAAU,GAAG/gR,MACS,qBAAtB+gR,EAAU,GAAG/gR,MACS,+BAAtB+gR,EAAU,GAAG/gR,MACS,qBAAtB+gR,EAAU,GAAG/gR,MACS,mBAAtB+gR,EAAU,GAAG/gR,KAIb,KAEJ,CAEE2gR,KACErY,GAAaqY,EAAsBrY,KAErCp8O,EAAS80P,SAAU,GAIrB90P,EAASulB,IAAMv4C,OAAOmxB,OACpB,CAAC,EACDi+O,EAAYpgO,EAAOogO,GAAW,GAAGz/N,MAAQ/B,EAAM,GAAG2K,KAEpDvJ,EAAOhI,OAAOooO,GAAa7+P,EAAO,EAAG,CAAC,OAAQyiB,EAAU4a,EAAM,KAC9Dr9B,IACApW,GACF,CAGA,GAAsB,mBAAlByzC,EAAM,GAAG9mC,KAA2B,CAEtC,MAAMme,EAAO,CACXne,KAAM,WACNghR,SAAS,EACTn4O,MAAO3vC,OAAOmxB,OAAO,CAAC,EAAGyc,EAAM,GAAG+B,OAElC4I,SAAKr4C,GAEP8yB,EAAW/N,EACX+pB,EAAOhI,OAAOz2B,EAAO,EAAG,CAAC,QAAS0U,EAAM2oB,EAAM,KAC9Cr9B,IACApW,IACAstR,OAAsBvnR,EACtBy3Q,GAAW,CACb,CACF,CACF,CAEA,OADA3oO,EAAOW,GAAO,GAAGm4O,QAAUH,EACpBxtR,CACT,CAYA,SAAS0oR,EAAOlmP,EAAQorP,GACtB,OAAO59M,EAOP,SAASA,EAAK/oE,GACZgmO,EAAMhsM,KAAKrV,KAAM4W,EAAOv7B,GAAQA,GAC5B2mR,GAAKA,EAAI3sP,KAAKrV,KAAM3kB,EAC1B,CACF,CAMA,SAASwoE,IACP7jD,KAAK2+I,MAAMj7I,KAAK,CACd3iB,KAAM,WACNvK,SAAU,IAEd,CAcA,SAAS6qO,EAAM76L,EAAMnrC,EAAO4mR,GACXjiQ,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAEtBoC,SACfktB,KAAK8iB,GACdxmB,KAAK2+I,MAAMj7I,KAAK8iB,GAChBxmB,KAAKshQ,WAAW59P,KAAK,CAACroB,EAAO4mR,IAC7Bz7O,EAAKrmB,SAAW,CACdypB,MAAOq1B,GAAM5jE,EAAMuuC,OAEnB4I,SAAKr4C,EAET,CAUA,SAASwkR,EAAOqD,GACd,OAAO19M,EAOP,SAASA,EAAMjpE,GACT2mR,GAAKA,EAAI3sP,KAAKrV,KAAM3kB,GACxB0mO,EAAK1sM,KAAKrV,KAAM3kB,EAClB,CACF,CAYA,SAAS0mO,EAAK1mO,EAAO6mR,GACnB,MAAM17O,EAAOxmB,KAAK2+I,MAAMvzG,MAClBgZ,EAAOpkD,KAAKshQ,WAAWl2N,MAC7B,IAAKgZ,EACH,MAAM,IAAIj3D,MACR,iBACE9R,EAAM0F,KACN,MACAwiQ,EAAkB,CAChB35N,MAAOvuC,EAAMuuC,MACb4I,IAAKn3C,EAAMm3C,MAEb,yBAEC,GAAI4xB,EAAK,GAAGrjE,OAAS1F,EAAM0F,KAChC,GAAImhR,EACFA,EAAY7sP,KAAKrV,KAAM3kB,EAAO+oE,EAAK,QAC9B,EACWA,EAAK,IAAMq9M,IACnBpsP,KAAKrV,KAAM3kB,EAAO+oE,EAAK,GACjC,CAEF59B,EAAKrmB,SAASqyB,IAAMysB,GAAM5jE,EAAMm3C,IAClC,CAMA,SAASwnE,IACP,OhDzmBG,SAAkBzjH,EAAO0pB,GAC9B,MAAM8mP,EAAW9mP,GAAWslO,GAQ5B,OAAOkgB,GAAIlvQ,EAN2B,mBAA7BwwQ,EAASoB,iBACZpB,EAASoB,gBAGmB,mBAAzBpB,EAASqB,aAA4BrB,EAASqB,YAGzD,CgD+lBWj/P,CAAS6W,KAAK2+I,MAAMvzG,MAC7B,CAUA,SAAS+yN,IACPn+P,KAAKvlB,KAAK0nR,6BAA8B,CAC1C,CAMA,SAASlE,EAAqB5iR,GAC5B,GAAI2kB,KAAKvlB,KAAK0nR,4BAA6B,CACxBniQ,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCw1C,MAAQiL,OAAOsW,SAASnrC,KAAK2uP,eAAetzQ,GAAQ,IAC7D2kB,KAAKvlB,KAAK0nR,iCAA8BhoR,CAC1C,CACF,CAMA,SAASulR,IACP,MAAMjlR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCs5P,KAAOjzP,CACd,CAMA,SAASklR,IACP,MAAMllR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmoF,KAAO9hF,CACd,CAMA,SAASglR,IAEHz/P,KAAKvlB,KAAK2nR,iBACdpiQ,KAAK6jD,SACL7jD,KAAKvlB,KAAK2nR,gBAAiB,EAC7B,CAMA,SAAS7C,IACP,MAAM9kR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmC,MAAQkE,EAAKmxB,QAAQ,2BAA4B,IACtD5L,KAAKvlB,KAAK2nR,oBAAiBjoR,CAC7B,CAMA,SAASylR,IACP,MAAMnlR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmC,MAAQkE,EAAKmxB,QAAQ,eAAgB,GAC5C,CAMA,SAASm0P,EAA4B1kR,GACnC,MAAM2nB,EAAQhD,KAAKg6F,SACbxzE,EAAOxmB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAC5CoyC,EAAKxjB,MAAQA,EACbwjB,EAAKktO,WAAaD,GAChBzzP,KAAK2uP,eAAetzQ,IACpBnH,aACJ,CAMA,SAAS8rR,IACP,MAAMvlR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmJ,MAAQ9C,CACf,CAMA,SAASqlR,IACP,MAAMrlR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvC0J,IAAMrD,CACb,CAMA,SAASokR,EAAyBxjR,GAChC,MAAMmrC,EAAOxmB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAC5C,IAAKoyC,EAAKE,MAAO,CACf,MAAMA,EAAQ1mB,KAAK2uP,eAAetzQ,GAAOjH,OACzCoyC,EAAKE,MAAQA,CACf,CACF,CAMA,SAASw6O,IACPlhQ,KAAKvlB,KAAK4nR,8BAA+B,CAC3C,CAMA,SAASrB,EAAgC3lR,GAC1B2kB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCsyC,MAAsD,KAA9C1mB,KAAK2uP,eAAetzQ,GAAOinR,YAAY,GAAY,EAAI,CACtE,CAMA,SAASxB,IACP9gQ,KAAKvlB,KAAK4nR,kCAA+BloR,CAC3C,CAOA,SAAS6iR,EAAY3hR,GACnB,MAEM8gF,EAFOn8D,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAEtBoC,SACtB,IAAI01N,EAAO/vI,EAASA,EAAS/nF,OAAS,GACjC83N,GAAsB,SAAdA,EAAKnrN,OAEhBmrN,EAAOzqM,KACPyqM,EAAK/rM,SAAW,CACdypB,MAAOq1B,GAAM5jE,EAAMuuC,OAEnB4I,SAAKr4C,GAEPgiF,EAASz4D,KAAKwoM,IAEhBlsM,KAAK2+I,MAAMj7I,KAAKwoM,EAClB,CAOA,SAAS+yD,EAAW5jR,GAClB,MAAM6wN,EAAOlsM,KAAK2+I,MAAMvzG,MACxB8gK,EAAK31N,OAASypB,KAAK2uP,eAAetzQ,GAClC6wN,EAAK/rM,SAASqyB,IAAMysB,GAAM5jE,EAAMm3C,IAClC,CAOA,SAASguO,EAAiBnlR,GACxB,MAAMuJ,EAAUob,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAE/C,GAAI4rB,KAAKvlB,KAAK8nR,YAAa,CAIzB,OAHa39Q,EAAQpO,SAASoO,EAAQpO,SAASpC,OAAS,GACnD+rB,SAASqyB,IAAMysB,GAAM5jE,EAAMm3C,UAChCxyB,KAAKvlB,KAAK8nR,iBAAcpoR,EAE1B,EAEG6lB,KAAKvlB,KAAK4nR,8BACXz0K,EAAOivK,eAAe1oR,SAASyQ,EAAQ7D,QAEvCi8Q,EAAY3nP,KAAKrV,KAAM3kB,GACvB4jR,EAAW5pP,KAAKrV,KAAM3kB,GAE1B,CAOA,SAAS4kR,IACPjgQ,KAAKvlB,KAAK8nR,aAAc,CAC1B,CAOA,SAASrC,IACP,MAAMzlR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmC,MAAQkE,CACf,CAOA,SAAS0lR,IACP,MAAM1lR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmC,MAAQkE,CACf,CAOA,SAASolR,IACP,MAAMplR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmC,MAAQkE,CACf,CAOA,SAASgmR,IACP,MAAMj6O,EAAOxmB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAI5C,GAAI4rB,KAAKvlB,KAAK+nR,YAAa,CAEzB,MAAMC,EAAgBziQ,KAAKvlB,KAAKgoR,eAAiB,WACjDj8O,EAAKzlC,MAAQ,YAEbylC,EAAKi8O,cAAgBA,SAEdj8O,EAAK1oC,WACL0oC,EAAKjpC,KACd,aAESipC,EAAKktO,kBAELltO,EAAKxjB,MAEdhD,KAAKvlB,KAAKgoR,mBAAgBtoR,CAC5B,CAOA,SAASimR,IACP,MAAM55O,EAAOxmB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAI5C,GAAI4rB,KAAKvlB,KAAK+nR,YAAa,CAEzB,MAAMC,EAAgBziQ,KAAKvlB,KAAKgoR,eAAiB,WACjDj8O,EAAKzlC,MAAQ,YAEbylC,EAAKi8O,cAAgBA,SAEdj8O,EAAK1oC,WACL0oC,EAAKjpC,KACd,aAESipC,EAAKktO,kBAELltO,EAAKxjB,MAEdhD,KAAKvlB,KAAKgoR,mBAAgBtoR,CAC5B,CAOA,SAASomR,EAAgBllR,GACvB,MAAMswB,EAAS3L,KAAK2uP,eAAetzQ,GAC7BqnR,EAAW1iQ,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAGhDsuR,EAAS1/P,MD76BN,SAAsBzsB,GAC3B,OAAOA,EAAMq1B,QAAQ4wP,GAA4BC,GACnD,CC26BqBkG,CAAah3P,GAE9B+2P,EAAShP,WAAaD,GAAoB9nP,GAAQz3B,aACpD,CAOA,SAASmsR,IACP,MAAMuC,EAAW5iQ,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAC1CmC,EAAQypB,KAAKg6F,SACbxzE,EAAOxmB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAG5C,GADA4rB,KAAKvlB,KAAK+nR,aAAc,EACN,SAAdh8O,EAAKzlC,KAAiB,CAExB,MAAMvK,EAAWosR,EAASpsR,SAC1BgwC,EAAKhwC,SAAWA,CAClB,MACEgwC,EAAKpoC,IAAM7H,CAEf,CAOA,SAASoqR,IACP,MAAMlmR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvC0J,IAAMrD,CACb,CAOA,SAASmmR,IACP,MAAMnmR,EAAOulB,KAAKg6F,SACLh6F,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvCmJ,MAAQ9C,CACf,CAOA,SAASomR,IACP7gQ,KAAKvlB,KAAK+nR,iBAAcroR,CAC1B,CAOA,SAASkkR,IACPr+P,KAAKvlB,KAAKgoR,cAAgB,WAC5B,CAOA,SAAS/B,EAAsBrlR,GAC7B,MAAM2nB,EAAQhD,KAAKg6F,SACbxzE,EAAOxmB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GAG5CoyC,EAAKxjB,MAAQA,EAEbwjB,EAAKktO,WAAaD,GAChBzzP,KAAK2uP,eAAetzQ,IACpBnH,cACF8rB,KAAKvlB,KAAKgoR,cAAgB,MAC5B,CAOA,SAAStD,EAA+B9jR,GACtC2kB,KAAKvlB,KAAKooR,uBAAyBxnR,EAAM0F,IAC3C,CAMA,SAASu+Q,EAA8BjkR,GACrC,MAAMZ,EAAOulB,KAAK2uP,eAAetzQ,GAC3B0F,EAAOif,KAAKvlB,KAAKooR,uBAEvB,IAAItsR,EACJ,GAAIwK,EACFxK,EAAQ+lR,GACN7hR,EACS,oCAATsG,EAA6C,GAAK,IAEpDif,KAAKvlB,KAAKooR,4BAAyB1oR,MAC9B,CAEL5D,EADeqhR,GAA8Bn9Q,EAE/C,CACA,MAAMyxN,EAAOlsM,KAAK2+I,MAAMvzG,MACxB8gK,EAAK31N,OAASA,EACd21N,EAAK/rM,SAASqyB,IAAMysB,GAAM5jE,EAAMm3C,IAClC,CAMA,SAASusO,EAAuB1jR,GAC9B4jR,EAAW5pP,KAAKrV,KAAM3kB,GACT2kB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvC0J,IAAMkiB,KAAK2uP,eAAetzQ,EACjC,CAMA,SAASyjR,EAAoBzjR,GAC3B4jR,EAAW5pP,KAAKrV,KAAM3kB,GACT2kB,KAAK2+I,MAAM3+I,KAAK2+I,MAAMvqK,OAAS,GACvC0J,IAAM,UAAYkiB,KAAK2uP,eAAetzQ,EAC7C,CAOA,SAASk3Q,IACP,MAAO,CACLxxQ,KAAM,aACNvK,SAAU,GAEd,CAGA,SAAS2mR,IACP,MAAO,CACLp8Q,KAAM,OACN2sP,KAAM,KACNnxK,KAAM,KACNhmF,MAAO,GAEX,CAGA,SAASwlR,IACP,MAAO,CACLh7Q,KAAM,aACNxK,MAAO,GAEX,CAGA,SAASowP,IACP,MAAO,CACL5lP,KAAM,aACN2yQ,WAAY,GACZ1wP,MAAO,KACPzlB,MAAO,KACPO,IAAK,GAET,CAGA,SAAS6/Q,IACP,MAAO,CACL58Q,KAAM,WACNvK,SAAU,GAEd,CAGA,SAAS0kI,IACP,MAAO,CACLn6H,KAAM,UAEN2lC,MAAO,EACPlwC,SAAU,GAEd,CAGA,SAASonR,IACP,MAAO,CACL78Q,KAAM,QAEV,CAGA,SAASihG,IACP,MAAO,CACLjhG,KAAM,OACNxK,MAAO,GAEX,CAGA,SAASsjD,KACP,MAAO,CACL94C,KAAM,QACNxD,MAAO,KACPO,IAAK,GACLM,IAAK,KAET,CAGA,SAASd,KACP,MAAO,CACLyD,KAAM,OACNxD,MAAO,KACPO,IAAK,GACLtH,SAAU,GAEd,CAMA,SAAS+qG,GAAKlmG,GACZ,MAAO,CACL0F,KAAM,OACN+hR,QAAwB,gBAAfznR,EAAM0F,KACf6oC,MAAO,KACPq7M,OAAQ5pP,EAAM0mR,QACdvrR,SAAU,GAEd,CAMA,SAASy2B,GAAS5xB,GAChB,MAAO,CACL0F,KAAM,WACNkkP,OAAQ5pP,EAAM0mR,QACdp+E,QAAS,KACTntM,SAAU,GAEd,CAGA,SAASw3B,KACP,MAAO,CACLjtB,KAAM,YACNvK,SAAU,GAEd,CAGA,SAASkoR,KACP,MAAO,CACL39Q,KAAM,SACNvK,SAAU,GAEd,CAGA,SAASirB,KACP,MAAO,CACL1gB,KAAM,OACNxK,MAAO,GAEX,CAGA,SAASm7Q,KACP,MAAO,CACL3wQ,KAAM,gBAEV,CACF,CAjjCSgiR,CAAS9iQ,EAAT8iQ,CClKF,SAAqB95O,GAC1B,MAAQigO,GAAYjgO,KAGpB,OAAOA,CACT,CD8JI+5O,CACExzP,GAAMvP,GAAS3sB,WAAW+wE,MH1JzB,WACL,IAKI4+M,EALAxsK,EAAS,EACT5yC,EAAS,GAETj6B,GAAQ,EAGZ,OAIA,SAAsBrzC,EAAOqmR,EAAUpqO,GAErC,MAAM88N,EAAS,GAEf,IAAIx6Q,EAEAiZ,EAEAg8P,EAEAmZ,EAEA11M,EAeJ,IAdAj3E,EACEstE,GACkB,kBAAVttE,EACJA,EAAM4S,WACN,IAAIg6Q,YAAYvG,QAAYziR,GAAWsiR,OAAOlmR,IACpDwzQ,EAAgB,EAChBlmM,EAAS,GACLj6B,IAE0B,QAAxBrzC,EAAM8zD,WAAW,IACnB0/M,IAEFngO,OAAQzvC,GAEH4vQ,EAAgBxzQ,EAAMnC,QAAQ,CAMnC,GALA08B,GAAO2nG,UAAYsxI,EACnBj1Q,EAAQg8B,GAAOqmF,KAAK5gH,GACpB2sR,EACEpuR,QAAyBqF,IAAhBrF,EAAM0V,MAAsB1V,EAAM0V,MAAQjU,EAAMnC,OAC3Do5E,EAAOj3E,EAAM8zD,WAAW64N,IACnBpuR,EAAO,CACV+uE,EAASttE,EAAM6Y,MAAM26P,GACrB,KACF,CACA,GAAa,KAATv8L,GAAeu8L,IAAkBmZ,GAAeD,EAClD3T,EAAO5rP,MAAM,GACbu/P,OAAmB9oR,OAUnB,OARI8oR,IACF3T,EAAO5rP,MAAM,GACbu/P,OAAmB9oR,GAEjB4vQ,EAAgBmZ,IAClB5T,EAAO5rP,KAAKntB,EAAM6Y,MAAM26P,EAAemZ,IACvCzsK,GAAUysK,EAAcnZ,GAElBv8L,GACN,KAAK,EACH8hM,EAAO5rP,KAAK,OACZ+yF,IACA,MAEF,KAAK,EAGH,IAFA1oG,EAA+B,EAAxBxC,KAAKkjB,KAAKgoF,EAAS,GAC1B64J,EAAO5rP,MAAM,GACN+yF,IAAW1oG,GAAMuhQ,EAAO5rP,MAAM,GACrC,MAEF,KAAK,GACH4rP,EAAO5rP,MAAM,GACb+yF,EAAS,EACT,MAEF,QACEwsK,GAAmB,EACnBxsK,EAAS,EAIfszJ,EAAgBmZ,EAAc,CAChC,CAMA,OALI1wO,IACEywO,GAAkB3T,EAAO5rP,MAAM,GAC/BmgD,GAAQyrM,EAAO5rP,KAAKmgD,GACxByrM,EAAO5rP,KAAK,OAEP4rP,CACT,CACF,CG8DsC8T,GAAa7sR,EAAOqmR,GAAU,KAGpE,CAsjCA,SAAS39M,GAAM54D,GACb,MAAO,CACLswG,KAAMtwG,EAAEswG,KACRF,OAAQpwG,EAAEowG,OACV98E,OAAQtzB,EAAEszB,OAEd,CAOA,SAASwnP,GAAUkC,EAAUj6C,GAC3B,IAAI5+N,GAAS,EACb,OAASA,EAAQ4+N,EAAWh1O,QAAQ,CAClC,MAAMmC,EAAQ6yO,EAAW5+N,GACrB7V,MAAM+4B,QAAQn3B,GAChB4qR,GAAUkC,EAAU9sR,GAEpBq0Q,GAAUyY,EAAU9sR,EAExB,CACF,CAOA,SAASq0Q,GAAUyY,EAAUzY,GAE3B,IAAI5wQ,EACJ,IAAKA,KAAO4wQ,EACV,GAAIlkB,GAAIrxN,KAAKu1O,EAAW5wQ,GACtB,OAAQA,GACN,IAAK,iBAAkB,CACrB,MAAM8R,EAAQ8+P,EAAU5wQ,GACpB8R,GACFu3Q,EAASrpR,GAAK0pB,QAAQ5X,GAExB,KACF,CACA,IAAK,aAAc,CACjB,MAAMA,EAAQ8+P,EAAU5wQ,GACpB8R,GACFu3Q,EAASrpR,GAAK0pB,QAAQ5X,GAExB,KACF,CACA,IAAK,QACL,IAAK,OAAQ,CACX,MAAMA,EAAQ8+P,EAAU5wQ,GACpB8R,GACF7R,OAAOmxB,OAAOi4P,EAASrpR,GAAM8R,GAE/B,KACF,EAKR,CAGA,SAAS21Q,GAAejsR,EAAMsW,GAC5B,MAAItW,EACI,IAAI2X,MACR,iBACE3X,EAAKuL,KACL,MACAwiQ,EAAkB,CAChB35N,MAAOp0C,EAAKo0C,MACZ4I,IAAKh9C,EAAKg9C,MAEZ,0BACA1mC,EAAM/K,KACN,MACAwiQ,EAAkB,CAChB35N,MAAO99B,EAAM89B,MACb4I,IAAK1mC,EAAM0mC,MAEb,aAGE,IAAIrlC,MACR,oCACErB,EAAM/K,KACN,MACAwiQ,EAAkB,CAChB35N,MAAO99B,EAAM89B,MACb4I,IAAK1mC,EAAM0mC,MAEb,kBAGR,CElzCe,SAAS8wO,GAAYrjQ,GAGlC,MAAMyQ,EAAO1Q,KAEb0Q,EAAKg6M,OAKL,SAAgB/6H,GACd,OAAOgtK,GAAahtK,EAAK,IACpBj/E,EAAKj2B,KAAK,eACVwlB,EAIHmpN,WAAY14M,EAAKj2B,KAAK,wBAA0B,GAChD2mR,gBAAiB1wP,EAAKj2B,KAAK,2BAA6B,IAE5D,CACF,CC1CO,MCODw6O,GAAsB,kBAATvkN,KAAoBA,KAAO+8M,WAuEjC81C,GAAcrrD,GArENsrD,EAAClsO,EAAGvoB,KACvB,MAAMxE,EAAKA,CAAC6vG,EAAK5vH,KACf8sC,EAAExT,IAAIt5B,EAAO4vH,GACNA,GAGHqpJ,EAASj5Q,IACb,GAAI8sC,EAAEzT,IAAIr5B,GACR,OAAO8sC,EAAEnkD,IAAIqX,GAEf,MAAOzJ,EAAMxK,GAASw4B,EAAEvkB,GACxB,OAAQzJ,GACN,KDpBoB,ECqBpB,KDtBoB,ECuBlB,OAAOwpB,EAAGh0B,EAAOiU,GACnB,KDtBoB,ECsBR,CACV,MAAMwqG,EAAMzqF,EAAG,GAAI/f,GACnB,IAAK,MAAMA,KAASjU,EAClBy+G,EAAItxF,KAAK+/P,EAAOj5Q,IAClB,OAAOwqG,CACT,CACA,KD3BoB,EC2BP,CACX,MAAMoE,EAAS7uF,EAAG,CAAC,EAAG/f,GACtB,IAAK,MAAOxQ,EAAKwQ,KAAUjU,EACzB6iH,EAAOqqK,EAAOzpR,IAAQypR,EAAOj5Q,GAC/B,OAAO4uG,CACT,CACA,KDhCoB,ECiClB,OAAO7uF,EAAG,IAAIvtB,KAAKzG,GAAQiU,GAC7B,KDjCoB,ECiCP,CACX,MAAM,OAAC8lB,EAAM,MAAE84K,GAAS7yM,EACxB,OAAOg0B,EAAG,IAAI71B,OAAO47B,EAAQ84K,GAAQ5+L,EACvC,CACA,KDpCoB,ECoCV,CACR,MAAMhN,EAAM+sB,EAAG,IAAI/T,IAAKhM,GACxB,IAAK,MAAOxQ,EAAKwQ,KAAUjU,EACzBiH,EAAIsmC,IAAI2/O,EAAOzpR,GAAMypR,EAAOj5Q,IAC9B,OAAOhN,CACT,CACA,KDzCoB,ECyCV,CACR,MAAMsmC,EAAMvZ,EAAG,IAAI11B,IAAK2V,GACxB,IAAK,MAAMA,KAASjU,EAClButC,EAAI4H,IAAI+3O,EAAOj5Q,IACjB,OAAOs5B,CACT,CACA,KD9CoB,EC8CR,CACV,MAAM,KAACzmC,EAAI,QAAE5D,GAAWlD,EACxB,OAAOg0B,EAAG,IAAI0qN,GAAI53O,GAAM5D,GAAU+Q,EACpC,CACA,KDjDoB,ECkDlB,OAAO+f,EAAGm5P,OAAOntR,GAAQiU,GAC3B,IAAK,SACH,OAAO+f,EAAGtwB,OAAOypR,OAAOntR,IAASiU,GAErC,OAAO+f,EAAG,IAAI0qN,GAAIl0O,GAAMxK,GAAQiU,EAAM,EAGxC,OAAOi5Q,CAAM,EAY0BD,CAAa,IAAIhtQ,IAAK0hN,EAAtBsrD,CAAkC,GCvErEG,GAAQ,IAEPx6Q,SAAQA,IAAI,CAAC,GACd,KAAC8V,IAAQhlB,OAET8gQ,GAASxkQ,IACb,MAAMwK,SAAcxK,EACpB,GAAa,WAATwK,IAAsBxK,EACxB,MAAO,CFde,EEcHwK,GAErB,MAAM6iR,EAAWz6Q,GAASksB,KAAK9+B,GAAO6Y,MAAM,GAAI,GAChD,OAAQw0Q,GACN,IAAK,QACH,MAAO,CFlBa,EEkBLD,IACjB,IAAK,SACH,MAAO,CFnBa,EEmBJA,IAClB,IAAK,OACH,MAAO,CFpBa,EEoBNA,IAChB,IAAK,SACH,MAAO,CFrBa,EEqBJA,IAClB,IAAK,MACH,MAAO,CFtBa,EEsBPA,IACf,IAAK,MACH,MAAO,CFvBa,EEuBPA,IAGjB,OAAIC,EAASzvR,SAAS,SACb,CFhCe,EEgCPyvR,GAEbA,EAASzvR,SAAS,SACb,CF7Be,EE6BPyvR,GAEV,CFpCiB,EEoCRA,EAAS,EAGrBC,GAAa7kR,IAAA,IAAEunO,EAAMxlO,GAAK/B,EAAA,OFzCN,IE0CxBunO,IACU,aAATxlO,GAAgC,WAATA,EAAkB,EAiH9B4xO,GAAY,SAACp8O,GAA8B,IAAvB,KAACwtF,EAAI,MAAE+/L,GAAMjoR,UAAAzH,OAAA,QAAA+F,IAAA0B,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjD,MAAMkzB,EAAI,GACV,MAhHiBg1P,EAACC,EAAQjgM,EAAMzsC,EAAGvoB,KAEnC,MAAMxE,EAAKA,CAAC6vG,EAAK7jI,KACf,MAAMiU,EAAQukB,EAAErL,KAAK02G,GAAO,EAE5B,OADA9iF,EAAExT,IAAIvtC,EAAOiU,GACNA,CAAK,EAGRo+H,EAAOryI,IACX,GAAI+gD,EAAEzT,IAAIttC,GACR,OAAO+gD,EAAEnkD,IAAIoD,GAEf,IAAKgwO,EAAMxlO,GAAQg6P,GAAOxkQ,GAC1B,OAAQgwO,GACN,KF5DoB,EE4DJ,CACd,IAAIr/L,EAAQ3wC,EACZ,OAAQwK,GACN,IAAK,SACHwlO,EFxDc,EEyDdr/L,EAAQ3wC,EAAM4S,WACd,MACF,IAAK,WACL,IAAK,SACH,GAAI66Q,EACF,MAAM,IAAIvtP,UAAU,uBAAyB11B,GAC/CmmC,EAAQ,KACR,MACF,IAAK,YACH,OAAO3c,EAAG,EF3EI,GE2EIh0B,GAEtB,OAAOg0B,EAAG,CAACg8M,EAAMr/L,GAAQ3wC,EAC3B,CACA,KF7EoB,EE6ER,CACV,GAAIwK,EACF,OAAOwpB,EAAG,CAACxpB,EAAM,IAAIxK,IAASA,GAEhC,MAAMy+G,EAAM,GACNxqG,EAAQ+f,EAAG,CAACg8M,EAAMvxH,GAAMz+G,GAC9B,IAAK,MAAM2wC,KAAS3wC,EAClBy+G,EAAItxF,KAAKklH,EAAK1hG,IAChB,OAAO18B,CACT,CACA,KFtFoB,EEsFP,CACX,GAAIzJ,EACF,OAAQA,GACN,IAAK,SACH,OAAOwpB,EAAG,CAACxpB,EAAMxK,EAAM4S,YAAa5S,GACtC,IAAK,UACL,IAAK,SACL,IAAK,SACH,OAAOg0B,EAAG,CAACxpB,EAAMxK,EAAM6xE,WAAY7xE,GAIzC,GAAIwtF,GAAS,WAAYxtF,EACvB,OAAOqyI,EAAKryI,EAAMqrC,UAEpB,MAAM1nC,EAAU,GACVsQ,EAAQ+f,EAAG,CAACg8M,EAAMrsO,GAAU3D,GAClC,IAAK,MAAMyD,KAAOilB,GAAK1oB,IACjBytR,GAAWH,GAAW9oB,GAAOxkQ,EAAMyD,MACrCE,EAAQwpB,KAAK,CAACklH,EAAK5uI,GAAM4uI,EAAKryI,EAAMyD,MAExC,OAAOwQ,CACT,CACA,KF5GoB,EE6GlB,OAAO+f,EAAG,CAACg8M,EAAMhwO,EAAMs7O,eAAgBt7O,GACzC,KF7GoB,EE6GP,CACX,MAAM,OAAC+5B,EAAM,MAAE84K,GAAS7yM,EACxB,OAAOg0B,EAAG,CAACg8M,EAAM,CAACj2M,SAAQ84K,UAAS7yM,EACrC,CACA,KFhHoB,EEgHV,CACR,MAAM2D,EAAU,GACVsQ,EAAQ+f,EAAG,CAACg8M,EAAMrsO,GAAU3D,GAClC,IAAK,MAAOyD,EAAKktC,KAAU3wC,GACrBytR,IAAYH,GAAW9oB,GAAO/gQ,MAAS6pR,GAAW9oB,GAAO7zN,MAC3DhtC,EAAQwpB,KAAK,CAACklH,EAAK5uI,GAAM4uI,EAAK1hG,KAElC,OAAO18B,CACT,CACA,KFxHoB,EEwHV,CACR,MAAMtQ,EAAU,GACVsQ,EAAQ+f,EAAG,CAACg8M,EAAMrsO,GAAU3D,GAClC,IAAK,MAAM2wC,KAAS3wC,GACdytR,GAAWH,GAAW9oB,GAAO7zN,KAC/BhtC,EAAQwpB,KAAKklH,EAAK1hG,IAEtB,OAAO18B,CACT,EAGF,MAAM,QAAC/Q,GAAWlD,EAClB,OAAOg0B,EAAG,CAACg8M,EAAM,CAAClpO,KAAM0D,EAAMtH,YAAWlD,EAAM,EAGjD,OAAOqyI,CAAI,EAiBJm7I,GAAahgM,GAAQ+/L,KAAU//L,EAAM,IAAIvtE,IAAKuY,EAA9Cg1P,CAAiDxtR,GAAQw4B,CAClE,ECjJA,GAA0C,oBAApBk1P,gBAEpB,CAACv/F,EAAKzkK,IACJA,IAAY,SAAUA,GAAW,UAAWA,GAC1CsjQ,GAAY5wC,GAAUjuD,EAAKzkK,IAAYgkQ,gBAAgBv/F,GAE3D,CAACA,EAAKzkK,IAAYsjQ,GAAY5wC,GAAUjuD,EAAKzkK,ICsCxC,SAASikQ,GAAa3tR,GAE3B,MAAM42B,EAAS,GACf,IAAI3iB,GAAS,EACTo/B,EAAQ,EACRu6O,EAAO,EACX,OAAS35Q,EAAQjU,EAAMnC,QAAQ,CAC7B,MAAMo5E,EAAOj3E,EAAM8zD,WAAW7/C,GAE9B,IAAIohB,EAAU,GAGd,GACW,KAAT4hD,GACA09L,GAAkB30Q,EAAM8zD,WAAW7/C,EAAQ,KAC3C0gQ,GAAkB30Q,EAAM8zD,WAAW7/C,EAAQ,IAE3C25Q,EAAO,OAGJ,GAAI32M,EAAO,IACT,oBAAoBxqC,KAAKtM,OAAO0zB,aAAaojB,MAChD5hD,EAAU8K,OAAO0zB,aAAaojB,SAI7B,GAAIA,EAAO,OAAUA,EAAO,MAAQ,CACvC,MAAMz/D,EAAOxX,EAAM8zD,WAAW7/C,EAAQ,GAGlCgjE,EAAO,OAAUz/D,EAAO,OAAUA,EAAO,OAC3C6d,EAAU8K,OAAO0zB,aAAaojB,EAAMz/D,GACpCo2Q,EAAO,GAIPv4P,EAAU,QAEd,MAGEA,EAAU8K,OAAO0zB,aAAaojB,GAE5B5hD,IACFuB,EAAOzJ,KAAKntB,EAAM6Y,MAAMw6B,EAAOp/B,GAAQi4L,mBAAmB72K,IAC1Dge,EAAQp/B,EAAQ25Q,EAAO,EACvBv4P,EAAU,IAERu4P,IACF35Q,GAAS25Q,EACTA,EAAO,EAEX,CACA,OAAOh3P,EAAOpK,KAAK,IAAMxsB,EAAM6Y,MAAMw6B,EACvC,CCjCO,SAASw6O,GAA2Br1P,EAAGs1P,GAE5C,MAAMl3P,EAAS,CAAC,CAACpsB,KAAM,OAAQxK,MAAO,WAWtC,OATI8tR,EAAmB,GACrBl3P,EAAOzJ,KAAK,CACV3iB,KAAM,UACNopC,QAAS,MACT83G,WAAY,CAAC,EACbzrJ,SAAU,CAAC,CAACuK,KAAM,OAAQxK,MAAOmgC,OAAO2tP,OAIrCl3P,CACT,CAaO,SAASm3P,GAAyBC,EAAgBF,GACvD,MACE,sBACCE,EAAiB,IACjBF,EAAmB,EAAI,IAAMA,EAAmB,GAErD,CChDO,MA0EMG,GAgBT,SAAUxhP,GACR,GAAa,OAATA,QAA0B7oC,IAAT6oC,EACnB,OAAOisL,GAGT,GAAoB,oBAATjsL,EACT,OAAOyhP,GAAYzhP,GAGrB,GAAoB,kBAATA,EACT,OAAOruC,MAAM+4B,QAAQsV,GAe7B,SAAoB0hP,GAElB,MAAM13K,EAAS,GACf,IAAIxiG,GAAS,EAEb,OAASA,EAAQk6Q,EAAMtwR,QACrB44G,EAAOxiG,GAASg6Q,GAAQE,EAAMl6Q,IAGhC,OAAOi6Q,GAAY//F,GAMnB,SAASA,IACP,IAAIl6K,GAAS,EAAC,QAAA68F,EAAAxrG,UAAAzH,OADAi0Q,EAAU,IAAA1zQ,MAAA0yG,GAAA0B,EAAA,EAAAA,EAAA1B,EAAA0B,IAAVs/J,EAAUt/J,GAAAltG,UAAAktG,GAGxB,OAASv+F,EAAQwiG,EAAO54G,QACtB,GAAI44G,EAAOxiG,GAAO8qB,MAAMtV,KAAMqoP,GAAa,OAAO,EAGpD,OAAO,CACT,CACF,CAvCqCsc,CAAW3hP,GA+ChD,SAAsBiqE,GACpB,MAAM23K,EAAwD33K,EAE9D,OAAOw3K,GAAY12L,GAMnB,SAASA,EAAIvnD,GACX,MAAMq+O,EACoBr+O,EAI1B,IAAIxsC,EAEJ,IAAKA,KAAOizG,EACV,GAAI43K,EAAa7qR,KAAS4qR,EAAc5qR,GAAM,OAAO,EAGvD,OAAO,CACT,CACF,CAtEwD8qR,CAAa9hP,GAG/D,GAAoB,kBAATA,EACT,OA0ER,SAAqBiqE,GACnB,OAAOw3K,GAAY1jR,GAKnB,SAASA,EAAKylC,GACZ,OAAOA,GAAQA,EAAKzlC,OAASksG,CAC/B,CACF,CAnFe83K,CAAY/hP,GAGrB,MAAM,IAAI71B,MAAM,+CAClB,EAuFJ,SAASs3Q,GAAYO,GACnB,OAMA,SAAezuR,EAAOiU,EAAO0hB,GAC3B,OAAOmN,QACL4rP,GAAe1uR,IACbyuR,EAAa3vP,KACXrV,KACAzpB,EACiB,kBAAViU,EAAqBA,OAAQrQ,EACpC+xB,QAAU/xB,GAGlB,CACF,CAEA,SAAS80N,KACP,OAAO,CACT,CAMA,SAASg2D,GAAe1uR,GACtB,OAAiB,OAAVA,GAAmC,kBAAVA,GAAsB,SAAUA,CAClE,CCnEA,MAAMivP,GAAQ,GAKD0/B,IAAW,EAKXC,IAAO,EAKPC,GAAO,OAiDb,SAASC,GAAa3gB,EAAM1hO,EAAMyuM,EAAS7sK,GAEhD,IAAIqoC,EAEgB,oBAATjqE,GAA0C,oBAAZyuM,GACvC7sK,EAAU6sK,EAEVA,EAAUzuM,GAGViqE,EAAQjqE,EAGV,MAAMu+F,EAAKijJ,GAAQv3K,GACbvtE,EAAOklC,GAAW,EAAI,GAS5B,SAASuzC,EAAQ3xE,EAAMh8B,EAAOskB,GAC5B,MAAMv4B,EACJiwC,GAAwB,kBAATA,EAAoBA,EAAO,CAAC,EAG7C,GAA0B,kBAAfjwC,EAAMwK,KAAmB,CAClC,MAAM1D,EAEqB,kBAAlB9G,EAAM4zC,QACT5zC,EAAM4zC,QAEc,kBAAf5zC,EAAM8G,KACX9G,EAAM8G,UACNlD,EAENF,OAAOuwD,eAAeimL,EAAO,OAAQ,CACnCl6O,MACE,SAAiBiwC,EAAKzlC,MAAQ1D,EAAO,IAAMA,EAAO,IAAM,IAAO,KAErE,CAEA,OAAOozO,EAEP,SAASA,IAEP,IAEI60C,EAEA3rP,EAEA4rP,EANAp4P,EAASq4N,GAQb,KAAKxiN,GAAQu+F,EAAG/6F,EAAMh8B,EAAOskB,EAAQA,EAAQ16B,OAAS,SAAM+F,MAE1DgzB,EA0CR,SAAkB52B,GAChB,GAAI5B,MAAM+4B,QAAQn3B,GAChB,OAAOA,EAGT,GAAqB,kBAAVA,EACT,MAAO,CAAC2uR,GAAU3uR,GAGpB,OAAiB,OAAVA,QAA4B4D,IAAV5D,EAAsBivP,GAAQ,CAACjvP,EAC1D,CApDiBivR,CAAS/zC,EAAQjrM,EAAM1X,IAE5B3B,EAAO,KAAOg4P,IAChB,OAAOh4P,EAIX,GAAI,aAAcqZ,GAAQA,EAAKhwC,SAAU,CACvC,MAAMivR,EAA2Cj/O,EAEjD,GAAIi/O,EAAajvR,UAAY22B,EAAO,KAAOi4P,GAIzC,IAHAzrP,GAAUirC,EAAU6gN,EAAajvR,SAASpC,QAAU,GAAKsrC,EACzD6lP,EAAez2P,EAAQ95B,OAAOywR,GAEvB9rP,GAAU,GAAKA,EAAS8rP,EAAajvR,SAASpC,QAAQ,CAC3D,MAAMu5B,EAAQ83P,EAAajvR,SAASmjC,GAIpC,GAFA2rP,EAAYntK,EAAQxqF,EAAOgM,EAAQ4rP,EAAvBptK,GAERmtK,EAAU,KAAOH,GACnB,OAAOG,EAGT3rP,EAC0B,kBAAjB2rP,EAAU,GAAkBA,EAAU,GAAK3rP,EAAS+F,CAC/D,CAEJ,CAEA,OAAOvS,CACT,CACF,CAzEAgrF,CAAQusJ,OAAMvqQ,EAAW,GAAzBg+G,EA0EF,CCnGO,SAASs4H,GAAMi0B,EAAMghB,EAAeC,EAAkBC,GAE3D,IAAIhhN,EAEA5hC,EAEAyuM,EAGuB,oBAAlBi0C,GACqB,oBAArBC,GAEP3iP,OAAO7oC,EACPs3O,EAAUi0C,EACV9gN,EAAU+gN,IAGV3iP,EAAO0iP,EAEPj0C,EAAUk0C,EACV/gN,EAAUghN,GAGZP,GAAa3gB,EAAM1hO,GAMnB,SAAkBwD,EAAM1X,GACtB,MAAM5C,EAAS4C,EAAQA,EAAQ16B,OAAS,GAClCoW,EAAQ0hB,EAASA,EAAO11B,SAASw0C,QAAQxE,QAAQrsC,EACvD,OAAOs3O,EAAQjrM,EAAMh8B,EAAO0hB,EAC9B,GAVmC04C,EAWrC,CClSO,SAASihN,GAAOn9Q,EAAO89B,GAC5B,MAAMs/O,EAAUt/O,EAAKi8O,cACrB,IAAI5gO,EAAS,IAQb,GANgB,cAAZikO,EACFjkO,GAAU,KACW,SAAZikO,IACTjkO,GAAU,KAAOrb,EAAKxjB,OAASwjB,EAAKktO,YAAc,KAGlC,mBAAdltO,EAAKzlC,KACP,MAAO,CAAC,CAACA,KAAM,OAAQxK,MAAO,KAAOiwC,EAAKpoC,IAAMyjD,IAGlD,MAAMkkO,EAAWr9Q,EAAMqlF,IAAIvnD,GACrBqzM,EAAOksC,EAAS,GAElBlsC,GAAsB,SAAdA,EAAK94O,KACf84O,EAAKtjP,MAAQ,IAAMsjP,EAAKtjP,MAExBwvR,EAASp6N,QAAQ,CAAC5qD,KAAM,OAAQxK,MAAO,MAGzC,MAAM21N,EAAO65D,EAASA,EAAS3xR,OAAS,GAQxC,OANI83N,GAAsB,SAAdA,EAAKnrN,KACfmrN,EAAK31N,OAASsrD,EAEdkkO,EAASriQ,KAAK,CAAC3iB,KAAM,OAAQxK,MAAOsrD,IAG/BkkO,CACT,CCgEA,SAASC,GAAcx/O,GACrB,MAAMy+M,EAASz+M,EAAKy+M,OAEpB,OAAkB,OAAXA,QAA8B9qP,IAAX8qP,EACtBz+M,EAAKhwC,SAASpC,OAAS,EACvB6wP,CACN,CC5HA,MAAMghC,GAAM,EACNtgC,GAAQ,GAWP,SAASugC,GAAU3vR,GACxB,MAAM+5B,EAASoG,OAAOngC,GAChBu6B,EAAS,YACf,IAAIh8B,EAAQg8B,EAAOqmF,KAAK7mF,GACpB27L,EAAO,EAEX,MAAM39J,EAAQ,GAEd,KAAOx5D,GACLw5D,EAAM5qC,KACJyiQ,GAAS71P,EAAOlhB,MAAM68M,EAAMn3N,EAAM0V,OAAQyhN,EAAO,GAAG,GACpDn3N,EAAM,IAGRm3N,EAAOn3N,EAAM0V,MAAQ1V,EAAM,GAAGV,OAC9BU,EAAQg8B,EAAOqmF,KAAK7mF,GAKtB,OAFAg+B,EAAM5qC,KAAKyiQ,GAAS71P,EAAOlhB,MAAM68M,GAAOA,EAAO,GAAG,IAE3C39J,EAAMvrC,KAAK,GACpB,CAYA,SAASojQ,GAAS5vR,EAAOqzC,EAAO4I,GAC9B,IAAI8sC,EAAa,EACbo+F,EAAWnnL,EAAMnC,OAErB,GAAIw1C,EAAO,CACT,IAAI4jC,EAAOj3E,EAAM+rR,YAAYhjM,GAE7B,KAAO9R,IAASy4M,IAAOz4M,IAASm4K,IAC9BrmK,IACA9R,EAAOj3E,EAAM+rR,YAAYhjM,EAE7B,CAEA,GAAI9sC,EAAK,CACP,IAAIg7B,EAAOj3E,EAAM+rR,YAAY5kG,EAAW,GAExC,KAAOlwG,IAASy4M,IAAOz4M,IAASm4K,IAC9BjoE,IACAlwG,EAAOj3E,EAAM+rR,YAAY5kG,EAAW,EAExC,CAEA,OAAOA,EAAWp+F,EAAa/oF,EAAM6Y,MAAMkwE,EAAYo+F,GAAY,EACrE,CCvCO,MAAMo1D,GAAW,CACtBszC,WCXK,SAAoB19Q,EAAO89B,GAEhC,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,aACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAM21C,KAAK31C,EAAMqlF,IAAIvnD,IAAO,IAGxC,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EDEEo5P,MEXK,SAAmB79Q,EAAO89B,GAE/B,MAAMrZ,EAAS,CAACpsB,KAAM,UAAWopC,QAAS,KAAM83G,WAAY,CAAC,EAAGzrJ,SAAU,IAE1E,OADAkS,EAAM29Q,MAAM7/O,EAAMrZ,GACX,CAACzkB,EAAM49Q,UAAU9/O,EAAMrZ,GAAS,CAACpsB,KAAM,OAAQxK,MAAO,MAC/D,EFOEi3E,KGZK,SAAc9kE,EAAO89B,GAC1B,MAAMjwC,EAAQiwC,EAAKjwC,MAAQiwC,EAAKjwC,MAAQ,KAAO,GAEzC0rJ,EAAa,CAAC,EAEhBz7G,EAAKknN,OACPzrG,EAAWvrJ,UAAY,CAAC,YAAc8vC,EAAKknN,OAK7C,IAAIvgO,EAAS,CACXpsB,KAAM,UACNopC,QAAS,OACT83G,aACAzrJ,SAAU,CAAC,CAACuK,KAAM,OAAQxK,WAa5B,OAVIiwC,EAAK+1C,OACPpvD,EAAO1yB,KAAO,CAAC8hF,KAAM/1C,EAAK+1C,OAG5B7zE,EAAM29Q,MAAM7/O,EAAMrZ,GAClBA,EAASzkB,EAAM49Q,UAAU9/O,EAAMrZ,GAG/BA,EAAS,CAACpsB,KAAM,UAAWopC,QAAS,MAAO83G,WAAY,CAAC,EAAGzrJ,SAAU,CAAC22B,IACtEzkB,EAAM29Q,MAAM7/O,EAAMrZ,GACXA,CACT,EHhBE6e,OIdK,SAAuBtjC,EAAO89B,GAEnC,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,MACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EJKEwwP,SKfK,SAAkBj1Q,EAAO89B,GAE9B,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,KACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,ELMEq5P,kBMjBK,SAA2B99Q,EAAO89B,GACvC,MAAMigP,EACmC,kBAAhC/9Q,EAAMuX,QAAQwmQ,cACjB/9Q,EAAMuX,QAAQwmQ,cACd,gBACAnqR,EAAKo6B,OAAO8P,EAAKktO,YAAY7wP,cAC7B6jQ,EAASxC,GAAa5nR,EAAGpI,eACzBsW,EAAQ9B,EAAMi+Q,cAAc37O,QAAQ1uC,GAE1C,IAAIs3G,EAEAgzK,EAAel+Q,EAAMm+Q,eAAe1zR,IAAImJ,QAEvBnC,IAAjBysR,GACFA,EAAe,EACfl+Q,EAAMi+Q,cAAcjjQ,KAAKpnB,GACzBs3G,EAAUlrG,EAAMi+Q,cAAcvyR,QAE9Bw/G,EAAUppG,EAAQ,EAGpBo8Q,GAAgB,EAChBl+Q,EAAMm+Q,eAAe/iP,IAAIxnC,EAAIsqR,GAG7B,MAAMtpR,EAAO,CACXyD,KAAM,UACNopC,QAAS,IACT83G,WAAY,CACVtkJ,KAAM,IAAM8oR,EAAgB,MAAQC,EACpCpqR,GACEmqR,EACA,SACAC,GACCE,EAAe,EAAI,IAAMA,EAAe,IAC3CE,iBAAiB,EACjBt+B,gBAAiB,CAAC,mBAEpBhyP,SAAU,CAAC,CAACuK,KAAM,OAAQxK,MAAOmgC,OAAOk9E,MAE1ClrG,EAAM29Q,MAAM7/O,EAAMlpC,GAGlB,MAAMypR,EAAM,CACVhmR,KAAM,UACNopC,QAAS,MACT83G,WAAY,CAAC,EACbzrJ,SAAU,CAAC8G,IAGb,OADAoL,EAAM29Q,MAAM7/O,EAAMugP,GACXr+Q,EAAM49Q,UAAU9/O,EAAMugP,EAC/B,ENjCE7rJ,QOjBK,SAAiBxyH,EAAO89B,GAE7B,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,IAAM3D,EAAKE,MACpBu7G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EPQE60E,KQhBK,SAAct5F,EAAO89B,GAC1B,GAAI99B,EAAMuX,QAAQ+mQ,mBAAoB,CAEpC,MAAM75P,EAAS,CAACpsB,KAAM,MAAOxK,MAAOiwC,EAAKjwC,OAEzC,OADAmS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,CAGF,ERQE85P,eSjBK,SAAwBv+Q,EAAO89B,GACpC,MAAMlqC,EAAKo6B,OAAO8P,EAAKktO,YAAY7wP,cAC7Bs0H,EAAMzuI,EAAMw+Q,eAAe/zR,IAAImJ,GAErC,IAAK66I,EACH,OAAO0uI,GAAOn9Q,EAAO89B,GAIvB,MAAMy7G,EAAa,CAAC/jJ,IAAKgmR,GAAa/sI,EAAIr5I,KAAO,IAAKM,IAAKooC,EAAKpoC,KAE9C,OAAd+4I,EAAI55I,YAAgCpD,IAAdg9I,EAAI55I,QAC5B0kJ,EAAW1kJ,MAAQ45I,EAAI55I,OAIzB,MAAM4vB,EAAS,CAACpsB,KAAM,UAAWopC,QAAS,MAAO83G,aAAYzrJ,SAAU,IAEvE,OADAkS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,ETDE0sB,MUpBK,SAAenxC,EAAO89B,GAE3B,MAAMy7G,EAAa,CAAC/jJ,IAAKgmR,GAAa19O,EAAK1oC,MAE1B,OAAb0oC,EAAKpoC,UAA6BjE,IAAbqsC,EAAKpoC,MAC5B6jJ,EAAW7jJ,IAAMooC,EAAKpoC,KAGL,OAAfooC,EAAKjpC,YAAiCpD,IAAfqsC,EAAKjpC,QAC9B0kJ,EAAW1kJ,MAAQipC,EAAKjpC,OAI1B,MAAM4vB,EAAS,CAACpsB,KAAM,UAAWopC,QAAS,MAAO83G,aAAYzrJ,SAAU,IAEvE,OADAkS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EVKEg6P,WWpBK,SAAoBz+Q,EAAO89B,GAEhC,MAAM/kB,EAAO,CAAC1gB,KAAM,OAAQxK,MAAOiwC,EAAKjwC,MAAMq1B,QAAQ,YAAa,MACnEljB,EAAM29Q,MAAM7/O,EAAM/kB,GAGlB,MAAM0L,EAAS,CACbpsB,KAAM,UACNopC,QAAS,OACT83G,WAAY,CAAC,EACbzrJ,SAAU,CAACirB,IAGb,OADA/Y,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EXOEi6P,cYpBK,SAAuB1+Q,EAAO89B,GACnC,MAAMlqC,EAAKo6B,OAAO8P,EAAKktO,YAAY7wP,cAC7Bs0H,EAAMzuI,EAAMw+Q,eAAe/zR,IAAImJ,GAErC,IAAK66I,EACH,OAAO0uI,GAAOn9Q,EAAO89B,GAIvB,MAAMy7G,EAAa,CAACtkJ,KAAMumR,GAAa/sI,EAAIr5I,KAAO,KAEhC,OAAdq5I,EAAI55I,YAAgCpD,IAAdg9I,EAAI55I,QAC5B0kJ,EAAW1kJ,MAAQ45I,EAAI55I,OAIzB,MAAM4vB,EAAS,CACbpsB,KAAM,UACNopC,QAAS,IACT83G,aACAzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EZHE7vB,KavBK,SAAcoL,EAAO89B,GAE1B,MAAMy7G,EAAa,CAACtkJ,KAAMumR,GAAa19O,EAAK1oC,MAEzB,OAAf0oC,EAAKjpC,YAAiCpD,IAAfqsC,EAAKjpC,QAC9B0kJ,EAAW1kJ,MAAQipC,EAAKjpC,OAI1B,MAAM4vB,EAAS,CACbpsB,KAAM,UACNopC,QAAS,IACT83G,aACAzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EbOEF,SFnBK,SAAkBvkB,EAAO89B,EAAMta,GACpC,MAAM2hE,EAAUnlF,EAAMqlF,IAAIvnD,GACpB6gP,EAAQn7P,EAyEhB,SAAmBsa,GACjB,IAAI6gP,GAAQ,EACZ,GAAkB,SAAd7gP,EAAKzlC,KAAiB,CACxBsmR,EAAQ7gP,EAAKy+M,SAAU,EACvB,MAAMzuP,EAAWgwC,EAAKhwC,SACtB,IAAIgU,GAAS,EAEb,MAAQ68Q,KAAW78Q,EAAQhU,EAASpC,QAClCizR,EAAQrB,GAAcxvR,EAASgU,GAEnC,CAEA,OAAO68Q,CACT,CAtFyBC,CAAUp7P,GAAU85P,GAAcx/O,GAEnDy7G,EAAa,CAAC,EAEdzrJ,EAAW,GAEjB,GAA4B,mBAAjBgwC,EAAKm9J,QAAuB,CACrC,MAAMk2C,EAAOhsJ,EAAQ,GAErB,IAAI7/D,EAEA6rN,GAAsB,YAAdA,EAAK94O,MAAuC,MAAjB84O,EAAK1vM,QAC1Cnc,EAAY6rN,GAEZ7rN,EAAY,CAACjtB,KAAM,UAAWopC,QAAS,IAAK83G,WAAY,CAAC,EAAGzrJ,SAAU,IACtEq3F,EAAQliC,QAAQ39B,IAGdA,EAAUx3B,SAASpC,OAAS,GAC9B45B,EAAUx3B,SAASm1D,QAAQ,CAAC5qD,KAAM,OAAQxK,MAAO,MAGnDy3B,EAAUx3B,SAASm1D,QAAQ,CACzB5qD,KAAM,UACNopC,QAAS,QACT83G,WAAY,CAAClhJ,KAAM,WAAY4iM,QAASn9J,EAAKm9J,QAAS7hM,UAAU,GAChEtL,SAAU,KAKZyrJ,EAAWvrJ,UAAY,CAAC,iBAC1B,CAEA,IAAI8T,GAAS,EAEb,OAASA,EAAQqjF,EAAQz5F,QAAQ,CAC/B,MAAMu5B,EAAQkgE,EAAQrjF,IAIpB68Q,GACU,IAAV78Q,GACe,YAAfmjB,EAAM5sB,MACY,MAAlB4sB,EAAMwc,UAEN3zC,EAASktB,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,OAGnB,YAAfo3B,EAAM5sB,MAAwC,MAAlB4sB,EAAMwc,SAAoBk9O,EAGxD7wR,EAASktB,KAAKiK,GAFdn3B,EAASktB,QAAQiK,EAAMn3B,SAI3B,CAEA,MAAM01N,EAAOr+H,EAAQA,EAAQz5F,OAAS,GAGlC83N,IAASm7D,GAAuB,YAAdn7D,EAAKnrN,MAAuC,MAAjBmrN,EAAK/hL,UACpD3zC,EAASktB,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,OAItC,MAAM42B,EAAS,CAACpsB,KAAM,UAAWopC,QAAS,KAAM83G,aAAYzrJ,YAE5D,OADAkS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EEjDEo0E,KcxBK,SAAc74F,EAAO89B,GAE1B,MAAMy7G,EAAa,CAAC,EACdp0D,EAAUnlF,EAAMqlF,IAAIvnD,GAC1B,IAAIh8B,GAAS,EAOb,IAL0B,kBAAfg8B,EAAKoD,OAAqC,IAAfpD,EAAKoD,QACzCq4G,EAAWr4G,MAAQpD,EAAKoD,SAIjBp/B,EAAQqjF,EAAQz5F,QAAQ,CAC/B,MAAMu5B,EAAQkgE,EAAQrjF,GAEtB,GACiB,YAAfmjB,EAAM5sB,MACY,OAAlB4sB,EAAMwc,SACNxc,EAAMs0H,YACNttJ,MAAM+4B,QAAQC,EAAMs0H,WAAWvrJ,YAC/Bi3B,EAAMs0H,WAAWvrJ,UAAUvC,SAAS,kBACpC,CACA8tJ,EAAWvrJ,UAAY,CAAC,sBACxB,KACF,CACF,CAGA,MAAMy2B,EAAS,CACbpsB,KAAM,UACNopC,QAAS3D,EAAKs8O,QAAU,KAAO,KAC/B7gI,aACAzrJ,SAAUkS,EAAM21C,KAAKwvC,GAAS,IAGhC,OADAnlF,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EdVEa,Ue1BK,SAAmBtlB,EAAO89B,GAE/B,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,IACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EfkBEsoH,KgB3BK,SAAc/sI,EAAO89B,GAE1B,MAAMrZ,EAAS,CAACpsB,KAAM,OAAQvK,SAAUkS,EAAM21C,KAAK31C,EAAMqlF,IAAIvnD,KAE7D,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EhBuBEuxP,OiB7BK,SAAgBh2Q,EAAO89B,GAE5B,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,SACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EjBoBE40J,MkB/BK,SAAer5K,EAAO89B,GAC3B,MAAMs+B,EAAOp8D,EAAMqlF,IAAIvnD,GACjB+gP,EAAWziN,EAAKpZ,QAEhB87N,EAAe,GAErB,GAAID,EAAU,CAEZ,MAAM1tC,EAAO,CACX94O,KAAM,UACNopC,QAAS,QACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAM21C,KAAK,CAACkpO,IAAW,IAEnC7+Q,EAAM29Q,MAAM7/O,EAAKhwC,SAAS,GAAIqjP,GAC9B2tC,EAAa9jQ,KAAKm2N,EACpB,CAEA,GAAI/0K,EAAK1wE,OAAS,EAAG,CAEnB,MAAM2F,EAAO,CACXgH,KAAM,UACNopC,QAAS,QACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAM21C,KAAKymB,GAAM,IAGvBl7B,EAAQ05N,EAAW98N,EAAKhwC,SAAS,IACjCg8C,EAAM6wN,EAAS78N,EAAKhwC,SAASgwC,EAAKhwC,SAASpC,OAAS,IACtDw1C,GAAS4I,IAAKz4C,EAAKomB,SAAW,CAACypB,QAAO4I,QAC1Cg1O,EAAa9jQ,KAAK3pB,EACpB,CAGA,MAAMozB,EAAS,CACbpsB,KAAM,UACNopC,QAAS,QACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAM21C,KAAKmpO,GAAc,IAGrC,OADA9+Q,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,ElBVEs6P,UmB/BK,SAAmB/+Q,EAAO89B,GAI/B,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,KACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IAGtB,OADA99B,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EnBoBEu6P,SoB3BK,SAAkBh/Q,EAAO89B,EAAMta,GACpC,MAAMiwD,EAAWjwD,EAASA,EAAO11B,cAAW2D,EAGtCgwC,EAAuB,KADZgyC,EAAWA,EAASnxC,QAAQxE,GAAQ,GACpB,KAAO,KAElCutJ,EAAQ7nK,GAA0B,UAAhBA,EAAOnrB,KAAmBmrB,EAAO6nK,WAAQ55L,EAC3D/F,EAAS2/L,EAAQA,EAAM3/L,OAASoyC,EAAKhwC,SAASpC,OACpD,IAAIujO,GAAa,EAEjB,MAAMH,EAAQ,GAEd,OAASG,EAAYvjO,GAAQ,CAE3B,MAAMsjO,EAAOlxL,EAAKhwC,SAASmhO,GAErB11E,EAAa,CAAC,EACd2jH,EAAa7xE,EAAQA,EAAM4jC,QAAax9N,EAE1CyrQ,IACF3jH,EAAW8xC,MAAQ6xE,GAIrB,IAAIz4O,EAAS,CAACpsB,KAAM,UAAWopC,UAAS83G,aAAYzrJ,SAAU,IAE1DkhO,IACFvqM,EAAO32B,SAAWkS,EAAMqlF,IAAI2pI,GAC5BhvN,EAAM29Q,MAAM3uD,EAAMvqM,GAClBA,EAASzkB,EAAM49Q,UAAU5uD,EAAMvqM,IAGjCqqM,EAAM9zM,KAAKyJ,EACb,CAGA,MAAMA,EAAS,CACbpsB,KAAM,UACNopC,QAAS,KACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAM21C,KAAKm5K,GAAO,IAG9B,OADA9uN,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EpBhBE1L,KqBjCK,SAAc/Y,EAAO89B,GAE1B,MAAMrZ,EAAS,CAACpsB,KAAM,OAAQxK,MAAO2vR,GAAUxvP,OAAO8P,EAAKjwC,SAE3D,OADAmS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,ErB6BEukP,csBlCK,SAAuBhpQ,EAAO89B,GAEnC,MAAMrZ,EAAS,CACbpsB,KAAM,UACNopC,QAAS,KACT83G,WAAY,CAAC,EACbzrJ,SAAU,IAGZ,OADAkS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,EtByBEw6P,KAAMC,GACNC,KAAMD,GACNjhC,WAAYihC,GACZE,mBAAoBF,IAItB,SAASA,KAET,CuBoHA,MAAMlhC,GAAM,CAAC,EAAEtxN,eAGTmwN,GAAe,CAAC,EAsJtB,SAAS8gC,GAAMzxR,EAAMoJ,GACfpJ,EAAKurB,WAAUniB,EAAGmiB,S7FtPjB,SAAkBqmB,GACvB,MAAMoD,EAAQ05N,EAAW98N,GACnBgM,EAAM6wN,EAAS78N,GAErB,GAAIoD,GAAS4I,EACX,MAAO,CAAC5I,QAAO4I,MAEnB,C6F+OmCryB,CAASvrB,GAC5C,CAcA,SAAS0xR,GAAU1xR,EAAMoJ,GAEvB,IAAImvB,EAASnvB,EAGb,GAAIpJ,GAAQA,EAAK6F,KAAM,CACrB,MAAMstR,EAAQnzR,EAAK6F,KAAKstR,MAClBC,EAAYpzR,EAAK6F,KAAKutR,UACtBC,EAAcrzR,EAAK6F,KAAKwtR,YAE9B,GAAqB,kBAAVF,EAGT,GAAoB,YAAhB56P,EAAOpsB,KACTosB,EAAOgd,QAAU49O,MAMd,CAIH56P,EAAS,CAACpsB,KAAM,UAAWopC,QAAS49O,EAAO9lI,WAAY,CAAC,EAAGzrJ,SAD1C,aAAc22B,EAASA,EAAO32B,SAAW,CAAC22B,GAE7D,CAGkB,YAAhBA,EAAOpsB,MAAsBknR,GAC/BhuR,OAAOmxB,OAAO+B,EAAO80H,WAAYgiI,GAAgBgE,IAIjD,aAAc96P,GACdA,EAAO32B,UACO,OAAdwxR,QACc7tR,IAAd6tR,IAEA76P,EAAO32B,SAAWwxR,EAEtB,CAEA,OAAO76P,CACT,CAYA,SAAS+6P,GAAsBx/Q,EAAO89B,GACpC,MAAM/rC,EAAO+rC,EAAK/rC,MAAQ,CAAC,EAErB0yB,IACJ,UAAWqZ,IACTkgN,GAAIrxN,KAAK56B,EAAM,gBAAkBisP,GAAIrxN,KAAK56B,EAAM,aAE9C,CACEsG,KAAM,UACNopC,QAAS,MACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAMqlF,IAAIvnD,IALtB,CAACzlC,KAAM,OAAQxK,MAAOiwC,EAAKjwC,OASjC,OADAmS,EAAM29Q,MAAM7/O,EAAMrZ,GACXzkB,EAAM49Q,UAAU9/O,EAAMrZ,EAC/B,CAcO,SAASkxB,GAAKqlH,EAAO2jH,GAE1B,MAAMl6P,EAAS,GACf,IAAI3iB,GAAS,EAMb,IAJI68Q,GACFl6P,EAAOzJ,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,SAG3BiU,EAAQk5J,EAAMtvK,QACjBoW,GAAO2iB,EAAOzJ,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,OAC7C42B,EAAOzJ,KAAKggJ,EAAMl5J,IAOpB,OAJI68Q,GAAS3jH,EAAMtvK,OAAS,GAC1B+4B,EAAOzJ,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,OAG7B42B,CACT,CAUA,SAASg7P,GAAuB5xR,GAC9B,IAAIiU,EAAQ,EACRgjE,EAAOj3E,EAAM8zD,WAAW7/C,GAE5B,KAAgB,IAATgjE,GAAuB,KAATA,GACnBhjE,IACAgjE,EAAOj3E,EAAM8zD,WAAW7/C,GAG1B,OAAOjU,EAAM6Y,MAAM5E,EACrB,CCjYO,SAAS49Q,GAAO1jB,EAAMzkP,GAC3B,MAAMvX,ED0GD,SAAqBg8P,EAAMzkP,GAChC,MAAM8mP,EAAW9mP,GAAWslO,GAEtB2hC,EAAiB,IAAI1wQ,IAErB6xQ,EAAe,IAAI7xQ,IAEnBqwQ,EAAiB,IAAIrwQ,IAIrBs8N,EAAW,IAAIw1C,MAAoBvhB,EAASj0B,UAG5CpqO,EAAQ,CACZqlF,IA0EF,SAAa7hE,GAEX,MAAM7tB,EAAS,GAEf,GAAI,aAAc6tB,EAAQ,CACxB,MAAMw3I,EAAQx3I,EAAO11B,SACrB,IAAIgU,GAAS,EACb,OAASA,EAAQk5J,EAAMtvK,QAAQ,CAC7B,MAAM+4B,EAASzkB,EAAM+8P,IAAI/hG,EAAMl5J,GAAQ0hB,GAGvC,GAAIiB,EAAQ,CACV,GAAI3iB,GAAmC,UAA1Bk5J,EAAMl5J,EAAQ,GAAGzJ,OACvBpM,MAAM+4B,QAAQP,IAA2B,SAAhBA,EAAOpsB,OACnCosB,EAAO52B,MAAQ4xR,GAAuBh7P,EAAO52B,SAG1C5B,MAAM+4B,QAAQP,IAA2B,YAAhBA,EAAOpsB,MAAoB,CACvD,MAAM84O,EAAO1sN,EAAO32B,SAAS,GAEzBqjP,GAAsB,SAAdA,EAAK94O,OACf84O,EAAKtjP,MAAQ4xR,GAAuBtuC,EAAKtjP,OAE7C,CAGE5B,MAAM+4B,QAAQP,GAChB9uB,EAAOqlB,QAAQyJ,GAEf9uB,EAAOqlB,KAAKyJ,EAEhB,CACF,CACF,CAEA,OAAO9uB,CACT,EA7GEioR,aACAY,iBACAmB,eACAxB,iBACAF,cAAe,GACf7zC,WACA2yB,IAgCF,SAAaj/N,EAAMta,GACjB,MAAMnrB,EAAOylC,EAAKzlC,KACZ0uF,EAAS/mF,EAAMoqO,SAAS/xO,GAE9B,GAAI2lP,GAAIrxN,KAAK3sB,EAAMoqO,SAAU/xO,IAAS0uF,EACpC,OAAOA,EAAO/mF,EAAO89B,EAAMta,GAG7B,GAAIxjB,EAAMuX,QAAQsoQ,aAAe7/Q,EAAMuX,QAAQsoQ,YAAYp0R,SAAS4M,GAAO,CACzE,GAAI,aAAcylC,EAAM,CACtB,MAAM,SAAChwC,KAAagyR,GAAWhiP,EACzBrZ,EAAS82P,GAAgBuE,GAI/B,OAFAr7P,EAAO32B,SAAWkS,EAAMqlF,IAAIvnD,GAErBrZ,CACT,CAGA,OAAO82P,GAAgBz9O,EACzB,CAIA,OAFgB99B,EAAMuX,QAAQwoQ,gBAAkBP,IAEjCx/Q,EAAO89B,EAAMta,EAC9B,EAxDEjM,QAAS8mP,EACTsf,SACAhoO,SAiBF,OAdAoyL,GAAMi0B,GAAM,SAAUl+N,GACpB,GAAkB,eAAdA,EAAKzlC,MAAuC,uBAAdylC,EAAKzlC,KAA+B,CACpE,MAAMvD,EAAoB,eAAdgpC,EAAKzlC,KAAwBmmR,EAAiBmB,EACpD/rR,EAAKo6B,OAAO8P,EAAKktO,YAAY7wP,cAI9BrlB,EAAIqmC,IAAIvnC,IAEXkB,EAAIsmC,IAAIxnC,EAAIkqC,EAEhB,CACF,IAEO99B,CAoFT,CCxOgBggR,CAAYhkB,EAAMzkP,GAC1BumB,EAAO99B,EAAM+8P,IAAIf,OAAMvqQ,GACvBwuR,E/BkCD,SAAgBjgR,GACrB,MAAM+9Q,EACmC,kBAAhC/9Q,EAAMuX,QAAQwmQ,cACjB/9Q,EAAMuX,QAAQwmQ,cACd,gBACAmC,EACJlgR,EAAMuX,QAAQ2oQ,qBAAuBxE,GACjCyE,EACJngR,EAAMuX,QAAQ4oQ,mBAAqBvE,GAC/BwE,EAAgBpgR,EAAMuX,QAAQ6oQ,eAAiB,YAC/CC,EAAuBrgR,EAAMuX,QAAQ8oQ,sBAAwB,KAC7DC,EAA0BtgR,EAAMuX,QAAQ+oQ,yBAA2B,CACvEtyR,UAAW,CAAC,YAGRuyR,EAAY,GAClB,IAAI1E,GAAkB,EAEtB,OAASA,EAAiB77Q,EAAMi+Q,cAAcvyR,QAAQ,CACpD,MAAM+iJ,EAAMzuI,EAAM2/Q,aAAal1R,IAAIuV,EAAMi+Q,cAAcpC,IAEvD,IAAKptI,EACH,SAGF,MAAMz9I,EAAUgP,EAAMqlF,IAAIopD,GACpB76I,EAAKo6B,OAAOygH,EAAIu8H,YAAY7wP,cAC5B6jQ,EAASxC,GAAa5nR,EAAGpI,eAC/B,IAAImwR,EAAmB,EAEvB,MAAM6E,EAAiB,GACjBC,EAASzgR,EAAMm+Q,eAAe1zR,IAAImJ,GAGxC,UAAkBnC,IAAXgvR,KAA0B9E,GAAoB8E,GAAQ,CACvDD,EAAe90R,OAAS,GAC1B80R,EAAexlQ,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,MAG5C,IAAIC,EAC6B,kBAAxBoyR,EACHA,EACAA,EAAoBrE,EAAgBF,GAElB,kBAAb7tR,IACTA,EAAW,CAACuK,KAAM,OAAQxK,MAAOC,IAGnC0yR,EAAexlQ,KAAK,CAClB3iB,KAAM,UACNopC,QAAS,IACT83G,WAAY,CACVtkJ,KACE,IACA8oR,EACA,SACAC,GACCrC,EAAmB,EAAI,IAAMA,EAAmB,IACnD+E,oBAAqB,GACrB7vH,UAC+B,kBAAtBsvH,EACHA,EACAA,EAAkBtE,EAAgBF,GACxC3tR,UAAW,CAAC,0BAEdF,SAAU7B,MAAM+4B,QAAQl3B,GAAYA,EAAW,CAACA,IAEpD,CAEA,MAAM01N,EAAOxyN,EAAQA,EAAQtF,OAAS,GAEtC,GAAI83N,GAAsB,YAAdA,EAAKnrN,MAAuC,MAAjBmrN,EAAK/hL,QAAiB,CAC3D,MAAMk/O,EAAWn9D,EAAK11N,SAAS01N,EAAK11N,SAASpC,OAAS,GAClDi1R,GAA8B,SAAlBA,EAAStoR,KACvBsoR,EAAS9yR,OAAS,IAElB21N,EAAK11N,SAASktB,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,MAG3C21N,EAAK11N,SAASktB,QAAQwlQ,EACxB,MACExvR,EAAQgqB,QAAQwlQ,GAIlB,MAAMj8P,EAAW,CACflsB,KAAM,UACNopC,QAAS,KACT83G,WAAY,CAAC3lJ,GAAImqR,EAAgB,MAAQC,GACzClwR,SAAUkS,EAAM21C,KAAK3kD,GAAS,IAGhCgP,EAAM29Q,MAAMlvI,EAAKlqH,GAEjBg8P,EAAUvlQ,KAAKuJ,EACjB,CAEA,GAAyB,IAArBg8P,EAAU70R,OAId,MAAO,CACL2M,KAAM,UACNopC,QAAS,UACT83G,WAAY,CAACqnI,eAAe,EAAM5yR,UAAW,CAAC,cAC9CF,SAAU,CACR,CACEuK,KAAM,UACNopC,QAAS4+O,EACT9mI,WAAY,IACPgiI,GAAgB+E,GACnB1sR,GAAI,kBAEN9F,SAAU,CAAC,CAACuK,KAAM,OAAQxK,MAAOuyR,KAEnC,CAAC/nR,KAAM,OAAQxK,MAAO,MACtB,CACEwK,KAAM,UACNopC,QAAS,KACT83G,WAAY,CAAC,EACbzrJ,SAAUkS,EAAM21C,KAAK4qO,GAAW,IAElC,CAACloR,KAAM,OAAQxK,MAAO,OAG5B,C+B/JegzR,CAAO7gR,GAEdykB,EAASx4B,MAAM+4B,QAAQ8Y,GACzB,CAACzlC,KAAM,OAAQvK,SAAUgwC,GACzBA,GAAQ,CAACzlC,KAAM,OAAQvK,SAAU,IAUrC,OARImyR,GAKFx7P,EAAO32B,SAASktB,KAAK,CAAC3iB,KAAM,OAAQxK,MAAO,MAAOoyR,GAG7Cx7P,CACT,CC8Be,SAASq8P,GAAaxwK,EAAa/4F,GAChD,OAAI+4F,GAAe,QAASA,EAInBr/G,eAAgB+qQ,EAAMV,GAE3B,MAAMylB,EACJrB,GAAO1jB,EAAM,CAACV,UAAS/jP,UAEnB+4F,EAAYvvE,IAAIggP,EAAUzlB,EAClC,EAMK,SAAUU,EAAMV,GAErB,OACEokB,GAAO1jB,EAAM,CAACV,UAAU/jP,GAAW+4F,GAEvC,CACF,CCvJO,SAAS0wK,GAAK9zR,GACnB,GAAIA,EACF,MAAMA,CAEV,gBCXe,SAASq/G,GAAc1+G,GACrC,GAAqB,kBAAVA,GAAgC,OAAVA,EAChC,OAAO,EAGR,MAAM4+B,EAAYl7B,OAAO2+L,eAAeriM,GACxC,OAAsB,OAAd4+B,GAAsBA,IAAcl7B,OAAOk7B,WAAkD,OAArCl7B,OAAO2+L,eAAezjK,OAA0BtH,OAAOk/M,eAAex2O,MAAYs3B,OAAO4tF,YAAYllH,EACtK,CC+BO,SAASozR,KAEd,MAAMvxC,EAAM,GAENwxC,EAAW,CAACngP,IAKlB,WAAwB,QAAA49D,EAAAxrG,UAAAzH,OAARiK,EAAM,IAAA1J,MAAA0yG,GAAA0B,EAAA,EAAAA,EAAA1B,EAAA0B,IAAN1qG,EAAM0qG,GAAAltG,UAAAktG,GACpB,IAAI8gL,GAAmB,EAEvB,MAAMxiP,EAAWhpC,EAAO+sD,MAExB,GAAwB,oBAAb/jB,EACT,MAAM,IAAI5Q,UAAU,2CAA6C4Q,IAWnE,SAASt5B,EAAKnY,GACZ,MAAM+kF,EAAKy9J,IAAMyxC,GACjB,IAAIr/Q,GAAS,EAEb,GAAI5U,EACFyxC,EAASzxC,OADX,CAKA,QAAAg3L,EAAA/wL,UAAAzH,OATsB01R,EAAM,IAAAn1R,MAAAi4L,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANi9F,EAAMj9F,EAAA,GAAAhxL,UAAAgxL,GAU5B,OAASriL,EAAQnM,EAAOjK,QACA,OAAlB01R,EAAOt/Q,SAAqCrQ,IAAlB2vR,EAAOt/Q,KACnCs/Q,EAAOt/Q,GAASnM,EAAOmM,IAK3BnM,EAASyrR,EAGLnvM,EAqDH,SAAcovM,EAAY1iP,GAE/B,IAAI+kJ,EAEJ,OAAO49F,EAQP,SAASA,IAAuB,QAAAC,EAAApuR,UAAAzH,OAAZi0Q,EAAU,IAAA1zQ,MAAAs1R,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAV7hB,EAAU6hB,GAAAruR,UAAAquR,GAC5B,MAAMC,EAAoBJ,EAAW31R,OAASi0Q,EAAWj0Q,OAEzD,IAAI+4B,EAEAg9P,GACF9hB,EAAW3kP,KAAKo+D,GAGlB,IACE30D,EAAS48P,EAAWz0P,MAAMtV,KAAMqoP,EAClC,CAAE,MAAOzyQ,GAOP,GAAIu0R,GAAqB/9F,EACvB,MAPsCx2L,EAUxC,OAAOksF,EAViClsF,EAW1C,CAEKu0R,IACCh9P,GAAUA,EAAO5yB,MAA+B,oBAAhB4yB,EAAO5yB,KACzC4yB,EAAO5yB,KAAKA,EAAMunF,GACT30D,aAAkBhgB,MAC3B20E,EAAK30D,GAEL5yB,EAAK4yB,GAGX,CAOA,SAAS20D,EAAKlsF,GACZ,IAAKw2L,EAAQ,CACXA,GAAS,EAAI,QAAAg+F,EAAAvuR,UAAAzH,OAFO01R,EAAM,IAAAn1R,MAAAy1R,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANP,EAAMO,EAAA,GAAAxuR,UAAAwuR,GAG1BhjP,EAASzxC,KAAUk0R,EACrB,CACF,CAOA,SAASvvR,EAAKhE,GACZurF,EAAK,KAAMvrF,EACb,CACF,CAxHQ8nD,CAAKs8B,EAAI5sE,EAATswC,IAAkByrO,GAElBziP,EAAS,QAASyiP,EAhBpB,CAkBF,CAjCA/7Q,CAAK,QAAS1P,EAkChB,EAhDuB00O,IAmDvB,SAAau3C,GACX,GAA0B,oBAAfA,EACT,MAAM,IAAI7zP,UACR,+CAAiD6zP,GAKrD,OADAlyC,EAAI10N,KAAK4mQ,GACFV,CACT,GA1DA,OAAOA,CA2DT,CCpDO,MAAM1sR,GAAO,CAAC6+E,SAcrB,SAAkB7+E,EAAMqtR,GACtB,QAAYpwR,IAARowR,GAAoC,kBAARA,EAC9B,MAAM,IAAI9zP,UAAU,mCAGtB+zP,GAAWttR,GACX,IAIIutR,EAJA7gP,EAAQ,EACR4I,GAAO,EACPhoC,EAAQtN,EAAK9I,OAIjB,QAAY+F,IAARowR,GAAoC,IAAfA,EAAIn2R,QAAgBm2R,EAAIn2R,OAAS8I,EAAK9I,OAAQ,CACrE,KAAOoW,KACL,GAAgC,KAA5BtN,EAAKolR,YAAY93Q,IAGnB,GAAIigR,EAAc,CAChB7gP,EAAQp/B,EAAQ,EAChB,KACF,OACSgoC,EAAM,IAGfi4O,GAAe,EACfj4O,EAAMhoC,EAAQ,GAIlB,OAAOgoC,EAAM,EAAI,GAAKt1C,EAAKkS,MAAMw6B,EAAO4I,EAC1C,CAEA,GAAI+3O,IAAQrtR,EACV,MAAO,GAGT,IAAIwtR,GAAoB,EACpBC,EAAWJ,EAAIn2R,OAAS,EAE5B,KAAOoW,KACL,GAAgC,KAA5BtN,EAAKolR,YAAY93Q,IAGnB,GAAIigR,EAAc,CAChB7gP,EAAQp/B,EAAQ,EAChB,KACF,OAEIkgR,EAAmB,IAGrBD,GAAe,EACfC,EAAmBlgR,EAAQ,GAGzBmgR,GAAY,IAEVztR,EAAKolR,YAAY93Q,KAAW+/Q,EAAIjI,YAAYqI,KAC1CA,EAAW,IAGbn4O,EAAMhoC,IAKRmgR,GAAY,EACZn4O,EAAMk4O,IAMV9gP,IAAU4I,EACZA,EAAMk4O,EACGl4O,EAAM,IACfA,EAAMt1C,EAAK9I,QAGb,OAAO8I,EAAKkS,MAAMw6B,EAAO4I,EAC3B,EA9F+Bo4O,QAwG/B,SAAiB1tR,GAGf,GAFAstR,GAAWttR,GAES,IAAhBA,EAAK9I,OACP,MAAO,IAGT,IAGIy2R,EAHAr4O,GAAO,EACPhoC,EAAQtN,EAAK9I,OAKjB,OAASoW,GACP,GAAgC,KAA5BtN,EAAKolR,YAAY93Q,IACnB,GAAIqgR,EAAgB,CAClBr4O,EAAMhoC,EACN,KACF,OACUqgR,IAEVA,GAAiB,GAIrB,OAAOr4O,EAAM,EACe,KAAxBt1C,EAAKolR,YAAY,GACf,IACA,IACM,IAAR9vO,GAAqC,KAAxBt1C,EAAKolR,YAAY,GAC9B,KACAplR,EAAKkS,MAAM,EAAGojC,EACpB,EAxIwCs4O,QAkJxC,SAAiB5tR,GACfstR,GAAWttR,GAEX,IASI2tR,EATArgR,EAAQtN,EAAK9I,OAEbo+C,GAAO,EACPu4O,EAAY,EACZC,GAAY,EAGZC,EAAc,EAIlB,KAAOzgR,KAAS,CACd,MAAMgjE,EAAOtwE,EAAKolR,YAAY93Q,GAE9B,GAAa,KAATgjE,EAWAh7B,EAAM,IAGRq4O,GAAiB,EACjBr4O,EAAMhoC,EAAQ,GAGH,KAATgjE,EAEEw9M,EAAW,EACbA,EAAWxgR,EACc,IAAhBygR,IACTA,EAAc,GAEPD,GAAY,IAGrBC,GAAe,QAzBf,GAAIJ,EAAgB,CAClBE,EAAYvgR,EAAQ,EACpB,KACF,CAwBJ,CAEA,GACEwgR,EAAW,GACXx4O,EAAM,GAEU,IAAhBy4O,GAEiB,IAAhBA,GAAqBD,IAAax4O,EAAM,GAAKw4O,IAAaD,EAAY,EAEvE,MAAO,GAGT,OAAO7tR,EAAKkS,MAAM47Q,EAAUx4O,EAC9B,EA/MiDzvB,KAyNjD,WACE,IAEImoQ,EAFA1gR,GAAS,EAEH,QAAA68F,EAAAxrG,UAAAzH,OAHKkpF,EAAQ,IAAA3oF,MAAA0yG,GAAA0B,EAAA,EAAAA,EAAA1B,EAAA0B,IAARzrB,EAAQyrB,GAAAltG,UAAAktG,GAKvB,OAASv+F,EAAQ8yE,EAASlpF,QACxBo2R,GAAWltM,EAAS9yE,IAEhB8yE,EAAS9yE,KACX0gR,OACa/wR,IAAX+wR,EAAuB5tM,EAAS9yE,GAAS0gR,EAAS,IAAM5tM,EAAS9yE,IAIvE,YAAkBrQ,IAAX+wR,EAAuB,IAahC,SAAmBhuR,GACjBstR,GAAWttR,GAEX,MAAMiuR,EAAmC,KAAxBjuR,EAAKolR,YAAY,GAGlC,IAAI/rR,EAuBN,SAAyB2G,EAAMkuR,GAC7B,IAMI59M,EAEA69M,EARAl+P,EAAS,GACTm+P,EAAoB,EACpBC,GAAa,EACbj6C,EAAO,EACP9mO,GAAS,EAMb,OAASA,GAAStN,EAAK9I,QAAQ,CAC7B,GAAIoW,EAAQtN,EAAK9I,OACfo5E,EAAOtwE,EAAKolR,YAAY93Q,OACnB,IAAa,KAATgjE,EACT,MAEAA,EAAO,EACT,CAEA,GAAa,KAATA,EAAuB,CACzB,GAAI+9M,IAAc/gR,EAAQ,GAAc,IAAT8mO,QAExB,GAAIi6C,IAAc/gR,EAAQ,GAAc,IAAT8mO,EAAY,CAChD,GACEnkN,EAAO/4B,OAAS,GACM,IAAtBk3R,GAC0C,KAA1Cn+P,EAAOm1P,YAAYn1P,EAAO/4B,OAAS,IACO,KAA1C+4B,EAAOm1P,YAAYn1P,EAAO/4B,OAAS,GAEnC,GAAI+4B,EAAO/4B,OAAS,GAGlB,GAFAi3R,EAAiBl+P,EAAOupF,YAAY,KAEhC20K,IAAmBl+P,EAAO/4B,OAAS,EAAG,CACpCi3R,EAAiB,GACnBl+P,EAAS,GACTm+P,EAAoB,IAEpBn+P,EAASA,EAAO/d,MAAM,EAAGi8Q,GACzBC,EAAoBn+P,EAAO/4B,OAAS,EAAI+4B,EAAOupF,YAAY,MAG7D60K,EAAY/gR,EACZ8mO,EAAO,EACP,QACF,OACK,GAAInkN,EAAO/4B,OAAS,EAAG,CAC5B+4B,EAAS,GACTm+P,EAAoB,EACpBC,EAAY/gR,EACZ8mO,EAAO,EACP,QACF,CAGE85C,IACFj+P,EAASA,EAAO/4B,OAAS,EAAI+4B,EAAS,MAAQ,KAC9Cm+P,EAAoB,EAExB,MACMn+P,EAAO/4B,OAAS,EAClB+4B,GAAU,IAAMjwB,EAAKkS,MAAMm8Q,EAAY,EAAG/gR,GAE1C2iB,EAASjwB,EAAKkS,MAAMm8Q,EAAY,EAAG/gR,GAGrC8gR,EAAoB9gR,EAAQ+gR,EAAY,EAG1CA,EAAY/gR,EACZ8mO,EAAO,CACT,MAAoB,KAAT9jK,GAAyB8jK,GAAQ,EAC1CA,IAEAA,GAAQ,CAEZ,CAEA,OAAOnkN,CACT,CAtGcq+P,CAAgBtuR,GAAOiuR,GAEd,IAAjB50R,EAAMnC,QAAiB+2R,IACzB50R,EAAQ,KAGNA,EAAMnC,OAAS,GAA2C,KAAtC8I,EAAKolR,YAAYplR,EAAK9I,OAAS,KACrDmC,GAAS,KAGX,OAAO40R,EAAW,IAAM50R,EAAQA,CAClC,CA9BsCo5K,CAAUu7G,EAChD,EAxOuDO,IAAK,KA0W5D,SAASjB,GAAWttR,GAClB,GAAoB,kBAATA,EACT,MAAM,IAAIu5B,UACR,mCAAqClH,KAAKU,UAAU/yB,GAG1D,CChaO,MAAMwuR,GAAO,CAACC,IAErB,WACE,MAAO,GACT,GCYO,SAASC,GAAMC,GACpB,OAAOxyP,QACa,OAAlBwyP,GAC2B,kBAAlBA,GACP,SAAUA,GACVA,EAAcluR,MACd,aAAckuR,GACdA,EAAc90L,eAES58F,IAAvB0xR,EAAc3wC,KAEpB,CClBO,SAAS4wC,GAAU5uR,GACxB,GAAoB,kBAATA,EACTA,EAAO,IAAI+mE,IAAI/mE,QACV,IAAK0uR,GAAM1uR,GAAO,CAEvB,MAAMtH,EAAQ,IAAI6gC,UAChB,+EACEv5B,EACA,KAGJ,MADAtH,EAAM43E,KAAO,uBACP53E,CACR,CAEA,GAAsB,UAAlBsH,EAAK65F,SAAsB,CAE7B,MAAMnhG,EAAQ,IAAI6gC,UAAU,kCAE5B,MADA7gC,EAAM43E,KAAO,yBACP53E,CACR,CAEA,OAWF,SAA6BkI,GAC3B,GAAqB,KAAjBA,EAAIw7O,SAAiB,CAEvB,MAAM1jP,EAAQ,IAAI6gC,UAChB,wDAGF,MADA7gC,EAAM43E,KAAO,4BACP53E,CACR,CAEA,MAAM/C,EAAWiL,EAAIjL,SACrB,IAAI2X,GAAS,EAEb,OAASA,EAAQ3X,EAASuB,QACxB,GACkC,KAAhCvB,EAASyvR,YAAY93Q,IACe,KAApC3X,EAASyvR,YAAY93Q,EAAQ,GAC7B,CACA,MAAMuhR,EAAQl5R,EAASyvR,YAAY93Q,EAAQ,GAC3C,GAAc,KAAVuhR,GAAoC,MAAVA,EAAyB,CAErD,MAAMn2R,EAAQ,IAAI6gC,UAChB,uDAGF,MADA7gC,EAAM43E,KAAO,4BACP53E,CACR,CACF,CAGF,OAAOypF,mBAAmBxsF,EAC5B,CA1CSm5R,CAAoB9uR,EAC7B,CCsDA,MAAMkrG,GAA8B,CAClC,UACA,OACA,WACA,OACA,UACA,WAGK,MAAM6jL,GAuBXpsQ,WAAAA,CAAYtpB,GAEV,IAAI0pB,EAKFA,EAHG1pB,EAEMq1R,GAAMr1R,GACL,CAAC2G,KAAM3G,GACS,kBAAVA,GAujBtB,SAAsBA,GACpB,OAAO8iC,QACL9iC,GACmB,kBAAVA,GACP,eAAgBA,GAChB,eAAgBA,EAEtB,CA9jB4C21R,CAAa31R,GACzC,CAACA,SAEDA,EANA,CAAC,EAgBbypB,KAAK2rQ,IAAMD,GAAKC,MAUhB3rQ,KAAKvlB,KAAO,CAAC,EASbulB,KAAKg6D,QAAU,GAOfh6D,KAAK/jB,SAAW,GAOhB+jB,KAAKzpB,MAYLypB,KAAKxiB,IAULwiB,KAAKmN,OASLnN,KAAKmsQ,OAIL,IAkBI10K,EAlBAjtG,GAAS,EAEb,OAASA,EAAQ49F,GAAMh0G,QAAQ,CAC7B,MAAMqjH,EAAOrP,GAAM59F,GAKjBitG,KAAQx3F,QACU9lB,IAAlB8lB,EAAQw3F,IACU,OAAlBx3F,EAAQw3F,KAGRz3F,KAAKy3F,GAAiB,YAATA,EAAqB,IAAIx3F,EAAQw3F,IAASx3F,EAAQw3F,GAEnE,CAMA,IAAKA,KAAQx3F,EAENmoF,GAAMj0G,SAASsjH,KAElBz3F,KAAKy3F,GAAQx3F,EAAQw3F,GAG3B,CAQA,YAAI17B,GACF,MAA4B,kBAAd/7D,KAAK9iB,KAAoBA,GAAK6+E,SAAS/7D,KAAK9iB,WAAQ/C,CACpE,CAcA,YAAI4hF,CAASA,GACXqwM,GAAerwM,EAAU,YACzBswM,GAAWtwM,EAAU,YACrB/7D,KAAK9iB,KAAOA,GAAK6lB,KAAK/C,KAAK4qQ,SAAW,GAAI7uM,EAC5C,CAQA,WAAI6uM,GACF,MAA4B,kBAAd5qQ,KAAK9iB,KAAoBA,GAAK0tR,QAAQ5qQ,KAAK9iB,WAAQ/C,CACnE,CAYA,WAAIywR,CAAQA,GACVJ,GAAWxqQ,KAAK+7D,SAAU,WAC1B/7D,KAAK9iB,KAAOA,GAAK6lB,KAAK6nQ,GAAW,GAAI5qQ,KAAK+7D,SAC5C,CAQA,WAAI+uM,GACF,MAA4B,kBAAd9qQ,KAAK9iB,KAAoBA,GAAK4tR,QAAQ9qQ,KAAK9iB,WAAQ/C,CACnE,CAcA,WAAI2wR,CAAQA,GAIV,GAHAuB,GAAWvB,EAAS,WACpBN,GAAWxqQ,KAAK4qQ,QAAS,WAErBE,EAAS,CACX,GAA+B,KAA3BA,EAAQxI,YAAY,GACtB,MAAM,IAAIn1Q,MAAM,iCAGlB,GAAI29Q,EAAQ32R,SAAS,IAAK,GACxB,MAAM,IAAIgZ,MAAM,yCAEpB,CAEA6S,KAAK9iB,KAAOA,GAAK6lB,KAAK/C,KAAK4qQ,QAAS5qQ,KAAKssQ,MAAQxB,GAAW,IAC9D,CAQA,QAAI5tR,GACF,OAAO8iB,KAAKg6D,QAAQh6D,KAAKg6D,QAAQ5lF,OAAS,EAC5C,CAcA,QAAI8I,CAAKA,GACH0uR,GAAM1uR,KACRA,EAAO4uR,GAAU5uR,IAGnBkvR,GAAelvR,EAAM,QAEjB8iB,KAAK9iB,OAASA,GAChB8iB,KAAKg6D,QAAQt2D,KAAKxmB,EAEtB,CAQA,QAAIovR,GACF,MAA4B,kBAAdtsQ,KAAK9iB,KACfA,GAAK6+E,SAAS/7D,KAAK9iB,KAAM8iB,KAAK8qQ,cAC9B3wR,CACN,CAcA,QAAImyR,CAAKA,GACPF,GAAeE,EAAM,QACrBD,GAAWC,EAAM,QACjBtsQ,KAAK9iB,KAAOA,GAAK6lB,KAAK/C,KAAK4qQ,SAAW,GAAI0B,GAAQtsQ,KAAK8qQ,SAAW,IACpE,CA+DAyB,IAAAA,CAAK9oB,EAAeC,EAAwBlpL,GAE1C,MAAM/gF,EAAUumB,KAAKvmB,QAAQgqQ,EAAeC,EAAwBlpL,GAIpE,MAFA/gF,EAAQsqQ,OAAQ,EAEVtqQ,CACR,CA4DAmtP,IAAAA,CAAK6c,EAAeC,EAAwBlpL,GAE1C,MAAM/gF,EAAUumB,KAAKvmB,QAAQgqQ,EAAeC,EAAwBlpL,GAIpE,OAFA/gF,EAAQsqQ,WAAQ5pQ,EAETV,CACT,CA4DAA,OAAAA,CAAQgqQ,EAAeC,EAAwBlpL,GAC7C,MAAM/gF,EAAU,IAAI+pQ,GAElBC,EACAC,EACAlpL,GAYF,OATIx6D,KAAK9iB,OACPzD,EAAQ4D,KAAO2iB,KAAK9iB,KAAO,IAAMzD,EAAQ4D,KACzC5D,EAAQuqQ,KAAOhkP,KAAK9iB,MAGtBzD,EAAQsqQ,OAAQ,EAEhB/jP,KAAK/jB,SAASynB,KAAKjqB,GAEZA,CACT,CAeA0P,QAAAA,CAASyzQ,GACP,QAAmBziR,IAAf6lB,KAAKzpB,MACP,MAAO,GAGT,GAA0B,kBAAfypB,KAAKzpB,MACd,OAAOypB,KAAKzpB,MAId,OADgB,IAAI4sR,YAAYvG,QAAYziR,GAC7BsiR,OAAOz8P,KAAKzpB,MAC7B,EAaF,SAAS81R,GAAWG,EAAMnvR,GACxB,GAAImvR,GAAQA,EAAKr4R,SAAS+I,GAAKuuR,KAC7B,MAAM,IAAIt+Q,MACR,IAAM9P,EAAO,uCAAyCH,GAAKuuR,IAAM,IAGvE,CAYA,SAASW,GAAeI,EAAMnvR,GAC5B,IAAKmvR,EACH,MAAM,IAAIr/Q,MAAM,IAAM9P,EAAO,oBAEjC,CAYA,SAASmtR,GAAWttR,EAAMG,GACxB,IAAKH,EACH,MAAM,IAAIiQ,MAAM,YAAc9P,EAAO,kCAEzC,CC7qBO,MAAMovR,GAYP,SAAU70K,GACR,MAEMgvE,EAFO5mK,KACOH,YAIXsV,UAEHmd,EAAOs0I,EAAMhvE,GAEbtiF,EAAQ,WACZ,OAAOgd,EAAKhd,MAAMA,EAAOz5B,UAC3B,EAEA5B,OAAOs8B,eAAejB,EAAOsxJ,GAE7B,MAAM8lG,EAAQzyR,OAAOqzO,oBAAoBh7L,GAEzC,IAAK,MAAMpd,KAAKw3P,EAAO,CACrB,MAAMj0F,EAAax+L,OAAO86G,yBAAyBziE,EAAMpd,GACrDujK,GAAYx+L,OAAOuwD,eAAel1B,EAAOJ,EAAGujK,EAClD,CAEA,OAAOnjK,CACT,ECsUAoxN,GAAM,CAAC,EAAEtxN,eAeR,MAAMu3P,WAAkBF,GAI7B5sQ,WAAAA,GAEEE,MAAM,QAeNC,KAAK4sQ,cAAWzyR,EAYhB6lB,KAAK6sQ,YAAS1yR,EAad6lB,KAAK8sQ,UAAY,GAajB9sQ,KAAK+iQ,cAAW5oR,EAShB6lB,KAAK+sQ,aAAe,EASpB/sQ,KAAKgtQ,YAAS7yR,EASd6lB,KAAKitQ,UAAY,CAAC,EAUlBjtQ,KAAK0qN,YAASvwO,EASd6lB,KAAK+oI,aAAe4gI,IACtB,CAaAh0K,IAAAA,GAEE,MAAMqD,EAEF,IAAI2zK,GAER,IAAIniR,GAAS,EAEb,OAASA,EAAQwV,KAAK8sQ,UAAU14R,QAAQ,CACtC,MAAM84R,EAAWltQ,KAAK8sQ,UAAUtiR,GAChCwuG,EAAY+5H,OAAOm6C,EACrB,CAIA,OAFAl0K,EAAYv+G,KAAKi7G,IAAO,EAAM,CAAC,EAAG11F,KAAKitQ,YAEhCj0K,CACT,CA6DAv+G,IAAAA,CAAKT,EAAKzD,GACR,MAAmB,kBAARyD,EAEgB,IAArB6B,UAAUzH,QACZ+4R,GAAe,OAAQntQ,KAAKgtQ,QAC5BhtQ,KAAKitQ,UAAUjzR,GAAOzD,EACfypB,MAID0mO,GAAIrxN,KAAKrV,KAAKitQ,UAAWjzR,IAAQgmB,KAAKitQ,UAAUjzR,SAASG,EAI/DH,GACFmzR,GAAe,OAAQntQ,KAAKgtQ,QAC5BhtQ,KAAKitQ,UAAYjzR,EACVgmB,MAIFA,KAAKitQ,SACd,CAmBA3rP,MAAAA,GACE,GAAIthB,KAAKgtQ,OACP,OAAOhtQ,KAMT,MAAM0Q,EAAyD1Q,KAE/D,OAASA,KAAK+sQ,YAAc/sQ,KAAK8sQ,UAAU14R,QAAQ,CACjD,MAAO84R,KAAajtQ,GAAWD,KAAK8sQ,UAAU9sQ,KAAK+sQ,aAEnD,IAAmB,IAAf9sQ,EAAQ,GACV,UAGiB,IAAfA,EAAQ,KACVA,EAAQ,QAAK9lB,GAGf,MAAMizR,EAAcF,EAAS73P,KAAK3E,KAASzQ,GAEhB,oBAAhBmtQ,GACTptQ,KAAK+oI,aAAagqF,IAAIq6C,EAE1B,CAKA,OAHAptQ,KAAKgtQ,QAAS,EACdhtQ,KAAK+sQ,YAAcl4O,OAAO8zN,kBAEnB3oP,IACT,CAgBAwP,KAAAA,CAAMw0O,GACJhkP,KAAKshB,SACL,MAAM+rP,EAAWC,GAAMtpB,GACjBt5B,EAAS1qN,KAAK0qN,QAAU1qN,KAAK6sQ,OAEnC,OADAU,GAAa,QAAS7iD,GACfA,EAAOh0M,OAAO22P,GAAWA,EAClC,CA4CAv1R,OAAAA,CAAQksQ,EAAMliL,GACZ,MAAMpxD,EAAO1Q,KAMb,OAJAA,KAAKshB,SACLisP,GAAa,UAAWvtQ,KAAK0qN,QAAU1qN,KAAK6sQ,QAC5CW,GAAe,UAAWxtQ,KAAK+iQ,UAAY/iQ,KAAK4sQ,UAEzC9qM,EAAO2+J,OAAStmP,EAAW2nF,GAAQ,IAAIP,QAAQk/J,GAQtD,SAASA,EAASz8N,EAASk9D,GACzB,MAAMmsM,EAAWC,GAAMtpB,GAGjBypB,EAEsB/8P,EAAKlB,MAAM69P,GA+BvC,SAASK,EAAS93R,EAAOouQ,GACnBpuQ,IAAUouQ,EACZ9iL,EAAOtrF,GACEouB,EACTA,EAAQggP,GAGRliL,OAAK3nF,EAAW6pQ,EAEpB,CArCAtzO,EAAK+Y,IAAIgkP,EAAWJ,GAAU,SAAUz3R,EAAO8uQ,EAAMV,GACnD,GAAIpuQ,IAAU8uQ,IAASV,EACrB,OAAO0pB,EAAS93R,GAKlB,MAAM+3R,EAEsBjpB,EAGtBkpB,EAAgBl9P,EAAKT,UAAU09P,EAAa3pB,GA2iB1D,IAAyBztQ,EACC,kBADDA,EAziBGq3R,IAqjB5B,SAAsBr3R,GACpB,OAAO8iC,QACL9iC,GACmB,kBAAVA,GACP,eAAgBA,GAChB,eAAgBA,EAEtB,CAlBsC21R,CAAa31R,GAziBzCytQ,EAAKztQ,MAAQq3R,EAEb5pB,EAAK72O,OAASygQ,EAGhBF,EAAS93R,EAAsDouQ,EACjE,GAiBF,CACF,CAiCA6pB,WAAAA,CAAY7pB,GAEV,IAEI72O,EAFA2gQ,GAAW,EAYf,OARA9tQ,KAAKshB,SACLisP,GAAa,cAAevtQ,KAAK0qN,QAAU1qN,KAAK6sQ,QAChDW,GAAe,cAAextQ,KAAK+iQ,UAAY/iQ,KAAK4sQ,UAEpD5sQ,KAAKloB,QAAQksQ,GASb,SAAkBpuQ,EAAOouQ,GACvB8pB,GAAW,EACXpE,GAAK9zR,GACLu3B,EAAS62O,CACX,IAZA+pB,GAAW,cAAe,UAAWD,GAG9B3gQ,CAUT,CAwCAsc,GAAAA,CAAIi7N,EAAMV,EAAMliL,GACdksM,GAAWtpB,GACX1kP,KAAKshB,SAEL,MAAMynH,EAAe/oI,KAAK+oI,aAO1B,OALKjnE,GAAwB,oBAATkiL,IAClBliL,EAAOkiL,EACPA,OAAO7pQ,GAGF2nF,EAAO2+J,OAAStmP,EAAW2nF,GAAQ,IAAIP,QAAQk/J,GAWtD,SAASA,EAASz8N,EAASk9D,GAKzB,MAAMmsM,EAAWC,GAAMtpB,GACvBj7G,EAAat/G,IAAIi7N,EAAM2oB,GAQvB,SAAkBz3R,EAAOq4R,EAAYjqB,GACnC,MAAMkqB,EAEFD,GAAcvpB,EAGd9uQ,EACFsrF,EAAOtrF,GACEouB,EACTA,EAAQkqQ,GAGRpsM,OAAK3nF,EAAW+zR,EAAelqB,EAEnC,GACF,CACF,CAmBAmqB,OAAAA,CAAQzpB,EAAMV,GAEZ,IAEI72O,EAFA2gQ,GAAW,EAQf,OAJA9tQ,KAAKypB,IAAIi7N,EAAMV,GASf,SAAkBpuQ,EAAO8uQ,GACvBglB,GAAK9zR,GACLu3B,EAASu3O,EACTopB,GAAW,CACb,IAXAC,GAAW,UAAW,MAAOD,GAEtB3gQ,CAUT,CA+BA8C,SAAAA,CAAUy0O,EAAMV,GACdhkP,KAAKshB,SACL,MAAM+rP,EAAWC,GAAMtpB,GACjB+e,EAAW/iQ,KAAK+iQ,UAAY/iQ,KAAK4sQ,SAIvC,OAHAY,GAAe,YAAazK,GAC5BiL,GAAWtpB,GAEJqe,EAASre,EAAM2oB,EACxB,CA2DAt6C,GAAAA,CAAIx8O,GACF,MAAMu2R,EAAY9sQ,KAAK8sQ,UACjBG,EAAYjtQ,KAAKitQ,UAIvB,GAFAE,GAAe,MAAOntQ,KAAKgtQ,QAEb,OAAVz2R,QAA4B4D,IAAV5D,QAEf,GAAqB,oBAAVA,EAAsB,SAAA8wG,EAAAxrG,UAAAzH,OAR5Bi0Q,EAAU,IAAA1zQ,MAAA0yG,EAAA,EAAAA,EAAA,KAAA0B,EAAA,EAAAA,EAAA1B,EAAA0B,IAAVs/J,EAAUt/J,EAAA,GAAAltG,UAAAktG,GASpBqlL,EAAU73R,EAAO8xQ,EACnB,KAAO,IAAqB,kBAAV9xQ,EAOhB,MAAM,IAAIkgC,UAAU,+BAAiClgC,EAAQ,KANzD5B,MAAM+4B,QAAQn3B,GAChB83R,EAAQ93R,GAER+3R,EAAU/3R,EAId,CAEA,OAAOypB,KAMP,SAAS0rB,EAAIn1C,GACX,GAAqB,oBAAVA,EACT63R,EAAU73R,EAAO,QACZ,IAAqB,kBAAVA,EAShB,MAAM,IAAIkgC,UAAU,+BAAiClgC,EAAQ,KAR7D,GAAI5B,MAAM+4B,QAAQn3B,GAAQ,CACxB,MAAO6xI,KAAWigI,GAC4B9xQ,EAC9C63R,EAAUhmJ,EAAQigI,EACpB,MACEimB,EAAU/3R,EAId,CACF,CAMA,SAAS+3R,EAAUnhQ,GACjB,KAAM,YAAaA,MAAa,aAAcA,GAC5C,MAAM,IAAIhgB,MACR,8KAIJkhR,EAAQlhQ,EAAO2/I,SAEX3/I,EAAO45O,WACTkmB,EAAUlmB,SAAWrxJ,IAAO,EAAMu3K,EAAUlmB,SAAU55O,EAAO45O,UAEjE,CAMA,SAASsnB,EAAQvhH,GACf,IAAItiK,GAAS,EAEb,GAAgB,OAAZsiK,QAAgC3yK,IAAZ2yK,OAEjB,KAAIn4K,MAAM+4B,QAAQo/I,GAMvB,MAAM,IAAIr2I,UAAU,oCAAsCq2I,EAAU,KALpE,OAAStiK,EAAQsiK,EAAQ14K,QAAQ,CAE/Bs3C,EADcohI,EAAQtiK,GAExB,CAGF,CACF,CAOA,SAAS4jR,EAAUhmJ,EAAQigI,GACzB,IAAI79P,GAAS,EACT+jR,GAAc,EAElB,OAAS/jR,EAAQsiR,EAAU14R,QACzB,GAAI04R,EAAUtiR,GAAO,KAAO49H,EAAQ,CAClCmmJ,EAAa/jR,EACb,KACF,CAGF,IAAoB,IAAhB+jR,EACFzB,EAAUppQ,KAAK,CAAC0kH,KAAWigI,SAIxB,GAAIA,EAAWj0Q,OAAS,EAAG,CAC9B,IAAKo6R,KAAYhxM,GAAQ6qL,EACzB,MAAMomB,EAAiB3B,EAAUyB,GAAY,GACzCG,GAAWD,IAAmBC,GAAWF,KAC3CA,EAAU94K,IAAO,EAAM+4K,EAAgBD,IAGzC1B,EAAUyB,GAAc,CAACnmJ,EAAQomJ,KAAYhxM,EAC/C,CACF,CACF,EA+BK,MAAMmxM,IAAU,IAAIhC,IAAYrrP,SASvC,SAASisP,GAAalwR,EAAM9G,GAC1B,GAAqB,oBAAVA,EACT,MAAM,IAAIkgC,UAAU,WAAap5B,EAAO,qBAE5C,CASA,SAASmwR,GAAenwR,EAAM9G,GAC5B,GAAqB,oBAAVA,EACT,MAAM,IAAIkgC,UAAU,WAAap5B,EAAO,uBAE5C,CASA,SAAS8vR,GAAe9vR,EAAM2vR,GAC5B,GAAIA,EACF,MAAM,IAAI7/Q,MACR,gBACE9P,EACA,mHAGR,CAQA,SAAS2wR,GAAWxnP,GAGlB,IAAKkoP,GAAWloP,IAA8B,kBAAdA,EAAKzlC,KACnC,MAAM,IAAI01B,UAAU,uBAAyB+P,EAAO,IAGxD,CAUA,SAASunP,GAAW1wR,EAAMuxR,EAAWd,GACnC,IAAKA,EACH,MAAM,IAAI3gR,MACR,IAAM9P,EAAO,0BAA4BuxR,EAAY,YAG3D,CAMA,SAAStB,GAAM/2R,GACb,OAOF,SAAyBA,GACvB,OAAO8iC,QACL9iC,GACmB,kBAAVA,GACP,YAAaA,GACb,aAAcA,EAEpB,CAdSs4R,CAAgBt4R,GAASA,EAAQ,IAAI01R,GAAM11R,EACpD,CCtqCA,MAIMu4R,GAAe,GAEfC,GAA2B,CAAC/H,oBAAoB,GAChDgI,GAAe,gCAIfC,GAAe,CACnB,CAACr6R,KAAM,aAAc0H,GAAI,wCACzB,CAAC1H,KAAM,qBAAsB0H,GAAI,wCACjC,CACE1H,KAAM,YACN0H,GAAI,qDACJ0B,GAAI,gBAEN,CACEpJ,KAAM,eACN0H,GAAI,qDACJ0B,GAAI,mBAEN,CACEpJ,KAAM,kBACN0H,GAAI,qDACJ0B,GAAI,sBAEN,CAACpJ,KAAM,aAAc0H,GAAI,wCACzB,CAAC1H,KAAM,sBAAuB0H,GAAI,+BAClC,CACE1H,KAAM,mBACN0H,GAAI,kDAEN,CAAC1H,KAAM,aAAc0H,GAAI,qBACzB,CAAC1H,KAAM,UAAW0H,GAAI,kCAAmC0B,GAAI,iBAC7D,CAACpJ,KAAM,eAAgB0H,GAAI,wBAC3B,CAAC1H,KAAM,YAAa0H,GAAI,iCAAkC0B,GAAI,cAC9D,CAACpJ,KAAM,SAAU0H,GAAI,4BAA6B0B,GAAI,YACtD,CAACpJ,KAAM,YAAa0H,GAAI,qBACxB,CAAC1H,KAAM,oBAAqB0H,GAAI,oBAAqB0B,GAAI,gBACzD,CAACpJ,KAAM,mBAAoB0H,GAAI,oBAAqB0B,GAAI,iBAWnD,SAASkxR,GAASjvQ,GACvB,MAAMkvQ,EAAkBlvQ,EAAQkvQ,gBAC1BC,EAAenvQ,EAAQmvQ,aACvB54R,EAAWypB,EAAQzpB,UAAY,GAC/BE,EAAYupB,EAAQvpB,UACpBsuQ,EAAa/kP,EAAQ+kP,WACrBqqB,EAAqBpvQ,EAAQovQ,mBAC7BC,EAAgBrvQ,EAAQqvQ,eAAiBR,GACzCS,EAAgBtvQ,EAAQsvQ,eAAiBT,GACzCU,EAAsBvvQ,EAAQuvQ,oBAChC,IAAIvvQ,EAAQuvQ,uBAAwBT,IACpCA,GACEU,EAAWxvQ,EAAQwvQ,SACnBC,EAAmBzvQ,EAAQyvQ,iBAC3BC,EAAe1vQ,EAAQ0vQ,cAAgBC,GAEvCC,EAAYlB,KACf57C,IAAIuwC,IACJvwC,IAAIw8C,GACJx8C,IAAIy2C,GAAcgG,GAClBz8C,IAAIu8C,GAEDtrB,EAAO,IAAIioB,GAEO,kBAAbz1R,IACTwtQ,EAAKztQ,MAAQC,GAef,IAAK,MAAMs5R,KAAeb,GACpBh1R,OAAO26G,OAAO30F,EAAS6vQ,EAAYl7R,QAGjCk7R,EAAYl7R,KAEXk7R,EAAY9xR,IACC8xR,EAAY9xR,GAK1B8xR,EAAYxzR,IAMpB,MAAMyzR,EAAYF,EAAUrgQ,MAAMw0O,GAElC,IAAIylB,EAAWoG,EAAU1B,QAAQ4B,EAAW/rB,GAiB5C,OAdIttQ,IACF+yR,EAAW,CACT1oR,KAAM,UACNopC,QAAS,MACT83G,WAAY,CAACvrJ,aAEbF,SACoB,SAAlBizR,EAAS1oR,KAAkB0oR,EAASjzR,SAAW,CAACizR,KAKtDh5C,GAAMg5C,GAaN,SAAmBjjP,EAAMh8B,EAAO0hB,GAC9B,GAAkB,QAAdsa,EAAKzlC,MAAkBmrB,GAA2B,kBAAV1hB,EAO1C,OANIilR,EACFvjQ,EAAO11B,SAASyqC,OAAOz2B,EAAO,GAE9B0hB,EAAO11B,SAASgU,GAAS,CAACzJ,KAAM,OAAQxK,MAAOiwC,EAAKjwC,OAG/CiU,EAGT,GAAkB,YAAdg8B,EAAKzlC,KAAoB,CAE3B,IAAI/G,EAEJ,IAAKA,KAAOiuQ,GACV,GACEhuQ,OAAO26G,OAAOqzJ,GAAejuQ,IAC7BC,OAAO26G,OAAOpuE,EAAKy7G,WAAYjoJ,GAC/B,CACA,MAAMzD,EAAQiwC,EAAKy7G,WAAWjoJ,GACxBgpC,EAAOilO,GAAcjuQ,IACd,OAATgpC,GAAiBA,EAAK7uC,SAASqyC,EAAK2D,YACtC3D,EAAKy7G,WAAWjoJ,GAAO21R,EAAaj5P,OAAOngC,GAAS,IAAKyD,EAAKwsC,GAElE,CAEJ,CAEA,GAAkB,YAAdA,EAAKzlC,KAAoB,CAC3B,IAAIksD,EAASkiO,GACRA,EAAgBh7R,SAASqyC,EAAK2D,WAC/BklP,GACAA,EAAmBl7R,SAASqyC,EAAK2D,SAOrC,IAJK8iB,GAAUmiO,GAAiC,kBAAV5kR,IACpCyiD,GAAUmiO,EAAa5oP,EAAMh8B,EAAO0hB,IAGlC+gC,GAAU/gC,GAA2B,kBAAV1hB,EAO7B,OANIklR,GAAoBlpP,EAAKhwC,SAC3B01B,EAAO11B,SAASyqC,OAAOz2B,EAAO,KAAMg8B,EAAKhwC,UAEzC01B,EAAO11B,SAASyqC,OAAOz2B,EAAO,GAGzBA,CAEX,CACF,IA7DOi6P,GAAaglB,EAAU,CAC5BnmD,SAAQ,YACR0hC,aACAI,oBAAoB,EACpB7hC,IAAG,OACHC,KAAI,QACJ6hC,UAAU,EACVC,UAAU,GAuDd,CAWO,SAASsqB,GAAoBr5R,GAIlC,MAAMy5R,EAAQz5R,EAAMy0C,QAAQ,KACtBilP,EAAe15R,EAAMy0C,QAAQ,KAC7BklP,EAAa35R,EAAMy0C,QAAQ,KAC3BqqO,EAAQ9+Q,EAAMy0C,QAAQ,KAE5B,OAEEglP,EAAQ,GAEP3a,GAAS,GAAK2a,EAAQ3a,GACtB4a,GAAgB,GAAKD,EAAQC,GAC7BC,GAAc,GAAKF,EAAQE,GAE5BlB,GAAahsP,KAAKzsC,EAAM6Y,MAAM,EAAG4gR,IAE1Bz5R,EAGF,EACT,IC/TI45R,yBAA2B,CAAC,EAGhC,SAAStkD,oBAAoBukD,GAE5B,IAAIC,EAAeF,yBAAyBC,GAC5C,QAAqBj2R,IAAjBk2R,EACH,OAAOA,EAAa5gO,QAGrB,IAAI/iD,EAASyjR,yBAAyBC,GAAY,CAGjD3gO,QAAS,CAAC,GAOX,OAHA6gO,oBAAoBF,GAAU/6P,KAAK3oB,EAAO+iD,QAAS/iD,EAAQA,EAAO+iD,QAASo8K,qBAGpEn/N,EAAO+iD,OACf,CCtBAo8K,oBAAoB0kD,KAAO,CAAC,ECC5B1kD,oBAAoB52M,EAAKvoB,IACxB,IAAI8jR,EAAS9jR,GAAUA,EAAOmqN,WAC7B,IAAOnqN,EAAiB,QACxB,IAAM,EAEP,OADAm/N,oBAAoBxlO,EAAEmqR,EAAQ,CAAEttQ,EAAGstQ,IAC5BA,CAAM,QCNd,IACIC,EADAC,EAAWz2R,OAAO2+L,eAAkBr3J,GAAStnC,OAAO2+L,eAAer3J,GAASA,GAASA,EAAa,UAQtGsqM,oBAAoBl7M,EAAI,SAASp6B,EAAO2jC,GAEvC,GADU,EAAPA,IAAU3jC,EAAQypB,KAAKzpB,IAChB,EAAP2jC,EAAU,OAAO3jC,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAP2jC,GAAa3jC,EAAMsgO,WAAY,OAAOtgO,EAC1C,GAAW,GAAP2jC,GAAoC,oBAAf3jC,EAAMgE,KAAqB,OAAOhE,CAC5D,CACA,IAAIo6R,EAAK12R,OAAO28B,OAAO,MACvBi1M,oBAAoBz0N,EAAEu5Q,GACtB,IAAIx5I,EAAM,CAAC,EACXs5I,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIxmR,EAAiB,EAAPgwB,GAAY3jC,EAAyB,iBAAX2T,KAAyBumR,EAAezlP,QAAQ9gC,GAAUA,EAAUwmR,EAASxmR,GACxHjQ,OAAOqzO,oBAAoBpjO,GAAS7V,SAAS2F,GAASm9I,EAAIn9I,GAAO,IAAOzD,EAAMyD,KAI/E,OAFAm9I,EAAa,QAAI,IAAM,EACvB00F,oBAAoBxlO,EAAEsqR,EAAIx5I,GACnBw5I,CACR,MCxBA9kD,oBAAoBxlO,EAAI,CAACopD,EAASk3L,KACjC,IAAI,IAAI3sP,KAAO2sP,EACX9a,oBAAoBp9L,EAAEk4M,EAAY3sP,KAAS6xO,oBAAoBp9L,EAAEghB,EAASz1D,IAC5EC,OAAOuwD,eAAeiF,EAASz1D,EAAK,CAAEq7G,YAAY,EAAMliH,IAAKwzP,EAAW3sP,IAE1E,ECHD6xO,oBAAoBnrO,EAAI,IAAO6gF,QAAQv9D,UCHvC6nN,oBAAoB9xK,EAAI,WACvB,GAA0B,kBAAf0zK,WAAyB,OAAOA,WAC3C,IACC,OAAOztN,MAAQ,IAAIowK,SAAS,cAAb,EAChB,CAAE,MAAO1vL,GACR,GAAsB,kBAAXrL,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBw2O,oBAAoBp9L,EAAI,CAAClN,EAAKk2E,IAAUx9G,OAAOk7B,UAAUC,eAAeC,KAAKkM,EAAKk2E,GCClFo0H,oBAAoBz0N,EAAKq4C,IACH,qBAAX5hC,QAA0BA,OAAOk/M,aAC1C9yO,OAAOuwD,eAAeiF,EAAS5hC,OAAOk/M,YAAa,CAAEx2O,MAAO,WAE7D0D,OAAOuwD,eAAeiF,EAAS,aAAc,CAAEl5D,OAAO,GAAO,ECL9Ds1O,oBAAoB32M,EAAI,ICGxB,IAAI07P,oBAAsB/kD,oBAAoB","sources":["lib/img/Logo.svg","lib/img/pathwaysArrow.svg","App.tsx","Constants.ts","api/Error.ts","api/auth/ChangePassword.ts","api/auth/ChangePreferences.ts","api/auth/CreateUser.ts","api/auth/DeleteAccount.ts","api/auth/LoginAttempt.ts","api/auth/ResetPassword.ts","api/auth/ValidateToken.ts","api/email/InitiateEmailChange.ts","api/email/SendOtp.ts","api/email/SetNewEmail.ts","api/email/VerifyOtp.ts","api/tools/chatBot/ChatBot.ts","api/tools/chatBot/ChatBotLikes.ts","api/tools/p5f/DeleteP5F.ts","api/tools/p5f/GetP5F.ts","api/tools/p5f/SaveP5F.ts","api/webUsage/GetWebUsageSummary.ts","api/webUsage/ReportWebUsage.ts","components/Footer.tsx","components/LoadIcon.tsx","components/LoadingPage.tsx","components/LoginSoon.tsx","components/LogoSvg.tsx","components/auth/Account.tsx","components/auth/EditAccount.tsx","components/auth/ForgotPassword.tsx","components/auth/Login.tsx","components/auth/LoginWall.tsx","components/auth/NotAdmin.tsx","components/auth/OtpVerifier.tsx","components/auth/Payment.tsx","components/auth/Register.tsx","components/auth/Support.tsx","components/bootstrap_icons/Book.tsx","components/bootstrap_icons/House.tsx","components/bootstrap_icons/Menu.tsx","components/bootstrap_icons/RightArrow.tsx","components/bootstrap_icons/SearchIcon.tsx","components/bootstrap_icons/SendArrow.tsx","components/bootstrap_icons/Stars.tsx","components/bootstrap_icons/ThumbsDown.tsx","components/bootstrap_icons/ThumbsUp.tsx","components/bootstrap_icons/User.tsx","components/chat_bot/ChatWindow.tsx","components/commandments/CommandmentsRoot.tsx","components/commandments/pages/1-NorthStar.tsx","components/commandments/pages/10-Lead.tsx","components/commandments/pages/2-ReallyMatter.tsx","components/commandments/pages/3-CompeteWin.tsx","components/commandments/pages/4-Moat.tsx","components/commandments/pages/5-Capabilities.tsx","components/commandments/pages/6-Expand.tsx","components/commandments/pages/7-GainsAndGoals.tsx","components/commandments/pages/8-Innovate.tsx","components/commandments/pages/9-Levels.tsx","components/concepts/ConceptRoot.tsx","components/concepts/components/Wedge.tsx","components/concepts/pages/AdjacentMarketExpansion.tsx","components/concepts/pages/BlueOcean.tsx","components/concepts/pages/Cage.tsx","components/concepts/pages/ConsumptionChain.tsx","components/concepts/pages/Differentiation.tsx","components/concepts/pages/EntryModes.tsx","components/concepts/pages/ExperienceCurve.tsx","components/concepts/pages/IndirectAssault.tsx","components/concepts/pages/InternationalStrategy.tsx","components/concepts/pages/JobsToBeDoneConcept.tsx","components/concepts/pages/PortersFiveForces.tsx","components/concepts/pages/PortersGenericStrategies.tsx","components/concepts/pages/ScaleCurve.tsx","components/concepts/pages/StrategyCanvas.tsx","components/concepts/pages/SunkCostFallacy.tsx","components/concepts/pages/ThreeHorizons.tsx","components/concepts/pages/TripleA.tsx","components/focuses/FocusRoot.tsx","components/focuses/maps/CapabilitiesMap.tsx","components/focuses/maps/MainMap.tsx","components/focuses/maps/UniqueValueMap.tsx","components/focuses/pages/CustomerUnmetNeeds.tsx","components/focuses/pages/FoundationInPurpose.tsx","components/focuses/pages/OperatingArena.tsx","components/focuses/pages/SafeguardsAgainstImitation.tsx","components/focuses/pages/UnifiedBusinessModel.tsx","components/main_pages/AnimationTest.tsx","components/main_pages/Codex.tsx","components/main_pages/CommandmentsHome.tsx","../node_modules/@canvasjs/react-charts/canvasjs.react.js","components/main_pages/Dashboard.tsx","components/main_pages/ErrorPage.tsx","components/main_pages/FocusHome.tsx","components/main_pages/Home.tsx","components/main_pages/QrCode.tsx","components/main_pages/Team.tsx","components/main_pages/Videos.tsx","components/navigation/BackToTop.tsx","components/navigation/Breadcrumb.tsx","components/navigation/BreadcrumbsAndArrows.tsx","components/navigation/MasterSidebar.tsx","components/navigation/Nav.tsx","components/navigation/NavArrows.tsx","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/InputGroupText.js","../node_modules/react-bootstrap/esm/InputGroup.js","components/navigation/SearchBar.tsx","components/navigation/SearchPage.tsx","components/pathways/PathwayRoot.tsx","components/pathways/pages/CustomerUnmetNeeds/CJobsToBeDonePathway.tsx","components/pathways/pages/CustomerUnmetNeeds/PainPointsPathway.tsx","components/pathways/pages/CustomerUnmetNeeds/UniqueValuePathway.tsx","components/pathways/pages/FoundationInPurpose/AlignmentPathway.tsx","components/pathways/pages/FoundationInPurpose/DefineMissionPathway.tsx","components/pathways/pages/FoundationInPurpose/DefineValuesPathway.tsx","components/pathways/pages/FoundationInPurpose/DefineVisionPathway.tsx","components/pathways/pages/FoundationInPurpose/EthicsPathway.tsx","components/pathways/pages/OperatingArena/ChosenPositionPathway.tsx","components/pathways/pages/OperatingArena/CustomerIdentificationPathway.tsx","components/pathways/pages/OperatingArena/EvaluateIndustryPathway.tsx","components/pathways/pages/OperatingArena/JobsToBeDonePathway.tsx","components/pathways/pages/OperatingArena/SegmentsPathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/CustomerAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/LocationAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/NetworkAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/ResourceAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway.tsx","components/pathways/pages/SafeguardsAgainstImitation/TimingAdvantagePathway.tsx","components/pathways/pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway.tsx","components/pathways/pages/UnifiedBusinessModel/ExistingRAndCPathway.tsx","components/pathways/pages/UnifiedBusinessModel/ImplementChangesPathway.tsx","components/templates/Error.tsx","components/templates/HorizontalAccordion.tsx","components/templates/Message.tsx","components/templates/PageTitleBanner.tsx","components/templates/SidebarPage.tsx","components/tools/ToolsHome.tsx","components/tools/ToolsRoot.tsx","../node_modules/react-circular-slider-svg/dist/circularGeometry.js","../node_modules/react-circular-slider-svg/dist/svgPaths.js","../node_modules/react-circular-slider-svg/dist/index.js","components/tools/pages/PortersFiveForcesCalculator.tsx","components/tools/pages/StrategyCanvasCalculator.tsx","components/tools/pages/ThreeHorizonsCalculator.tsx","context/UserContext.ts","design_lib/Headers.tsx","design_lib/Image.tsx","design_lib/Paragraph.tsx","design_lib/RelatedFrameworks.tsx","design_lib/Updated.tsx","hooks/useChatBot.ts","../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/@react-hook/passive-layout-effect/dist/module/index.js","../node_modules/@react-hook/latest/dist/module/index.js","../node_modules/@react-hook/resize-observer/dist/module/index.js","hooks/useElementSize.ts","hooks/useUser.ts","hooks/useWindowSize.ts","index.tsx","init/InitializeAxios.ts","lib/data/AnimationData.ts","lib/data/Categories.ts","lib/data/CodexViews.ts","lib/data/Commandments.ts","lib/data/Concepts.ts","lib/data/Focuses.ts","lib/data/Pathways.ts","lib/data/Students.ts","lib/data/Tools.ts","lib/data/Videos.ts","lib/data/Views.ts","types/JsonType.ts","utils/GetFuncParams.ts","utils/PasswordValidator.ts","utils/SetDocumentTitle.ts","../node_modules/@canvasjs/charts/canvasjs.min.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/extend/index.js","../node_modules/inline-style-parser/index.js","../node_modules/invariant/browser.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qr.js/lib/8BitByte.js","../node_modules/qr.js/lib/BitBuffer.js","../node_modules/qr.js/lib/ErrorCorrectLevel.js","../node_modules/qr.js/lib/Polynomial.js","../node_modules/qr.js/lib/QRCode.js","../node_modules/qr.js/lib/RSBlock.js","../node_modules/qr.js/lib/math.js","../node_modules/qr.js/lib/mode.js","../node_modules/qr.js/lib/util.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/AccordionContext.js","../node_modules/react-bootstrap/esm/AccordionCollapse.js","../node_modules/react-bootstrap/esm/AccordionItemContext.js","../node_modules/react-bootstrap/esm/AccordionBody.js","../node_modules/react-bootstrap/esm/AccordionButton.js","../node_modules/react-bootstrap/esm/AccordionHeader.js","../node_modules/react-bootstrap/esm/AccordionItem.js","../node_modules/react-bootstrap/esm/Accordion.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/react-bootstrap/esm/types.js","../node_modules/react-bootstrap/esm/DropdownButton.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-device-detect/dist/lib.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-qr-code/lib/QRCodeSvg/index.js","../node_modules/react-qr-code/lib/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/src/index.ts","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/warning/warning.js","webpack://strategy-codex-1/./src/App.css?c4bf","webpack://strategy-codex-1/./src/Bootstrap.css?026d","components/commandments|lazy|/^.*$/|groupOptions: {}|namespace object","components/concepts|lazy|/^.*$/|groupOptions: {}|namespace object","components/focuses|lazy|/^.*$/|groupOptions: {}|namespace object","components/pathways|lazy|/^.*$/|groupOptions: {}|namespace object","components/tools|lazy|/^.*$/|groupOptions: {}|namespace object","lib/img/letters|sync|/^/.//.*/.png$","../src|sync|/^/.//.*$","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/style-to-object/esm/index.mjs","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/startup"],"sourcesContent":["var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 3850,\n height: 3850,\n viewBox: \"0 0 3850 3850\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1925 3850C2988.15 3850 3850 2988.15 3850 1925C3850 861.852 2988.15 0 1925 0C861.852 0 0 861.852 0 1925C0 2988.15 861.852 3850 1925 3850ZM3800 1925C3800 2960.53 2960.53 3800 1925 3800C889.466 3800 50 2960.53 50 1925C50 889.466 889.466 50 1925 50C2960.53 50 3800 889.466 3800 1925ZM342.853 1011.55L1925 98.094L3507.15 1011.55V2838.45L1925 3751.91L342.853 2838.45V1011.55ZM1925 75L3527.15 1000V2850L1925 3775L322.853 2850V1000L1925 75ZM1938.35 317C2207.83 319.96 2467.57 466.972 2609.9 704.721C2332.84 700.336 2075.65 548.898 1938.35 317ZM1903.89 328.067C1905.88 324.391 1907.9 320.729 1909.95 317.083C1633.13 321.697 1376.24 473.081 1239.04 704.794C1504.34 701.884 1760.21 559.351 1903.89 328.067ZM539.414 1108.74C676.679 876.907 933.764 725.488 1210.74 721.02C1209.92 722.487 1209.11 723.957 1208.31 725.429C1065.41 960.588 807.223 1105.8 539.414 1108.74ZM1210.45 1512.64C1068.16 1274.96 808.515 1127.96 539.117 1124.92C540.012 1126.53 540.902 1128.14 541.785 1129.75C679.782 1358.92 935.315 1508.29 1210.45 1512.64ZM527.808 1137.78C526.862 1136.21 525.92 1134.63 524.985 1133.05C390.363 1375.15 392.952 1673.51 525.092 1908.3C656.378 1675.04 659.787 1379.03 527.808 1137.78ZM525.092 1940.75C390.399 2182.82 392.916 2481.17 524.981 2715.99C525.961 2714.35 526.946 2712.72 527.936 2711.09C657.302 2477.03 658.854 2181.14 525.092 1940.75ZM1210.21 3128.67C933.146 3124.29 675.959 2972.85 538.66 2740.95C808.136 2743.91 1067.88 2890.92 1210.21 3128.67ZM1910.27 3532.61C1633.21 3528.23 1376.02 3376.79 1238.72 3144.89C1508.2 3147.85 1767.94 3294.87 1910.27 3532.61ZM2611.74 3144.96C2469.41 3382.72 2209.67 3529.73 1940.19 3532.69C2077.49 3300.79 2334.68 3149.35 2611.74 3144.96ZM3311.37 2741.02C3169.04 2978.78 2909.29 3125.79 2639.81 3128.74C2777.12 2896.85 3034.3 2745.41 3311.37 2741.02ZM3320.75 2708.86C3322.2 2711.25 3323.64 2713.65 3325.06 2716.05C3457.05 2481.31 3459.58 2183.1 3325.02 1941.09C3324.13 1942.58 3323.24 1944.06 3322.34 1945.53C3191.62 2184.27 3193.52 2476.68 3320.75 2708.86ZM3324.9 1133C3459.64 1375.14 3457.08 1673.59 3324.9 1908.45C3192.73 1673.59 3190.17 1375.14 3324.9 1133ZM3297.42 1108.37C3301.49 1108.26 3305.57 1108.18 3309.65 1108.14C3167.25 870.698 2907.69 723.902 2638.41 720.944C2773.64 949.338 3025.15 1099.68 3297.42 1108.37ZM1917.84 336.156C1792.49 568.142 1791.58 859.269 1922.33 1096.9L1922.78 1097.65L1923.07 1098.13C1923.45 1098.76 1923.83 1099.4 1924.21 1100.04C2058.76 858.115 2056.29 560.018 1924.45 325.297C1922.27 328.937 1920.07 332.557 1917.84 336.156ZM1908.37 1104.97C1765.57 869.393 1507.12 723.889 1239.05 720.944C1376.32 952.792 1633.42 1104.21 1910.42 1108.66C1910.03 1107.97 1909.64 1107.27 1909.26 1106.57C1908.96 1106.04 1908.67 1105.51 1908.37 1104.97ZM1222.27 733.485C1090.14 974.789 1093.5 1270.93 1224.83 1504.29C1356.97 1269.5 1359.56 971.15 1224.94 729.047C1224.05 730.53 1223.16 732.009 1222.27 733.485ZM1210.21 1528.98C933.396 1533.6 676.501 1684.98 539.306 1916.69C804.609 1913.78 1060.48 1771.25 1204.16 1539.96C1206.15 1536.29 1208.16 1532.63 1210.21 1528.98ZM1218.1 1548.05C1092.75 1780.04 1091.84 2071.17 1222.59 2308.81C1223.22 2309.85 1223.85 2310.89 1224.48 2311.94C1359.02 2070.02 1356.55 1771.92 1224.72 1537.2C1222.54 1540.84 1220.33 1544.45 1218.1 1548.05ZM1208.64 2316.87C1065.83 2081.29 807.386 1935.79 539.309 1932.85C674.531 2161.24 926.042 2311.58 1198.3 2320.27C1202.33 2320.16 1206.36 2320.08 1210.39 2320.04C1209.8 2318.98 1209.22 2317.93 1208.64 2316.87ZM541.878 2719.18C682.609 2487.79 934.993 2343.57 1198.27 2336.39C1202.27 2336.51 1206.28 2336.61 1210.29 2336.67C1072.94 2568.21 816.033 2719.41 539.259 2723.87C540.138 2722.31 541.01 2720.74 541.878 2719.18ZM1925.43 3524.09C1790.7 3281.95 1793.25 2983.5 1925.43 2748.64C2057.61 2983.5 2060.17 3281.95 1925.43 3524.09ZM2611.31 3128.67C2334.24 3124.29 2077.05 2972.85 1939.76 2740.95C2209.23 2743.91 2468.98 2890.92 2611.31 3128.67ZM2639.86 2336.9C2782.2 2574.25 3041.62 2721.03 3310.78 2724.1C3309.44 2721.71 3308.11 2719.32 3306.79 2716.92C3170.52 2492.47 2921.28 2345.15 2651.75 2336.67C2647.79 2336.78 2643.82 2336.85 2639.86 2336.9ZM2651.79 2320.55C2915.18 2313.38 3167.68 2169.03 3308.38 1937.47C3308.66 1936.98 3308.93 1936.48 3309.2 1935.99L3309.46 1935.52L3309.87 1934.77L3310.41 1933.8L3310.82 1933.07C3034.04 1937.53 2777.13 2088.73 2639.8 2320.27C2643.8 2320.33 2647.79 2320.43 2651.79 2320.55ZM2638.36 1511.97C2915.14 1507.51 3172.05 1356.31 3309.39 1124.77C3305.38 1124.71 3301.38 1124.61 3297.38 1124.49C3034.1 1131.66 2781.71 1275.89 2640.98 1507.27C2640.11 1508.84 2639.24 1510.41 2638.36 1511.97ZM1239.07 1512.76C1376.35 1280.9 1633.48 1129.48 1910.49 1125.04C1910.01 1125.91 1909.53 1126.78 1909.05 1127.65C1766.38 1363.87 1507.56 1509.82 1239.07 1512.76ZM1906.45 2716.81C1770.18 2492.36 1520.95 2345.04 1251.41 2336.56C1247.45 2336.67 1243.49 2336.74 1239.52 2336.79C1381.86 2574.14 1641.28 2720.92 1910.44 2723.99C1909.1 2721.6 1907.77 2719.21 1906.45 2716.81ZM1910.27 2741.02C1767.94 2978.78 1508.2 3125.79 1238.72 3128.74C1376.02 2896.85 1633.21 2745.41 1910.27 2741.02ZM2624.08 1504.09C2625.06 1502.45 2626.05 1500.82 2627.04 1499.19C2756.37 1265.19 2757.96 969.401 2624.31 729.047C2623.42 730.53 2622.53 732.01 2621.63 733.487C2489.54 974.722 2492.86 1270.77 2624.08 1504.09ZM2617.57 1548.09C2492.22 1780.08 2491.32 2071.21 2622.06 2308.84C2622.69 2309.89 2623.32 2310.93 2623.95 2311.98C2758.49 2070.06 2756.03 1771.96 2624.19 1537.24C2622.01 1540.88 2619.81 1544.5 2617.57 1548.09ZM1941.35 2719.21C2082.09 2487.83 2334.48 2343.6 2597.75 2336.43C2601.75 2336.55 2605.75 2336.65 2609.76 2336.71C2472.42 2568.25 2215.51 2719.45 1938.73 2723.91C1939.61 2722.35 1940.48 2720.78 1941.35 2719.21ZM1941.26 1129.8C2079.26 1358.96 2334.79 1508.32 2609.92 1512.68C2467.63 1274.99 2207.99 1128 1938.59 1124.96C1939.49 1126.57 1940.38 1128.19 1941.26 1129.8ZM1938.78 1108.74C2206.59 1105.8 2464.78 960.588 2607.67 725.427C2608.48 723.956 2609.29 722.487 2610.11 721.02C2333.13 725.488 2076.04 876.907 1938.78 1108.74ZM3310.61 1916.77C3033.55 1912.38 2776.36 1760.95 2639.06 1529.05C2908.54 1532.01 3168.28 1679.02 3310.61 1916.77ZM2625.6 3120.35C2493.43 2885.49 2490.87 2587.04 2625.6 2344.91C2760.34 2587.04 2757.78 2885.49 2625.6 3120.35ZM1224.5 2344.91C1359.24 2587.04 1356.68 2885.49 1224.5 3120.35C1092.33 2885.49 1089.77 2587.04 1224.5 2344.91ZM1425.38 1636.55L1925 1348.09L2424.62 1636.55V2213.45L1925 2501.91L1425.38 2213.45V1636.55ZM1925 1325L2444.62 1625V2225L1925 2525L1405.38 2225V1625L1925 1325Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/Logo.a0c33cba3934d1365427f97253fc4b3d.svg\";\nexport { ForwardRef as ReactComponent };","var _mask, _path, _path2;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPathwaysArrow(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 324,\n height: 29,\n viewBox: \"0 0 324 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-1-inside-1_52_8\",\n fill: \"white\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.488281 3.50178C0.489137 6.75253 1.99163 9.41348 4.58916 11.4969C7.13583 13.5395 10.7552 15.0533 15.1555 16.1762C23.9657 18.4244 36.4316 19.2315 51.2223 19.118C80.6532 18.892 119.799 15.0082 158.902 11.1286L159.637 11.0557C199.036 7.1468 238.33 3.26554 267.774 3.10204C282.513 3.02019 294.654 3.8729 303.068 6.06643C307.28 7.1643 310.428 8.56626 312.497 10.2506C314.515 11.894 315.481 13.7756 315.481 16.001H318.481C318.481 12.7263 316.986 10.0375 314.391 7.92417C311.846 5.85179 308.227 4.31079 303.825 3.16345C295.014 0.866577 282.547 0.0199484 267.757 0.102083C238.141 0.266543 198.689 4.16655 159.341 8.07032L158.724 8.13148C119.532 12.02 80.4926 15.8932 51.1992 16.1181C36.4588 16.2312 24.3149 15.4174 15.8973 13.2693C11.6838 12.1941 8.53479 10.8159 6.46621 9.15668C4.4485 7.53831 3.48886 5.68764 3.48828 3.50099L0.488281 3.50178ZM310.88 18.8283C310.603 18.5588 310.305 18.2837 309.981 18.0013L310.564 18.0522C310.802 18.0729 311.031 18.0928 311.251 18.1119C313.932 18.3437 315.457 18.4597 316.981 18.4597C318.505 18.4597 320.03 18.3437 322.711 18.1119C322.975 18.0891 323.25 18.0651 323.537 18.0401L323.981 18.0013C323.658 18.2837 323.359 18.5588 323.082 18.8283C320.893 20.9604 320.061 22.7437 319.007 25.0071C318.528 26.0331 318.004 27.1579 317.286 28.4584C317.188 28.6361 317.087 28.8169 316.981 29.0013C316.876 28.8169 316.774 28.6361 316.676 28.4584C315.958 27.1579 315.434 26.0331 314.956 25.0071C313.901 22.7437 313.07 20.9604 310.88 18.8283Z\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.488281 3.50178C0.489137 6.75253 1.99163 9.41348 4.58916 11.4969C7.13583 13.5395 10.7552 15.0533 15.1555 16.1762C23.9657 18.4244 36.4316 19.2315 51.2223 19.118C80.6532 18.892 119.799 15.0082 158.902 11.1286L159.637 11.0557C199.036 7.1468 238.33 3.26554 267.774 3.10204C282.513 3.02019 294.654 3.8729 303.068 6.06643C307.28 7.1643 310.428 8.56626 312.497 10.2506C314.515 11.894 315.481 13.7756 315.481 16.001H318.481C318.481 12.7263 316.986 10.0375 314.391 7.92417C311.846 5.85179 308.227 4.31079 303.825 3.16345C295.014 0.866577 282.547 0.0199484 267.757 0.102083C238.141 0.266543 198.689 4.16655 159.341 8.07032L158.724 8.13148C119.532 12.02 80.4926 15.8932 51.1992 16.1181C36.4588 16.2312 24.3149 15.4174 15.8973 13.2693C11.6838 12.1941 8.53479 10.8159 6.46621 9.15668C4.4485 7.53831 3.48886 5.68764 3.48828 3.50099L0.488281 3.50178ZM310.88 18.8283C310.603 18.5588 310.305 18.2837 309.981 18.0013L310.564 18.0522C310.802 18.0729 311.031 18.0928 311.251 18.1119C313.932 18.3437 315.457 18.4597 316.981 18.4597C318.505 18.4597 320.03 18.3437 322.711 18.1119C322.975 18.0891 323.25 18.0651 323.537 18.0401L323.981 18.0013C323.658 18.2837 323.359 18.5588 323.082 18.8283C320.893 20.9604 320.061 22.7437 319.007 25.0071C318.528 26.0331 318.004 27.1579 317.286 28.4584C317.188 28.6361 317.087 28.8169 316.981 29.0013C316.876 28.8169 316.774 28.6361 316.676 28.4584C315.958 27.1579 315.434 26.0331 314.956 25.0071C313.901 22.7437 313.07 20.9604 310.88 18.8283Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.58916 11.4969L5.21485 10.7168L5.21484 10.7168L4.58916 11.4969ZM0.488281 3.50178L0.488018 2.50178L-0.511982 2.50204L-0.511719 3.50204L0.488281 3.50178ZM15.1555 16.1762L15.4028 15.2072L15.4028 15.2072L15.1555 16.1762ZM51.2223 19.118L51.23 20.1179L51.2223 19.118ZM158.902 11.1286L158.804 10.1335L158.804 10.1335L158.902 11.1286ZM159.637 11.0557L159.538 10.0605L159.538 10.0605L159.637 11.0557ZM267.774 3.10204L267.779 4.10202L267.774 3.10204ZM303.068 6.06643L303.321 5.09877L303.321 5.09877L303.068 6.06643ZM312.497 10.2506L313.128 9.47511L313.128 9.47511L312.497 10.2506ZM315.481 16.001H314.481V17.001H315.481V16.001ZM318.481 16.001V17.001H319.481V16.001H318.481ZM314.391 7.92417L315.022 7.1487L315.022 7.1487L314.391 7.92417ZM303.825 3.16345L303.573 4.13111L303.573 4.13111L303.825 3.16345ZM267.757 0.102083L267.762 1.10207L267.757 0.102083ZM159.341 8.07032L159.242 7.0752L159.242 7.0752L159.341 8.07032ZM158.724 8.13148L158.823 9.1266L158.823 9.1266L158.724 8.13148ZM51.1992 16.1181L51.2069 17.118L51.2069 17.118L51.1992 16.1181ZM15.8973 13.2693L15.6501 14.2383L15.6501 14.2383L15.8973 13.2693ZM6.46621 9.15668L7.0919 8.37661L7.0919 8.37661L6.46621 9.15668ZM3.48828 3.50099L4.48828 3.50072L4.48802 2.50072L3.48802 2.50099L3.48828 3.50099ZM309.981 18.0013L310.068 17.0051L307.014 16.7387L309.323 18.7546L309.981 18.0013ZM310.88 18.8283L310.182 19.5448L310.182 19.5448L310.88 18.8283ZM310.564 18.0522L310.478 19.0484L310.478 19.0484L310.564 18.0522ZM311.251 18.1119L311.165 19.1082L311.165 19.1082L311.251 18.1119ZM322.711 18.1119L322.625 17.1156L322.625 17.1156L322.711 18.1119ZM323.537 18.0401L323.624 19.0363L323.624 19.0363L323.537 18.0401ZM323.981 18.0013L324.639 18.7546L326.948 16.7386L323.894 17.0051L323.981 18.0013ZM323.082 18.8283L323.78 19.5448L323.78 19.5448L323.082 18.8283ZM319.007 25.0071L319.913 25.4296L319.913 25.4295L319.007 25.0071ZM317.286 28.4584L316.411 27.9753L316.411 27.9754L317.286 28.4584ZM316.981 29.0013L316.113 29.4983L316.981 31.0135L317.849 29.4983L316.981 29.0013ZM316.676 28.4584L317.552 27.9754L317.551 27.9753L316.676 28.4584ZM314.956 25.0071L314.049 25.4295L314.049 25.4296L314.956 25.0071ZM5.21484 10.7168C2.81008 8.78801 1.48904 6.397 1.48828 3.50151L-0.511719 3.50204C-0.510769 7.10806 1.17318 10.0389 3.96348 12.277L5.21484 10.7168ZM15.4028 15.2072C11.0648 14.1002 7.60218 12.6317 5.21485 10.7168L3.96347 12.277C6.66947 14.4474 10.4456 16.0063 14.9083 17.1451L15.4028 15.2072ZM51.2146 18.118C36.4407 18.2314 24.0821 17.4221 15.4028 15.2072L14.9083 17.1451C23.8493 19.4268 36.4225 20.2316 51.23 20.1179L51.2146 18.118ZM158.804 10.1335C119.683 14.0147 80.5896 17.8925 51.2146 18.118L51.23 20.1179C80.7169 19.8916 119.915 16.0016 159.001 12.1237L158.804 10.1335ZM159.538 10.0605L158.804 10.1335L159.001 12.1237L159.736 12.0508L159.538 10.0605ZM267.768 2.10205C238.267 2.26588 198.92 6.15338 159.538 10.0605L159.736 12.0508C199.152 8.14022 238.392 4.26521 267.779 4.10202L267.768 2.10205ZM303.321 5.09877C294.774 2.87079 282.524 2.02011 267.768 2.10205L267.779 4.10202C282.501 4.02027 294.534 4.87501 302.816 7.03409L303.321 5.09877ZM313.128 9.47511C310.901 7.66141 307.595 6.21311 303.321 5.09877L302.816 7.03409C306.965 8.11548 309.956 9.4711 311.865 11.026L313.128 9.47511ZM316.481 16.001C316.481 13.4266 315.34 11.2757 313.128 9.47511L311.865 11.026C313.691 12.5123 314.481 14.1247 314.481 16.001H316.481ZM318.481 15.001H315.481V17.001H318.481V15.001ZM313.76 8.69964C316.163 10.6567 317.481 13.0766 317.481 16.001H319.481C319.481 12.376 317.81 9.41825 315.022 7.1487L313.76 8.69964ZM303.573 4.13111C307.911 5.26194 311.373 6.75659 313.76 8.69964L315.022 7.1487C312.318 4.94699 308.542 3.35963 304.077 2.19579L303.573 4.13111ZM267.762 1.10207C282.536 1.02003 294.894 1.86868 303.573 4.13111L304.077 2.19579C295.134 -0.135525 282.559 -0.980132 267.751 -0.897901L267.762 1.10207ZM159.44 9.06543C198.805 5.15997 238.204 1.26621 267.762 1.10207L267.751 -0.897901C238.079 -0.733124 198.573 3.17313 159.242 7.0752L159.44 9.06543ZM158.823 9.1266L159.44 9.06543L159.242 7.0752L158.626 7.13637L158.823 9.1266ZM51.2069 17.118C80.5563 16.8927 119.647 13.0134 158.823 9.1266L158.626 7.13637C119.416 11.0266 80.4289 14.8936 51.1916 15.1181L51.2069 17.118ZM15.6501 14.2383C24.1985 16.4198 36.4498 17.2313 51.2069 17.118L51.1916 15.1181C36.4678 15.2311 24.4312 14.415 16.1446 12.3004L15.6501 14.2383ZM5.84053 9.93676C8.0685 11.7238 11.3743 13.1472 15.6501 14.2383L16.1446 12.3004C11.9933 11.241 9.00108 9.90793 7.0919 8.37661L5.84053 9.93676ZM2.48828 3.50125C2.48895 6.0418 3.62882 8.16278 5.84053 9.93676L7.0919 8.37661C5.26818 6.91383 4.48876 5.33347 4.48828 3.50072L2.48828 3.50125ZM0.488545 4.50178L3.48854 4.50099L3.48802 2.50099L0.488018 2.50178L0.488545 4.50178ZM309.323 18.7546C309.634 19.0258 309.919 19.2887 310.182 19.5448L311.578 18.1119C311.287 17.8289 310.975 17.5415 310.639 17.248L309.323 18.7546ZM310.651 17.056L310.068 17.0051L309.894 18.9975L310.478 19.0484L310.651 17.056ZM311.338 17.1156C311.117 17.0965 310.888 17.0767 310.651 17.056L310.478 19.0484C310.715 19.0691 310.944 19.089 311.165 19.1082L311.338 17.1156ZM316.981 17.4597C315.507 17.4597 314.024 17.3479 311.338 17.1156L311.165 19.1082C313.841 19.3395 315.407 19.4597 316.981 19.4597V17.4597ZM322.625 17.1156C319.938 17.3479 318.456 17.4597 316.981 17.4597V19.4597C318.555 19.4597 320.121 19.3395 322.797 19.1082L322.625 17.1156ZM323.45 17.0439C323.163 17.0689 322.888 17.0928 322.625 17.1156L322.797 19.1082C323.061 19.0853 323.336 19.0614 323.624 19.0363L323.45 17.0439ZM323.894 17.0051L323.45 17.0439L323.624 19.0363L324.068 18.9975L323.894 17.0051ZM323.78 19.5448C324.043 19.2887 324.328 19.0258 324.639 18.7546L323.323 17.248C322.987 17.5415 322.675 17.8289 322.385 18.1119L323.78 19.5448ZM319.913 25.4295C320.961 23.1819 321.729 21.5417 323.78 19.5448L322.385 18.1119C320.056 20.3791 319.162 22.3056 318.1 24.5846L319.913 25.4295ZM318.162 28.9416C318.898 27.608 319.435 26.4554 319.913 25.4296L318.1 24.5846C317.622 25.6109 317.11 26.7077 316.411 27.9753L318.162 28.9416ZM317.849 29.4983C317.957 29.3093 318.061 29.1237 318.162 28.9415L316.411 27.9754C316.315 28.1484 316.216 28.3246 316.113 28.5043L317.849 29.4983ZM315.8 28.9415C315.901 29.1237 316.005 29.3093 316.113 29.4983L317.849 28.5043C317.746 28.3246 317.647 28.1484 317.552 27.9754L315.8 28.9415ZM314.049 25.4296C314.528 26.4554 315.065 27.608 315.8 28.9416L317.551 27.9753C316.852 26.7077 316.34 25.6109 315.862 24.5846L314.049 25.4296ZM310.182 19.5448C312.233 21.5417 313.002 23.1819 314.049 25.4295L315.862 24.5846C314.8 22.3056 313.906 20.3791 311.578 18.1119L310.182 19.5448Z\",\n fill: \"black\",\n mask: \"url(#path-1-inside-1_52_8)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPathwaysArrow);\nexport default __webpack_public_path__ + \"static/media/pathwaysArrow.4a7d61a4c53e701a014da1bae68774dc.svg\";\nexport { ForwardRef as ReactComponent };","import { Outlet, useLocation, useSearchParams } from \"react-router-dom\";\r\nimport { useEffect } from \"react\";\r\nimport UserContext from \"context/UserContext\";\r\nimport Nav from \"components/navigation/Nav\";\r\nimport Footer from \"components/Footer\";\r\nimport useUser from \"hooks/useUser\";\r\nimport { ReportWebUsage } from \"api/webUsage/ReportWebUsage\";\r\nimport LoginSoon from \"components/LoginSoon\";\r\nimport ChatWindow from \"components/chat_bot/ChatWindow\";\r\n\r\nfunction HighlightResult(sourceStr: string, searchInput: string) {\r\n const regex = new RegExp(searchInput, \"gi\");\r\n const matches = Array.from(new Set(sourceStr.match(regex) || []));\r\n\r\n matches.forEach((match) => {\r\n sourceStr = sourceStr.replaceAll(match, `${match}`);\r\n });\r\n\r\n sourceStr = sourceStr.replaceAll(\r\n ``,\r\n ``,\r\n );\r\n\r\n return sourceStr;\r\n}\r\n\r\nexport default function App() {\r\n const { pathname } = useLocation();\r\n const [searchParams] = useSearchParams();\r\n\r\n useEffect(() => {\r\n const searchResultParam = searchParams.get(\"searchResult\");\r\n if (searchResultParam) {\r\n // Hacky Solution: Wait for the Dom to fully load\r\n setTimeout(() => {\r\n const matchingElements = [\r\n ...document.querySelectorAll(\":not(script):not(style):not(meta):not(title):not(link)\"),\r\n ].filter((element) => {\r\n console.log(element.NOTATION_NODE);\r\n return element.childNodes?.[0]?.nodeValue\r\n ?.toLowerCase()\r\n .includes(searchResultParam.toLowerCase());\r\n });\r\n\r\n if (matchingElements.length !== 0) {\r\n matchingElements.forEach((element) => {\r\n element.innerHTML = HighlightResult(element.innerHTML, searchResultParam);\r\n });\r\n\r\n matchingElements[0].scrollIntoView({ behavior: \"smooth\", block: \"center\" });\r\n } else {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: \"instant\",\r\n });\r\n }\r\n }, 300);\r\n } else {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: \"instant\",\r\n });\r\n }\r\n\r\n let mounted = true;\r\n\r\n setTimeout(() => {\r\n if (mounted) ReportWebUsage(pathname).catch(console.error); // fail silently\r\n }, 1000 * 7); // 7 seconds\r\n\r\n return () => {\r\n mounted = false;\r\n };\r\n }, [pathname, searchParams]);\r\n\r\n document.documentElement.setAttribute(\"data-bs-theme\", \"light\");\r\n\r\n const { loginStatus, sessionExpiration, user, setUser } = useUser();\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","// use this variable to switch between local and server api\r\nconst serverEnv = process.env.REACT_APP_BACKEND_TYPE ?? \"production\";\r\n\r\nconst serverUrls: Record = {\r\n production: \"https://api.strategyunlocked.com\",\r\n staging: \"https://betaapi.strategyunlocked.com\",\r\n local: \"http://localhost:8080\",\r\n};\r\n\r\nconst apiUrl = serverUrls[serverEnv];\r\n\r\nconst constants = {\r\n contentWidth: \"800px\",\r\n paragraphWidth: \"50em\",\r\n maxPageWidth: \"1250px\",\r\n sidebarWidth: 350,\r\n sidebarExpandedWidth: 20,\r\n sidebarCollapsedWidth: 3,\r\n apiUrl,\r\n navHeight: 60,\r\n colors: {\r\n tan1: \"#fffaf0\",\r\n tan1CssFilter:\r\n \"invert(92%) sepia(31%) saturate(212%) hue-rotate(32deg) brightness(109%) contrast(109%)\",\r\n tan2: \"#ffefd0\",\r\n tan2CssFilter:\r\n \"invert(83%) sepia(24%) saturate(353%) hue-rotate(336deg) brightness(110%) contrast(103%)\",\r\n tan3: \"#edd3a8\",\r\n tan3CssFilter:\r\n \"invert(80%) sepia(20%) saturate(463%) hue-rotate(354deg) brightness(108%) contrast(86%)\",\r\n tan4: \"#d4b26a\",\r\n tan4CssFilter:\r\n \"invert(79%) sepia(42%) saturate(434%) hue-rotate(356deg) brightness(86%) contrast(91%)\",\r\n tan5: \"#be804b\",\r\n tan5CssFilter:\r\n \"invert(55%) sepia(48%) saturate(496%) hue-rotate(346deg) brightness(90%) contrast(87%)\",\r\n darkTan: \"#9d6739\",\r\n darkTanCssFilter:\r\n \"invert(41%) sepia(5%) saturate(4968%) hue-rotate(345deg) brightness(102%) contrast(89%)\",\r\n darkerTan: \"#6F4828\",\r\n darkerTanCssFilter:\r\n \"invert(26%) sepia(11%) saturate(2827%) hue-rotate(345deg) brightness(100%) contrast(82%)\",\r\n lightGreyBlue: \"#a0c1dd\",\r\n lightGreyCssFilter:\r\n \"invert(80%) sepia(21%) saturate(490%) hue-rotate(172deg) brightness(93%) contrast(86%)\",\r\n greyBlue: \"#396f9d\",\r\n greyBlueCssFilter:\r\n \"invert(35%) sepia(83%) saturate(410%) hue-rotate(166deg) brightness(92%) contrast(82%)\",\r\n greyRed: \"#9D393D\",\r\n greyRedCssFilter:\r\n \"invert(29%) sepia(55%) saturate(1424%) hue-rotate(322deg) brightness(80%) contrast(87%)\",\r\n lightGreyRed: \"#BE4B50\",\r\n lightGreyRedCssFilter:\r\n \"invert(43%) sepia(44%) saturate(843%) hue-rotate(308deg) brightness(81%) contrast(91%)\",\r\n },\r\n} as const;\r\n\r\nexport default constants;\r\n","import { TErrorRes } from \"@sharedTypes/res.type\";\r\n\r\nfunction missingParametersError(param: string) {\r\n return {\r\n statusCode: 400,\r\n error: \"argumentsMissing\",\r\n log: \"Parameters missing (client side)\",\r\n message: \"Please fill out all fields and try again.\",\r\n content: param,\r\n } satisfies TErrorRes;\r\n}\r\n\r\nexport default missingParametersError;\r\n","import { TChangePasswordReq } from \"@sharedTypes/req.type\";\r\nimport { TChangePasswordRes } from \"@sharedTypes/res.type\";\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function ChangePassword(oldPassword: string, newPassword: string) {\r\n const apiUrl = \"/auth/changepassword\";\r\n\r\n const body: TChangePasswordReq = {\r\n oldPassword,\r\n newPassword,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TChangePasswordRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n\r\n return data;\r\n}\r\n","import { TChangePreferencesReq } from \"@sharedTypes/req.type\";\r\nimport { TChangePreferencesRes } from \"@sharedTypes/res.type\";\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function ChangePreferences(firstName: string, lastName: string) {\r\n const apiUrl = \"/auth/changepreferences\";\r\n\r\n const body: TChangePreferencesReq = {\r\n firstName,\r\n lastName,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TChangePreferencesRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TCreateUserReq } from \"@sharedTypes/req.type\";\r\nimport { TCreateUserRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function CreateUser(\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n password: string,\r\n) {\r\n const apiUrl = \"/auth/createuser\";\r\n\r\n const body: TCreateUserReq = {\r\n firstName,\r\n lastName,\r\n email,\r\n password,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TCreateUserRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TDeleteAccountReq } from \"@sharedTypes/req.type\";\r\nimport { TDeleteAccountRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function DeleteAccount(password: string) {\r\n const apiUrl = \"/auth/deleteaccount\";\r\n\r\n const body: TDeleteAccountReq = {\r\n password,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TDeleteAccountRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TLoginAttemptReq } from \"@sharedTypes/req.type\";\r\nimport { TLoginAttemptRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function LoginAttempt(email: string, password: string) {\r\n const apiUrl = \"/auth/loginattempt\";\r\n\r\n const body: TLoginAttemptReq = {\r\n email,\r\n password,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TLoginAttemptRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n\r\n return data;\r\n}\r\n","import { TResetPasswordReq } from \"@sharedTypes/req.type\";\r\nimport { TResetPasswordRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function ResetPassword(token: string, email: string, password: string, otp: string) {\r\n const apiUrl = \"/auth/resetpassword\";\r\n\r\n const body: TResetPasswordReq = {\r\n token,\r\n email,\r\n password,\r\n otp,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TResetPasswordRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TValidateTokenRes } from \"@sharedTypes/res.type\";\r\nimport axios from \"axios\";\r\n\r\nexport async function ValidateToken() {\r\n const apiUrl = \"/auth/ValidateToken\";\r\n\r\n const data: TValidateTokenRes = await axios\r\n .post(apiUrl)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TInitiateEmailChangeReq } from \"@sharedTypes/req.type\";\r\nimport { TInitiateEmailChangeRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function InitiateEmailChange(newEmail: string, oldEmail: string, password: string) {\r\n const apiUrl = \"/email/initiateemailchange\";\r\n\r\n const body: TInitiateEmailChangeReq = {\r\n newEmail,\r\n oldEmail,\r\n password,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TInitiateEmailChangeRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TSendOtpReq } from \"@sharedTypes/req.type\";\r\nimport { TSendOtpRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function SendOtp(email: string, forgot = false) {\r\n const apiUrl = \"/email/sendotp\";\r\n\r\n const body: TSendOtpReq = {\r\n email,\r\n forgot,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TSendOtpRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TSetNewEmailReq } from \"@sharedTypes/req.type\";\r\nimport { TSetNewEmailRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function SetNewEmail(otp: string, oldEmail: string, newEmail: string) {\r\n const apiUrl = \"/email/setnewemail\";\r\n\r\n const body: TSetNewEmailReq = {\r\n otp,\r\n oldEmail,\r\n newEmail,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TSetNewEmailRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TVerifyOtpReq } from \"@sharedTypes/req.type\";\r\nimport { TVerifyOtpRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function VerifyOtp(email: string, otp: string) {\r\n const apiUrl = \"/email/verifyotp\";\r\n\r\n const body: TVerifyOtpReq = {\r\n email,\r\n otp,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TVerifyOtpRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TChatCompletionMessageParam, TChatBotReq } from \"@sharedTypes/req.type\";\r\nimport { TChatBotRes } from \"@sharedTypes/res.type\";\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport default async function ChatBot(messages: TChatCompletionMessageParam[]) {\r\n const apiUrl = \"/tools/chatbot/chatbot\";\r\n\r\n const body: TChatBotReq = {\r\n messages: messages,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TChatBotRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TChatBotLikesReq } from \"@sharedTypes/req.type\";\r\nimport { TChatBotLikesRes } from \"@sharedTypes/res.type\";\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport default async function ChatBotLikes(\r\n chatMessageId: string,\r\n liked: boolean,\r\n disliked: boolean,\r\n) {\r\n const apiUrl = \"/tools/chatbot/chatbotLikes\";\r\n\r\n const body: TChatBotLikesReq = {\r\n id: chatMessageId,\r\n liked,\r\n disliked,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TChatBotLikesRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TDeleteP5FReq } from \"@sharedTypes/req.type\";\r\nimport { TDeleteP5FRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function DeleteP5F(saveId: string) {\r\n const apiUrl = \"/tools/p5f/DeleteP5F\";\r\n\r\n const body: TDeleteP5FReq = {\r\n id: saveId,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TDeleteP5FRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TGetP5FRes } from \"@sharedTypes/res.type\";\r\n\r\nimport axios from \"axios\";\r\n\r\nexport async function GetP5F() {\r\n const apiUrl = \"/tools/p5f/GetP5F\";\r\n\r\n const data: TGetP5FRes = await axios\r\n .post(apiUrl)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TSaveP5FReq } from \"@sharedTypes/req.type\";\r\nimport { TSaveP5FRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function SaveP5F(saveName: string, userUpdateValues: any) {\r\n const apiUrl = \"/tools/p5f/savep5f\";\r\n\r\n const body: TSaveP5FReq = {\r\n saveName,\r\n forcesData: userUpdateValues,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TSaveP5FRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TGetWebUsageSummaryReq } from \"@sharedTypes/req.type\";\r\nimport { TGetWebUsageSummaryRes } from \"@sharedTypes/res.type\";\r\nimport axios from \"axios\";\r\n\r\nexport async function GetWebUsageSummary() {\r\n const apiUrl = \"/webusage/GetWebUsageSummary\";\r\n\r\n const body: TGetWebUsageSummaryReq = {\r\n timeZone: new Date().getTimezoneOffset(),\r\n };\r\n\r\n const data: TGetWebUsageSummaryRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { TReportWebUsageReq } from \"@sharedTypes/req.type\";\r\nimport { TReportWebUsageRes } from \"@sharedTypes/res.type\";\r\n\r\nimport missingParametersError from \"api/Error\";\r\nimport axios from \"axios\";\r\n\r\nexport async function ReportWebUsage(path: string) {\r\n const apiUrl = \"/webusage/ReportWebUsage\";\r\n\r\n const body: TReportWebUsageReq = {\r\n path,\r\n };\r\n\r\n for (const [key, param] of Object.entries(body)) {\r\n if (param === undefined) throw missingParametersError(key);\r\n }\r\n\r\n const data: TReportWebUsageRes = await axios\r\n .post(apiUrl, body)\r\n .then((res) => res.data)\r\n .catch((err) => {\r\n console.log(err);\r\n throw err.response.data;\r\n });\r\n return data;\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport Focuses from \"lib/data/Focuses\";\r\n\r\nimport BYULogo from \"lib/img/BYU_Logos/Combined Mark/PNG/BYU MonogramWordmark_white@2x.png\";\r\nimport YoutubeIcon from \"lib/img/icons/youtubeIcon.png\";\r\n\r\nfunction Attributions() {\r\n const attributions = [\r\n {\r\n name: \"Collapse icons created by Lizel Arina - Flaticon\",\r\n link: \"https://www.flaticon.com/free-icons/collapse\",\r\n title: \"collapse icons\",\r\n },\r\n {\r\n name: \"Brands and logotypes icons created by Freepik - Flaticon\",\r\n link: \"https://www.flaticon.com/free-icons/brands-and-logotypes\",\r\n title: \"brands and logotypes icons\",\r\n },\r\n {\r\n name: \"Back icons created by Arkinasi - Flaticon\",\r\n link: \"https://www.flaticon.com/free-icons/back\",\r\n title: \"back icons\",\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n Attributions\r\n
\r\n
    \r\n {attributions.map((attribution, i) => {\r\n return (\r\n
  • \r\n \r\n {attribution.name}\r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default function Footer() {\r\n const pageLinks = [\r\n { name: \"Home\", url: \"/\" },\r\n { name: \"The Codex\", url: \"/codex\" },\r\n { name: \"FOCUS\", url: \"/focushome\" },\r\n { name: \"Meet the Team\", url: \"/team\" },\r\n { name: \"Tools\", url: \"/tools\" },\r\n ];\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Pages\r\n
\r\n
    \r\n {pageLinks.map((link, i) => {\r\n return (\r\n
  • \r\n \r\n {link.name}\r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n
\r\n Other\r\n
\r\n
    \r\n
  • \r\n \r\n \"\" @BYUStrategyLab\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n Strategy FOCUS\r\n \r\n
\r\n
\r\n {Object.values(Focuses).map((focus) => {\r\n return (\r\n
\r\n \r\n {focus.name}\r\n \r\n
\r\n {Object.values(Pathways).map((pathway) => {\r\n if (pathway.focus !== focus.id) return null;\r\n return (\r\n
\r\n \r\n {pathway.name}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \"Byu\r\n
\r\n \r\n © {new Date().getFullYear()} - Brigham Young University - All Rights Reserved\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n","export default function LoadIcon() {\r\n return (\r\n
\r\n Loading...\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport constants from \"Constants\";\r\n\r\ntype TLoadingProps = {\r\n children?: React.ReactNode;\r\n};\r\n\r\nexport default function LoadingPage({ children }: TLoadingProps) {\r\n return (\r\n \r\n {children}\r\n
\r\n Loading...\r\n
\r\n \r\n );\r\n}\r\n","import { useEffect, useState } from \"react\";\r\ntype TLoginSoonProps = {\r\n loginStatus: string;\r\n sessionExpiration: number;\r\n};\r\nexport default function LoginSoon({ loginStatus, sessionExpiration }: TLoginSoonProps) {\r\n // every 10 seconds, check if the user's session is about to expire\r\n // if there are less than 5 minutes left, show a warning\r\n // if their token has expired, try to authenticate them.\r\n const [loginSoon, setLoginSoon] = useState(false);\r\n\r\n useEffect(() => {\r\n const timeout = setInterval(() => {\r\n if (loginStatus === \"logged in\") {\r\n if (sessionExpiration < Date.now()) {\r\n window.location.reload();\r\n } else if (sessionExpiration < Date.now() + 1000 * 60 * 5) {\r\n setLoginSoon(true);\r\n }\r\n }\r\n }, 1000 * 10); // 10 seconds\r\n\r\n return () => {\r\n clearInterval(timeout);\r\n };\r\n }, [loginStatus, sessionExpiration]);\r\n\r\n return (\r\n
\r\n {loginSoon && (\r\n {\r\n setLoginSoon(false);\r\n window.location.reload();\r\n }}\r\n >\r\n
\r\n

Your session is about to expire.

\r\n

Click anywhere to continue.

\r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nconst Logo = require(\"lib/img/Logo.svg\").default;\r\n\r\nexport default function LogoSvg({\r\n className,\r\n style,\r\n filter = \"\",\r\n}: {\r\n className?: string;\r\n style?: React.CSSProperties;\r\n filter?: string;\r\n}) {\r\n return \"\";\r\n}\r\n","import constants from \"Constants\";\r\nimport UserContext from \"context/UserContext\";\r\nimport { useContext } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\n\r\nexport default function Account() {\r\n SetDocumentTitle(\"Account Settings\");\r\n const { user } = useContext(UserContext);\r\n\r\n return (\r\n \r\n
\r\n

Manage Account

\r\n

Manage your account here.

\r\n\r\n

Account Information

\r\n

\r\n First Name: {user.firstName}\r\n

\r\n

\r\n Last Name: {user.lastName}\r\n

\r\n

\r\n Email: {user.email}\r\n

\r\n \r\n Edit Account\r\n \r\n
\r\n \r\n );\r\n}\r\n","import constants from \"Constants\";\r\nimport UserContext from \"context/UserContext\";\r\nimport { useContext, useState } from \"react\";\r\nimport Message from \"components/templates/Message\";\r\nimport { TMessage } from \"types/MessageType\";\r\nimport passwordValidator from \"utils/PasswordValidator\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport { ChangePreferences } from \"api/auth/ChangePreferences\";\r\nimport { DeleteAccount } from \"api/auth/DeleteAccount\";\r\nimport { InitiateEmailChange } from \"api/email/InitiateEmailChange\";\r\nimport { ChangePassword } from \"api/auth/ChangePassword\";\r\nimport { SetNewEmail } from \"api/email/SetNewEmail\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nfunction AccountDeleter({ setMessage }: { setMessage: (message: TMessage) => void }) {\r\n const [deleteCollapsed, setDeleteCollapsed] = useState(true);\r\n const navigate = useNavigate();\r\n\r\n async function DeleteHandler(e: any) {\r\n e.preventDefault();\r\n const confirmed = window.confirm(\r\n \"Are you sure you want to delete your account? This cannot be undone.\",\r\n );\r\n if (confirmed) {\r\n const password = e.target[\"password\"].value;\r\n\r\n DeleteAccount(password)\r\n .then(() => {\r\n localStorage.removeItem(\"token\");\r\n navigate(\"/\");\r\n })\r\n .catch((err) => {\r\n setMessage({\r\n message: err.message,\r\n type: \"danger\",\r\n });\r\n console.error(err);\r\n });\r\n }\r\n }\r\n\r\n return deleteCollapsed ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n setDeleteCollapsed(true)}\r\n >\r\n

Be Careful!

\r\n
\r\n Are you sure you want to delete your account? This cannot be undone.\r\n
\r\n
Enter your password below to delete your account:
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction PasswordChanger({ setMessage }: { setMessage: (message: TMessage) => void }) {\r\n const [changePasswordCollapsed, setChangePasswordCollapsed] = useState(true);\r\n const [newPassword1, setNewPassword1] = useState(\"\");\r\n const [newPassword2, setNewPassword2] = useState(\"\");\r\n const passwordsMatch = newPassword1 === newPassword2;\r\n const password1Errors = passwordValidator(newPassword1);\r\n\r\n function ChangePasswordHandler(e: any) {\r\n e.preventDefault();\r\n\r\n const oldPassword = e.target[\"oldPassword\"].value;\r\n const newPassword = e.target[\"newPassword\"].value;\r\n\r\n ChangePassword(oldPassword, newPassword)\r\n .then(() => {\r\n setChangePasswordCollapsed(true);\r\n\r\n setMessage({\r\n message: \"Password changed successfully.\",\r\n type: \"success\",\r\n });\r\n })\r\n .catch((data) => {\r\n setMessage({\r\n message: data.message,\r\n type: \"danger\",\r\n });\r\n console.error(data);\r\n });\r\n }\r\n\r\n return changePasswordCollapsed ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n

Change Your Password

\r\n
\r\n Current Password\r\n \r\n New Password\r\n setNewPassword1(e.target.value)}\r\n />\r\n {password1Errors.length > 0 && (\r\n
\r\n Your password must have at least:\r\n
    \r\n {password1Errors.map((error) => (\r\n
  • {error}
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n Confirm New Password\r\n setNewPassword2(e.target.value)}\r\n />\r\n {!passwordsMatch &&
Passwords must match
}\r\n 0}\r\n type=\"submit\"\r\n className=\"btn btn-primary mt-2\"\r\n value={\"Set New Password\"}\r\n />\r\n \r\n setChangePasswordCollapsed(true)}\r\n >\r\n
\r\n );\r\n}\r\n\r\nfunction ChangeEmail({ setMessage }: { setMessage: (message: TMessage) => void }) {\r\n const [emailCollapsed, setEmailCollapsed] = useState(true);\r\n const [newEmail, setNewEmail] = useState(\"\");\r\n const { user, setUser } = useContext(UserContext);\r\n\r\n async function ChangeEmailHandler(e: any) {\r\n e.preventDefault();\r\n\r\n const newEmail = e.target[\"newEmail\"].value;\r\n const password = e.target[\"password\"].value;\r\n\r\n await InitiateEmailChange(newEmail, user.email, password)\r\n .then(() => {\r\n setNewEmail(newEmail);\r\n\r\n setMessage({\r\n message: \"Email change initiated. Please verify your new email address.\",\r\n type: \"success\",\r\n });\r\n })\r\n .catch((err) => {\r\n setMessage({\r\n message: err.message,\r\n type: \"danger\",\r\n });\r\n console.error(err);\r\n });\r\n }\r\n\r\n async function VerifyNewEmailHandler(e: any) {\r\n e.preventDefault();\r\n const otp = e.target[\"otp\"].value;\r\n await SetNewEmail(otp, user.email, newEmail)\r\n .then(() => {\r\n setUser({\r\n ...user,\r\n email: newEmail,\r\n });\r\n setMessage({\r\n message: \"Email changed successfully.\",\r\n type: \"success\",\r\n });\r\n setEmailCollapsed(true);\r\n setNewEmail(\"\");\r\n })\r\n .catch((err) => {\r\n setMessage({\r\n message: err.message,\r\n type: \"danger\",\r\n });\r\n console.error(err);\r\n });\r\n }\r\n\r\n return emailCollapsed ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n
\r\n

Update Your Email

\r\n {!newEmail && (\r\n
\r\n Current Password:\r\n \r\n New Email:\r\n \r\n \r\n
\r\n )}\r\n {newEmail && (\r\n
\r\n check your new email and enter the one-time passcode:\r\n \r\n \r\n \r\n )}\r\n setEmailCollapsed(true)}\r\n >\r\n
\r\n \r\n );\r\n}\r\n\r\nfunction ChangeName({ setMessage }: { setMessage: (message: TMessage) => void }) {\r\n const { user, setUser } = useContext(UserContext);\r\n\r\n async function ChangePreferencesHandler(e: any) {\r\n e.preventDefault();\r\n const firstName = e.target[\"firstName\"].value;\r\n const lastName = e.target[\"lastName\"].value;\r\n\r\n await ChangePreferences(firstName, lastName)\r\n .then(() => {\r\n setUser({\r\n ...user,\r\n firstName: firstName,\r\n lastName: lastName,\r\n });\r\n setMessage({\r\n message: \"Changes saved successfully.\",\r\n type: \"success\",\r\n });\r\n })\r\n\r\n .catch((err) => {\r\n setMessage({\r\n message: err.message,\r\n type: \"danger\",\r\n });\r\n console.error(err);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n

Settings

\r\n First Name\r\n \r\n Last Name\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default function EditAccount() {\r\n SetDocumentTitle(\"Account Settings\");\r\n const [message, setMessage] = useState();\r\n\r\n return (\r\n \r\n setMessage}\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n","import { useContext, useState } from \"react\";\r\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\r\nimport OtpVerifier from \"components/auth/OtpVerifier\";\r\nimport passwordValidator from \"utils/PasswordValidator\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport { ResetPassword } from \"api/auth/ResetPassword\";\r\nimport UserContext from \"context/UserContext\";\r\n\r\nimport LoginBG from \"lib/img/loginBG.png\";\r\n\r\nexport default function ForgotPassword() {\r\n SetDocumentTitle(\"Forgot Password\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [userEmail, setUserEmail] = useState(\"\");\r\n const [emailVerified, setEmailVerified] = useState(false);\r\n const [otpToken, setOtpToken] = useState(\"\");\r\n\r\n const [password1, setPassword1] = useState(\"\");\r\n const [password2, setPassword2] = useState(\"\");\r\n const navigate = useNavigate();\r\n let passwordsMatch = password1 === password2;\r\n let password1Errors = passwordValidator(password1);\r\n\r\n const searchParams = useSearchParams()[0];\r\n let return_url = searchParams.get(\"return_url\") ?? \"/\";\r\n\r\n // see if they're already logged in. verify token\r\n const { loginStatus } = useContext(UserContext);\r\n if (loginStatus === \"logged in\") {\r\n navigate(return_url);\r\n }\r\n\r\n function EnterEmailHandler(e: any) {\r\n e.preventDefault();\r\n setUserEmail(e.target[\"email\"].value);\r\n }\r\n\r\n async function NewPasswordHandler(e: any) {\r\n e.preventDefault();\r\n const password = e.target[\"password1\"].value;\r\n\r\n const data = await ResetPassword(otpToken, userEmail, password, otpToken)\r\n .then(() => {\r\n navigate(\"/login/?return_url=\" + return_url + \"&verified=true\");\r\n })\r\n .catch((err) => {\r\n document.getElementById(\"error-anchor\")?.scrollIntoView();\r\n setErrorMessage(err.message);\r\n console.error(data);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {/* input card */}\r\n
\r\n
\r\n
\r\n

Forgot Your Password?

\r\n
\r\n
\r\n
\r\n {errorMessage && (\r\n
\r\n
\r\n setErrorMessage(\"\")}\r\n >\r\n {errorMessage}\r\n
\r\n
\r\n )}\r\n
We're here to help!
\r\n

\r\n Type in your email below to get an email that will help you reset your password\r\n

\r\n
\r\n
\r\n {!userEmail && (\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n \r\n\r\n {emailVerified && (\r\n
\r\n
\r\n
\r\n Success! Your email has been verified. You are ready to choose a\r\n new password\r\n
\r\n
\r\n \r\n\r\n setPassword1(e.target.value)}\r\n />\r\n
\r\n {password1Errors.length > 0 && (\r\n
\r\n Your password must have at least:\r\n
    \r\n {password1Errors.map((error) => (\r\n
  • {error}
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \r\n\r\n setPassword2(e.target.value)}\r\n style={passwordsMatch ? {} : { border: \"1px solid red\" }}\r\n />\r\n
\r\n\r\n
\r\n 0}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { useContext, useState } from \"react\";\r\nimport { Link, useNavigate, useSearchParams } from \"react-router-dom\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport { LoginAttempt } from \"api/auth/LoginAttempt\";\r\nimport UserContext from \"context/UserContext\";\r\nimport VerifyOtp from \"components/auth/OtpVerifier\";\r\nimport LoginBG from \"lib/img/loginBG.png\";\r\n\r\nexport default function Login() {\r\n SetDocumentTitle(\"Login\");\r\n const [emailVerified, setEmailVerified] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [emailVerificationRequired, setEmailVerificationRequired] = useState(false);\r\n const [userEmail, setUserEmail] = useState(\"\");\r\n const navigate = useNavigate();\r\n\r\n const searchParams = useSearchParams()[0];\r\n let return_url = searchParams.get(\"return_url\") ?? \"/\";\r\n let verified = searchParams.get(\"verified\");\r\n\r\n const { loginStatus } = useContext(UserContext);\r\n if (loginStatus === \"logged in\") {\r\n navigate(return_url);\r\n }\r\n\r\n async function LoginAttemptHandler(e: any) {\r\n e.preventDefault();\r\n const email = e.target[\"email\"].value;\r\n const password = e.target[\"password\"].value;\r\n\r\n const data = await LoginAttempt(email, password)\r\n .then((data) => {\r\n localStorage.setItem(\"token\", data.token);\r\n window.location.href = return_url;\r\n })\r\n .catch((err) => {\r\n if (err.error === \"emailUnverified\") {\r\n setUserEmail(email);\r\n setEmailVerificationRequired(true);\r\n document.getElementById(\"otp-anchor\")?.scrollIntoView();\r\n } else {\r\n setErrorMessage(err.message);\r\n document.getElementById(\"error-anchor\")?.scrollIntoView();\r\n }\r\n console.error(data);\r\n });\r\n }\r\n\r\n if (emailVerified) {\r\n navigate(\"/login/?return_url=\" + return_url + \"&verified=true\");\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {/* input card */}\r\n
\r\n
\r\n
\r\n

Welcome Back!

\r\n {verified && (\r\n \r\n Your email has been verified! You can now log in.\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {errorMessage && (\r\n
\r\n
\r\n setErrorMessage(\"\")}\r\n >\r\n {errorMessage}\r\n
\r\n
\r\n )}\r\n
\r\n Don't have an account? \r\n Register here\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n Forgot Password?\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Development notes: The email and password are:\r\n
    \r\n
  • Email = \"test@byu.edu\"
  • \r\n
  • Password = \"ByuSuTeam\"
  • \r\n
\r\n This will allow you to access the paid content.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import Loading from \"components/LoadingPage\";\r\nimport NotAdmin from \"components/auth/NotAdmin\";\r\nimport { useContext, useEffect } from \"react\";\r\nimport { Outlet, useNavigate, useOutletContext } from \"react-router-dom\";\r\nimport UserContext from \"context/UserContext\";\r\n\r\nexport function AdminLogin() {\r\n let context = useOutletContext();\r\n let return_url = window.location.pathname;\r\n const { loginStatus, user } = useContext(UserContext);\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n if (loginStatus === \"invalid\") {\r\n setTimeout(() => {\r\n if (mounted) navigate(\"/login?return_url=\" + return_url);\r\n }, 300);\r\n }\r\n return () => {\r\n mounted = false;\r\n };\r\n });\r\n\r\n if (loginStatus === \"invalid\") return Redirecting...;\r\n else if (loginStatus === \"loading\") return Verifying Login...;\r\n else if (loginStatus === \"logged in\") {\r\n if (user.isAdmin) return ;\r\n return ;\r\n }\r\n}\r\n\r\nexport function UserLogin() {\r\n let context = useOutletContext();\r\n const navigate = useNavigate();\r\n let return_url = window.location.pathname;\r\n // const { loginStatus } = useContext(UserContext);\r\n let loginStatus = \"logged in\";\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n if (loginStatus === \"invalid\") {\r\n setTimeout(() => {\r\n if (mounted) navigate(\"/login?return_url=\" + return_url);\r\n }, 300);\r\n }\r\n return () => {\r\n mounted = false;\r\n };\r\n });\r\n\r\n if (loginStatus === \"loading\") return Verifying Login...;\r\n else if (loginStatus === \"invalid\") return Redirecting to Login...;\r\n else if (loginStatus === \"logged in\") return ;\r\n}\r\n","import constants from \"Constants\";\r\n\r\nexport default function NotAdmin() {\r\n return (\r\n
\r\n \r\n
\r\n You do not have permission to access this page. For administrative access, please contact\r\n me at cgp27@byu.edu\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import { SendOtp } from \"api/email/SendOtp\";\r\nimport { useState } from \"react\";\r\nimport { VerifyOtp } from \"api/email/VerifyOtp\";\r\n\r\ntype TVerifyOtpProps = {\r\n email?: string;\r\n setEmailVerified: (emailVerified: boolean) => void;\r\n showVerifier: boolean;\r\n setOtpToken?: (otpToken: string) => void;\r\n forgotPassword?: boolean;\r\n};\r\n\r\nexport default function OtpVerifier({\r\n email,\r\n setEmailVerified,\r\n showVerifier,\r\n setOtpToken,\r\n forgotPassword = false,\r\n}: TVerifyOtpProps) {\r\n const [emailSent, setEmailSent] = useState(false);\r\n const [otpError, setOtpError] = useState(\"\");\r\n const [userEmail, setEmail] = useState(email ?? \"\");\r\n\r\n async function SendEmailHandler(e: any) {\r\n e.preventDefault();\r\n const bodyEmail = e.target[\"email\"]?.value ?? email ?? userEmail;\r\n const data = await SendOtp(bodyEmail, forgotPassword);\r\n if (data.status === \"success\") {\r\n setEmailSent(true);\r\n setEmail(bodyEmail);\r\n setOtpError(\"\");\r\n } else {\r\n setOtpError(data.message);\r\n console.error(data);\r\n }\r\n }\r\n\r\n async function VerifyOtpHandler(e: any) {\r\n e.preventDefault();\r\n const otp = e.target[\"otp\"].value;\r\n const data = await VerifyOtp(userEmail, otp);\r\n if (data.status === \"success\") {\r\n setEmailVerified(true);\r\n setOtpError(\"\");\r\n if (setOtpToken) {\r\n setOtpToken(data.token);\r\n }\r\n } else {\r\n setOtpError(data.message);\r\n console.error(data);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {showVerifier && (\r\n
\r\n

Verify Your Email

\r\n {otpError &&
{otpError}
}\r\n {!emailSent ? (\r\n email ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n )\r\n ) : (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Didn't get an email? Make sure to check your spam folder and click below to get\r\n another code.\r\n
\r\n \r\n
\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\n\r\nexport default function Payment() {\r\n SetDocumentTitle(\"Payment\");\r\n\r\n return (\r\n
\r\n
\r\n
This will be the payment page for users that are not BYU students.
\r\n
\r\n We are not taking payments at this time. Strategy Unlocked is only available for BYU\r\n students\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { useContext, useState } from \"react\";\r\nimport { Link, useNavigate, useSearchParams } from \"react-router-dom\";\r\nimport OtpVerifier from \"components/auth/OtpVerifier\";\r\nimport passwordValidator from \"utils/PasswordValidator\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport { CreateUser } from \"api/auth/CreateUser\";\r\nimport UserContext from \"context/UserContext\";\r\nimport RegisterBG from \"lib/img/loginBG.png\";\r\n\r\nexport default function Register() {\r\n SetDocumentTitle(\"Register\");\r\n\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n const [emailVerified, setEmailVerified] = useState(false);\r\n const [emailVerificationRequired, setEmailVerificationRequired] = useState(false);\r\n const [userEmail, setUserEmail] = useState(\"\");\r\n\r\n const [password1, setPassword1] = useState(\"\");\r\n const [password2, setPassword2] = useState(\"\");\r\n const navigate = useNavigate();\r\n let passwordsMatch = password1 === password2;\r\n let password1Errors = passwordValidator(password1);\r\n\r\n const searchParams = useSearchParams()[0];\r\n let return_url = searchParams.get(\"return_url\") ?? \"/\";\r\n\r\n const { loginStatus } = useContext(UserContext);\r\n if (loginStatus === \"logged in\") {\r\n navigate(return_url);\r\n }\r\n\r\n // handle registration submit\r\n async function RegistrationAttemptHandler(e: any) {\r\n e.preventDefault();\r\n const firstName = e.target[\"fname\"].value;\r\n const lastName = e.target[\"lname\"].value;\r\n const email = e.target[\"email\"].value;\r\n const password = e.target[\"password1\"].value;\r\n\r\n const data = await CreateUser(firstName, lastName, email, password);\r\n\r\n if (data.status === \"success\") {\r\n setEmailVerificationRequired(true);\r\n setUserEmail(email);\r\n document.getElementById(\"otp-anchor\")?.scrollIntoView();\r\n } else {\r\n setErrorMessage(data.message);\r\n document.getElementById(\"error-anchor\")?.scrollIntoView();\r\n console.error(data);\r\n }\r\n }\r\n\r\n if (emailVerified) {\r\n navigate(\"/login/?return_url=\" + return_url + \"&verified=true\");\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n {/* input card */}\r\n
\r\n
\r\n
\r\n

Nice to Meet You!

\r\n
\r\n
\r\n
\r\n {errorMessage && (\r\n
\r\n
\r\n setErrorMessage(\"\")}\r\n >\r\n
{errorMessage}
\r\n
\r\n
\r\n )}\r\n\r\n
\r\n Back to login\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n setPassword1(e.target.value)}\r\n />\r\n
\r\n {password1Errors.length > 0 && (\r\n
\r\n Your password must have at least:\r\n
    \r\n {password1Errors.map((error) => (\r\n
  • {error}
  • \r\n ))}\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \r\n\r\n setPassword2(e.target.value)}\r\n style={passwordsMatch ? {} : { border: \"1px solid red\" }}\r\n />\r\n {!passwordsMatch && Passwords must match}\r\n
\r\n\r\n
\r\n 0}\r\n />\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Development notes:\r\n
    \r\n
  • \r\n I am going to be deleting and restarting the database over and over again, so if\r\n you create an account, it will likely be deleted within a few days. For now,\r\n just use the test account. It will not be deleted.\r\n
  • \r\n
  • \r\n Email verificaton works now (or at least I hope it does)!! Give it a try!{\" \"}\r\n and let me know if it works.\r\n
  • \r\n
  • \r\n Until I get the payment system figured out, all emails will be free instead of\r\n only BYU emails. Once I figure out how the payment system is set up, I will send\r\n byu students to email verification and everyone else to payment.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import constants from \"Constants\";\r\n\r\nexport default function Support() {\r\n return (\r\n \r\n
email me at cgp27@byu.edu
\r\n
\r\n );\r\n}\r\n","export default function Book({ fill }: { fill?: string }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export default function House({ fill }: { fill?: string }) {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","export default function Menu() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export default function RightArrow({ w = \"16\", h = \"16\" }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export default function SearchIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export default function SendArrow() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","export default function Stars() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export function ThumbsDownFilled() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function ThumbsDownEmpty() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export function ThumbsUpFilled() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function ThumbsUpEmpty() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","export default function User({\r\n width,\r\n height,\r\n className,\r\n}: {\r\n width?: number;\r\n height?: number;\r\n className?: string;\r\n}) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { useCallback, useContext, useEffect, useRef, useState } from \"react\";\r\nimport React from \"react\";\r\nimport constants from \"Constants\";\r\nimport Stars from \"components/bootstrap_icons/Stars\";\r\nimport BackToTop from \"components/navigation/BackToTop\";\r\nimport SendArrow from \"components/bootstrap_icons/SendArrow\";\r\nimport useChatBot from \"hooks/useChatBot\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport { TChatCompletionMessageParam } from \"@sharedTypes/req.type\";\r\nimport UserContext from \"context/UserContext\";\r\nimport { Transition } from \"react-transition-group\";\r\nimport useWindowSize from \"hooks/useWindowSize\";\r\nimport { ThumbsUpEmpty, ThumbsUpFilled } from \"components/bootstrap_icons/ThumbsUp\";\r\nimport { ThumbsDownEmpty, ThumbsDownFilled } from \"components/bootstrap_icons/ThumbsDown\";\r\nimport ChatBotLikes from \"api/tools/chatBot/ChatBotLikes\";\r\nimport SearchIcon from \"components/bootstrap_icons/SearchIcon\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nfunction ChatLoadIcon() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n}\r\n\r\ntype TChatWindowBtnsProps = {\r\n setWindowOpen: React.Dispatch>;\r\n};\r\n\r\nfunction ChatWindowBtns({ setWindowOpen }: TChatWindowBtnsProps) {\r\n const [backToTop, setBackToTop] = useState(false);\r\n\r\n window.addEventListener(\"scroll\", () => {\r\n if (window.scrollY > window.innerHeight - 150) {\r\n setBackToTop(true);\r\n } else {\r\n setBackToTop(false);\r\n }\r\n });\r\n\r\n const duration = 300;\r\n const defaultStyle = {\r\n transition: `opacity ${duration}ms ease-in-out`,\r\n opacity: 0,\r\n };\r\n const transitionStyles: { [key: string]: any } = {\r\n entering: { opacity: 1 },\r\n entered: { opacity: 1 },\r\n exiting: { opacity: 0 },\r\n exited: { opacity: 0 },\r\n };\r\n\r\n const nodeRef = useRef(null);\r\n\r\n return (\r\n <>\r\n \r\n {(state) => (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n setWindowOpen((windowOpen) => !windowOpen)}\r\n style={{ width: \"40px\", height: \"40px\" }}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nfunction AssistantMessage({ message }: { message: TChatCompletionMessageParam }) {\r\n const [liked, setLiked] = useState(false);\r\n const [disliked, setDisliked] = useState(false);\r\n\r\n async function LikeHandler(isLiked: boolean) {\r\n setLiked(isLiked);\r\n setDisliked(false);\r\n const data = await ChatBotLikes(message.id, isLiked, false);\r\n if (data.status !== \"success\") {\r\n console.error(data);\r\n }\r\n }\r\n\r\n async function DislikeHandler(isDisliked: boolean) {\r\n setLiked(false);\r\n setDisliked(isDisliked);\r\n const data = await ChatBotLikes(message.id, false, isDisliked);\r\n if (data.status !== \"success\") {\r\n console.error(data);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
AI Assistant
\r\n
\r\n \r\n
\r\n
Powered by ChatGPT
\r\n
\r\n {message.content?.toString()}\r\n {!!message.id && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nfunction UserMessage({ message }: { message: TChatCompletionMessageParam }) {\r\n const { user } = useContext(UserContext);\r\n return (\r\n <>\r\n
\r\n
\r\n {user.firstName} {user.lastName}\r\n
\r\n {message.content?.toString()}\r\n
\r\n \r\n );\r\n}\r\n\r\ntype TChatWindowProps = {\r\n setWindowOpen: React.Dispatch>;\r\n};\r\n\r\nfunction ChatWindow({ setWindowOpen }: TChatWindowProps) {\r\n const { messages, ClearMessages, loading, sendChat } = useChatBot();\r\n\r\n const formRef = useRef(null);\r\n\r\n function SendChatHandler(e: any, chatInput?: string) {\r\n e.preventDefault();\r\n const chat = chatInput ?? e.target[\"chat\"].value;\r\n if (formRef.current) {\r\n formRef.current.reset();\r\n }\r\n if (!chat) {\r\n return;\r\n }\r\n sendChat(chat);\r\n }\r\n\r\n const bottomRef = useRef(null);\r\n\r\n function ScrollToBottom(bottomRef: React.RefObject) {\r\n if (bottomRef.current) {\r\n bottomRef.current.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n ScrollToBottom(bottomRef);\r\n }, [messages, bottomRef]);\r\n\r\n ScrollToBottom(bottomRef);\r\n\r\n const suggestions = [\r\n \"How can I align my company with its purpose?\",\r\n \"How can I prevent imitation by leveraging location advantages?\",\r\n \"Explain Blue Ocean Strategy.\",\r\n \"How can I identify customer unmet needs?\",\r\n ];\r\n\r\n return (\r\n
\r\n setWindowOpen(false)}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n
\r\n
\r\n {messages.map((message, index) => {\r\n if (message.role === \"system\") {\r\n return null;\r\n }\r\n return (\r\n
\r\n {message.role === \"assistant\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {(index !== messages.length - 1 || message.role === \"user\") &&
}\r\n
\r\n );\r\n })}\r\n {loading && }\r\n
\r\n
\r\n {messages.length === 2 &&\r\n suggestions.map((suggestion, index) => (\r\n SendChatHandler(e, suggestion)}\r\n type=\"button\"\r\n className=\"btn btn-primary mb-2 fs-7\"\r\n name=\"chat\"\r\n value=\"\"\r\n >\r\n {suggestion}\r\n \r\n ))}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n *AI Assistant is under development. Provided links may be innacurate. Try the search bar.\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default function ChatWindowContainer() {\r\n const [windowOpen, setWindowOpen] = useState(false);\r\n const [windowWidth, setWindowWidth] = useState(350);\r\n const screenSmall = useWindowSize().width < 768;\r\n\r\n const duration = 500;\r\n\r\n const transitionStyles: { [key: string]: any } = {\r\n entering: { transition: `width ${duration}ms`, width: windowWidth },\r\n entered: { width: windowWidth },\r\n exiting: { transition: `width ${duration}ms`, width: 0 },\r\n exited: { width: 0 },\r\n };\r\n\r\n const nodeRef = useRef(null);\r\n\r\n const resizerRef = useRef(null);\r\n\r\n const mouseDownHandler = useCallback((e: MouseEvent, windowWidth: number) => {\r\n e.preventDefault();\r\n\r\n const minWindowWidth = 300;\r\n const startX = e.clientX;\r\n const startWidth = windowWidth;\r\n\r\n const mouseMoveHandler = (e: MouseEvent) => {\r\n e.preventDefault();\r\n let newWidth = startWidth + startX - e.clientX;\r\n newWidth = Math.max(minWindowWidth, newWidth);\r\n setWindowWidth(newWidth);\r\n };\r\n\r\n const mouseUpHandler = (e: MouseEvent) => {\r\n e.preventDefault();\r\n window.removeEventListener(\"mousemove\", mouseMoveHandler);\r\n window.removeEventListener(\"mouseup\", mouseUpHandler);\r\n };\r\n\r\n window.addEventListener(\"mousemove\", mouseMoveHandler);\r\n window.addEventListener(\"mouseup\", mouseUpHandler);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const resizer = resizerRef.current;\r\n if (!resizer) {\r\n return;\r\n }\r\n\r\n resizer.addEventListener(\"mousedown\", (e) => mouseDownHandler(e, windowWidth));\r\n }, [resizerRef, mouseDownHandler, windowWidth]);\r\n\r\n return (\r\n
\r\n \r\n {(state) => (\r\n <>\r\n setWindowOpen((windowOpen) => !windowOpen)}\r\n style={{ ...transitionStyles[state] }}\r\n ref={nodeRef}\r\n >
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n","import { createContext, useContext, useEffect, useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { defaultCommandment, TCommandment } from \"types/JsonType\";\r\nimport constants from \"Constants\";\r\nimport SidebarPage from \"components/templates/SidebarPage\";\r\nimport MasterSidebar from \"components/navigation/MasterSidebar\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport Error from \"components/templates/Error\";\r\nimport Commandments from \"lib/data/Commandments\";\r\nimport RightArrow from \"components/bootstrap_icons/RightArrow\";\r\n\r\ntype TCommandmentContext = {\r\n commandment: TCommandment;\r\n};\r\n\r\nconst CommandmentContext = createContext({\r\n commandment: defaultCommandment,\r\n});\r\n\r\nfunction Title() {\r\n const { commandment } = useContext(CommandmentContext);\r\n return (\r\n
\r\n

{commandment.name}

\r\n
{commandment.subTitle}
\r\n
\r\n );\r\n}\r\n\r\nfunction CommandmentContent() {\r\n const { commandment } = useContext(CommandmentContext);\r\n\r\n const [ImportedComponent, setImportedComponent] = useState(null) as any;\r\n\r\n useEffect(() => {\r\n async function ImportComponents(filePath: string) {\r\n setImportedComponent(null);\r\n await import(`${filePath}`).then((module) => {\r\n const AnotherComponent = module.default;\r\n setImportedComponent();\r\n });\r\n\r\n // import all adjacent commandment components. This dramatically improves the load time of the pages.\r\n Object.values(Commandments).forEach((page) => {\r\n import(`${page.filePath}`);\r\n });\r\n }\r\n\r\n ImportComponents(commandment.filePath);\r\n }, [commandment.filePath]);\r\n\r\n return (\r\n
\r\n \r\n <div className=\"w-100 d-flex\">\r\n <div className=\"mx-auto w-p\">{ImportedComponent}</div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function CommandmentRoot() {\r\n const navigate = useNavigate();\r\n const commandmentId = useParams().commandmentId;\r\n if (!commandmentId) return <Error message={\"404. Page not found\"} />;\r\n const commandment = Commandments[commandmentId];\r\n if (!commandment) return <Error message={\"404. Page not found\"} />;\r\n\r\n const prevCommandment = Object.values(Commandments).find((c) => c.num === commandment.num - 1);\r\n const nextCommandment = Object.values(Commandments).find((c) => c.num === commandment.num + 1);\r\n\r\n SetDocumentTitle(commandment.name);\r\n const back = () => {\r\n navigate(prevCommandment?.url || \"/\");\r\n };\r\n const next = () => {\r\n navigate(nextCommandment?.url || \"/\");\r\n };\r\n\r\n return (\r\n <CommandmentContext.Provider value={{ commandment: commandment }}>\r\n <SidebarPage.Page>\r\n <SidebarPage.Sidebar>\r\n <MasterSidebar />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n <div className=\"d-flex justify-content-center mb-5 mx- mx-md-4\">\r\n <div className={`hz-flip mt-4 ${!prevCommandment && \"invisible\"}`}>\r\n <button className=\"btn\" onClick={back}>\r\n <RightArrow w=\"40\" h=\"40\" />\r\n </button>\r\n </div>\r\n <div className=\"w-100\" style={{ maxWidth: constants.paragraphWidth }}>\r\n <CommandmentContent />\r\n </div>\r\n\r\n <div className={`mt-4 ${!nextCommandment && \"invisible\"}`}>\r\n <button className=\"btn\" onClick={next}>\r\n <RightArrow w=\"40\" h=\"40\" />\r\n </button>\r\n </div>\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n </CommandmentContext.Provider>\r\n );\r\n}\r\n","import { H1, H2, P } from \"design_lib\";\n\nexport default function NorthStar() {\n return (\n <div>\n <P>\n Your mission, vision, and values are the guiding principles—or \"North Star\"—at the core of\n your strategy, shaping both long-term goals and everyday decisions. Mission answers the\n question, “Why do we exist?” and provides a sense of purpose. Vision articulates, “Where are\n we headed?” and offers direction and ambition. Values define, “How do we act?” and set the\n tone for decision-making and behavior. Together, they ensure that the organization stays\n aligned, resilient, and consistent in its actions. A strong North Star helps businesses\n navigate short-term complexities while maintaining focus on long-term objectives.\n </P>\n\n <P className=\"text-center\">\n <i>\n “When a man does not know what harbor he is making for, no wind is the right wind.” –\n Seneca\n </i>\n </P>\n <H1>Examples:</H1>\n <H2>Amazon: Relentless customer Obsession</H2>\n <P>\n Amazon’s mission, “To be Earth's most customer-centric company,” drives both its strategic\n ambitions and day-to-day operations. From creating innovations like one-click ordering to\n investing in next-day delivery, Amazon's North Star is present in everything it does. During\n the COVID-19 pandemic, the company prioritized customer service and logistical efficiency,\n doubling down on its mission. This dual focus on short-term execution and long-term customer\n loyalty has made Amazon a leader in both customer satisfaction and profitability.\n </P>\n <H2>Nike: Aligning Vision and Action</H2>\n <P>\n Nike’s vision, “To bring inspiration and innovation to every athlete in the world,”\n permeates everything from product development to marketing campaigns. Its “Just Do It” ethos\n is more than a slogan; it’s a call to action that shapes Nike’s culture and resonates with\n its audience. This alignment between vision and action is demonstrated in the “Dream\n Crazier” campaign, which highlighted female athletes and addressed the double standards they\n face in sports. The campaign featured powerful stories of women breaking barriers and\n achieving greatness, reinforcing Nike’s commitment to gender equality and empowerment. This\n approach not only resonated deeply with its core customers but also strengthened brand\n loyalty and drove sales.\n </P>\n <H2>Microsoft: A Shift in Vision Creates Momentum</H2>\n <P>\n Microsoft’s vision shift under CEO Satya Nadella—“To empower every person and every\n organization on the planet to achieve more”—reinvigorated the company. This focus on\n empowerment guided its strategic pivot to cloud computing, leading to the success of Azure,\n Microsoft Teams, and other innovations. The clarity of this vision ensured daily alignment\n in teams across the organization, fostering both operational agility and long-term market\n leadership.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function Lead() {\n return (\n <div>\n <P>\n Be a visionary leader. Set the strategic direction with clarity and purpose, empowering your\n team to carry out that vision. A strategic leader makes bold, long-term decisions that shape\n the future of the company but remains flexible enough to adapt when necessary. Lead by\n example—your strategic thinking should be reflected in both your daily actions and big\n decisions. Inspire your team to align with the vision, ensuring everyone understands their\n role in the company’s success. Foster accountability at all levels, ensuring that every\n decision supports the broader strategic objectives. True strategic leadership guides the\n organization toward sustainable success, balancing immediate goals with long-term growth.\n </P>\n <P className=\"text-center\">\n <i>\n “A leader is one who knows the way, goes the way, and shows the way.” – John C. Maxwell\n </i>\n </P>\n <H1>Examples:</H1>\n <H2>Herb Kelleher – Southwest Airlines: Visionary Leadership and Strategic Execution</H2>\n <P>\n Herb Kelleher’s leadership at Southwest Airlines was a model of visionary thinking and\n strategic execution. He set a clear strategic direction by focusing on low-cost,\n point-to-point air travel, fundamentally changing the airline industry. Kelleher’s\n leadership was characterized by making bold decisions, such as maintaining low fares while\n building a unique company culture based on respect and humor. He inspired his team to\n deliver on the company’s vision, creating an empowered workforce that helped Southwest\n maintain its competitive edge. By staying true to the company's core values and adjusting to\n market shifts, Kelleher led Southwest to unparalleled success.\n </P>\n <H2>Indra Nooyi – PepsiCo: Strategic Foresight and Adaptability</H2>\n <P>\n Indra Nooyi’s leadership at PepsiCo demonstrated the power of strategic foresight. She set a\n long-term vision to shift PepsiCo’s portfolio towards healthier products while retaining the\n strength of its core brands. Nooyi empowered her team to align with this vision, ensuring\n that PepsiCo adapted to consumer trends without compromising its foundational strengths. By\n balancing bold decisions with adaptability, Nooyi steered the company toward sustainable\n growth, positioning it for continued success in the evolving food and beverage market.\n </P>\n <H2>Satya Nadella – Microsoft: Refocusing on Cloud Computing and AI</H2>\n <P>\n Under Satya Nadella’s leadership, Microsoft refocused on cloud computing and artificial\n intelligence, charting a new strategic course for the company. Nadella’s strategic thinking\n was reflected in both his daily actions and major decisions, as he emphasized innovation and\n collaboration across the company. He empowered his team to execute with clarity, ensuring\n that every decision aligned with Microsoft’s broader vision. Nadella’s ability to adapt to\n changing market conditions while keeping a sharp focus on long-term goals has been key to\n Microsoft’s resurgence as a leader in the tech industry.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function ReallyMatter() {\n return (\n <div>\n <P>\n If your company disappeared tomorrow and no one noticed, you’re failing to deliver unique\n value. To truly matter, you need a unique value proposition: a compelling reason for\n customers to choose your business over alternatives. This could be achieved through offering\n the lowest cost (cost leadership), superior quality or features (differentiation), or\n redefining the market by creating new demand and lowering costs for customers (value\n innovation). Center your strategy around what makes your business different—whether it’s a\n key resource, technology, brand, or process—and build relentlessly on those strengths. A\n strong focus on your unique advantages not only reinforces your competitive position but\n also ensures your strategy guides decisions at every level of the organization. Companies\n that truly matter don’t just compete; they solve real problems, inspire loyalty, and stand\n apart in their market.\n </P>\n <P className=\"text-center\">\n <i>\n “Competitive strategy is about being different. It means deliberately choosing a different\n set of activities to deliver a unique mix of value.” – Michael E. Porter\n </i>\n </P>\n <H1>Examples:</H1>\n\n <H2>Southwest Airlines: Low Costs, High Loyalty</H2>\n <P>\n Southwest Airlines thrives on cost leadership, offering budget-friendly fares without\n compromising on service. By simplifying operations and eliminating extras like assigned\n seating, Southwest lowers costs while maintaining reliability. Their fun, customer-focused\n culture adds value beyond price, creating an airline people consistently choose—and miss\n when unavailable.\n </P>\n <H2>Apple: The Master of Differentiation</H2>\n <P>\n Apple’s commitment to sleek design, user-friendly interfaces, and seamless integration sets\n it apart. The iPhone, for example, transformed the mobile industry by offering more than\n just a phone—it provided an ecosystem of devices, services, and experiences. Customers don’t\n just buy Apple products; they buy into a vision of simplicity and elegance, making Apple’s\n absence unimaginable to millions.\n </P>\n <H2>Tesla: Disruption Through Innovation</H2>\n <P>\n Tesla has made itself irreplaceable by redefining the auto industry. Beyond producing\n electric vehicles, Tesla has integrated luxury, performance, and sustainability into its\n brand identity, driven by a bold vision for renewable energy solutions. By creating an\n ecosystem of cars, chargers, and clean energy products, Tesla delivers unparalleled value\n that goes beyond automobiles, setting the standard for innovation and environmental\n responsibility.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function CompeteWin() {\n return (\n <div>\n <P>\n Success comes from choosing the right battlefield. Compete where you can leverage your\n strengths to create the most value. Identify the areas where your company has a competitive\n advantage, whether that’s superior technology, cost structure, customer insights, or\n distribution channels. Attempting to compete in markets or segments where you’re outmatched\n can quickly deplete resources and reduce profitability. By focusing on where you can win,\n you not only maximize returns but also build the foundation for long-term success. Strategic\n focus helps you stay nimble, resilient, and capable of adapting as competitive forces and\n market dynamics evolve.\n </P>\n <P className=\"text-center\">\n <i>\n “Strategy is about making choices, trade-offs; it’s about deliberately choosing to be\n different.” – Michael E. Porter\n </i>\n </P>\n <H1>Examples:</H1>\n <H2>Netflix: Focusing on Streaming</H2>\n <P>\n Netflix’s decision to pivot from DVD rentals to streaming was a clear example of competing\n where it could win. The company realized that its strength was in data-driven\n personalization and content delivery, not in managing a massive physical inventory. By\n focusing on its core strengths in streaming and content production, Netflix dominated the\n entertainment industry, investing heavily in original content to set itself apart from\n traditional cable providers and other streaming services.\n </P>\n <H2>IKEA: Competitive Advantage in Cost Structure and Distribution</H2>\n <P>\n IKEA has mastered the art of low-cost, high-volume production in the furniture industry. By\n adopting a cost structure based on flat-pack designs and self-assembly products, IKEA has\n dramatically reduced its supply chain and manufacturing costs, passing the savings onto\n customers. Their distribution channels—a network of large, strategically placed stores\n around the world—coupled with a strong e-commerce platform, ensures accessibility and\n convenience for customers. The company’s cost leadership strategy and innovative\n distribution system allow it to remain a global leader in affordable home furnishings.\n </P>\n <H2>Spotify: Niche Focus in Music Streaming</H2>\n <P>\n Spotify carved out a competitive advantage by focusing specifically on music streaming\n rather than branching into other media types. By refining its algorithms and user\n experience, Spotify became the leader in personalized music discovery and curation. This\n focus on providing the best music-streaming experience allowed it to outmaneuver competitors\n like Apple Music and Pandora, who spread their efforts across various forms of\n entertainment.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function Moat() {\n return (\n <div>\n <P>\n A strategic moat is the unique advantage that protects your business from competitors. It’s\n the barrier that keeps rivals at bay and allows you to maintain long-term profitability.\n Whether through network effects, intellectual property (IP), brand loyalty, economies of\n scale, or high switching costs, a strong moat keeps your business safe from competitive\n threats. Building a moat is not just about gaining an advantage; it’s about maintaining and\n defending it relentlessly. Over time, a business must continuously invest in strengthening\n and expanding its moat, whether through innovation, customer engagement, or scaling its\n operations. Without a moat, your competitive position is vulnerable to erosion, and even the\n most successful strategies can falter.\n </P>\n <P className=\"text-center\">\n <i>“A wise man will make more opportunities than he finds.” – Francis Bacon</i>\n </P>\n <H1>Examples:</H1>\n <H2>Coca-Cola: Brand Loyalty and Distribution Network</H2>\n <P>\n Coca-Cola’s moat is built on its brand loyalty and global distribution network. For over a\n century, Coca-Cola has dominated the beverage industry, leveraging powerful brand\n recognition and emotional connections with customers. Its ability to deliver products\n virtually everywhere—from rural areas to major metropolitan hubs—is a significant\n distribution channel advantage. The brand loyalty fosters repeat business, and Coca-Cola’s\n consistent marketing keeps it top-of-mind for consumers. Replicating this level of customer\n attachment and logistical reach is incredibly difficult for competitors, making Coca-Cola a\n textbook example of a moat driven by brand strength.\n </P>\n <H2>Visa: Network Effects and High Switching Costs</H2>\n <P>\n Visa’s moat is driven by network effects and high switching costs. As one of the largest\n payment processing networks globally, Visa capitalizes on a virtuous cycle: increased\n merchant acceptance leads to greater consumer adoption, which in turn drives further\n merchant integration. This creates a network effect that strengthens Visa’s position over\n time. Moreover, the high switching costs for both consumers and merchants, who are deeply\n integrated into the Visa payment system, make it extremely difficult for competitors to\n challenge Visa’s dominance in the payments industry.\n </P>\n <H2>Intel: Intellectual Property (IP) and Economies of Scale</H2>\n <P>\n Intel’s moat is built on its intellectual property (IP), particularly its advanced\n semiconductor technologies, and its ability to achieve economies of scale. As one of the\n largest manufacturers of microprocessors, Intel has developed proprietary technologies and\n innovations that are difficult for competitors to replicate. This strong IP portfolio,\n including patents on semiconductor manufacturing techniques, gives Intel a significant\n competitive advantage. Furthermore, Intel benefits from economies of scale, as its\n large-scale production allows it to lower costs and pass on those savings to customers,\n making it difficult for smaller competitors to compete on price or performance. Intel’s\n ability to produce chips in massive quantities at lower costs while maintaining high\n performance sets a powerful barrier to entry in the semiconductor industry.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function Capabilities() {\n return (\n <div>\n <P>\n A strategy is only as good as the organization’s ability to execute it. No matter how bold\n your strategic ambitions, they need to align with your company’s capabilities, resources,\n and culture. If you pursue a strategy that your organization cannot deliver—whether due to\n lack of expertise, insufficient resources, or cultural misalignment—you risk failure. The\n key to success lies in optimizing your strategy around what your organization does best.\n Focus on your unique strengths—whether in technology, talent, or processes—and use these as\n the foundation for your strategic goals. Where gaps exist, look for ways to either build the\n necessary capabilities internally or partner with others to fill them. This approach ensures\n your strategy is grounded in your company’s core strengths, making it both achievable and\n sustainable over time.\n </P>\n <P className=\"text-center\">\n <i>\n “It is not enough to do your best; you must know what to do, and then do your best.” – W.\n Edwards Deming\n </i>\n </P>\n <H1>Examples:</H1>\n <H2>Patagonia: Aligning strategy with environmental sustainability and brand loyalty</H2>\n <P>\n Patagonia has built its strategy around its capabilities in environmental sustainability and\n brand loyalty. Its commitment to producing eco-friendly products aligns perfectly with its\n culture of environmental responsibility. The company’s resources—including its extensive\n supply chain, material sourcing expertise, and environmental advocacy—allow it to offer\n high-quality outdoor gear while maintaining its reputation as a sustainable brand. By\n staying true to its mission and continually refining its operational processes, Patagonia\n has effectively created a unique market niche. Their customers aren’t just loyal to the\n products; they’re aligned with the company’s broader environmental values, further\n strengthening the company’s strategic position.\n </P>\n <H2>Zara: Aligning strategy with fast fashion and supply chain efficiency</H2>\n <P>\n Zara, part of the Inditex group, has aligned its strategy with its capabilities in fast\n fashion and supply chain efficiency. The company’s ability to move from design to retail in\n a matter of weeks is a key capability that differentiates it in the fashion industry. Zara's\n strategic focus on rapid turnaround time and cost-effective production enables it to offer\n trendy, affordable apparel without holding large inventories. Its vertically integrated\n supply chain—where manufacturing and distribution are closely controlled—ensures speed and\n flexibility in responding to market demands, making it a leader in the fast-fashion space.\n </P>\n <H2>John Deere: Aligning strategy with agricultural innovation and customer relationships</H2>\n <P>\n John Deere has aligned its strategy with its capabilities in agricultural innovation and\n customer relationships. Known for its high-performance machinery and technology in farming,\n John Deere continuously leverages its expertise in engineering and technology to develop\n cutting-edge solutions that improve the efficiency of farmers worldwide. The company’s\n resources—including its advanced software solutions and integrated products—allow it to\n offer a comprehensive service package to customers. John Deere’s strategic focus on\n fostering long-term relationships with its customers ensures that it isn’t just selling\n machinery but is a valued partner in improving agricultural productivity.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function Expand() {\n return (\n <div>\n <P>\n Growth is often seen as the ultimate sign of success, but not all growth is beneficial.\n Expanding your business should not be about growth for growth’s sake. Instead, any\n expansion—whether through diversification, mergers, or acquisitions—should be evaluated\n based on the value it adds to the business. Use frameworks like the “better-off test” and\n the “ownership test” to guide your decision-making. The “better-off test” asks whether\n expansion will improve your ability to compete in the market. The “ownership test” evaluates\n whether you are better off owning or partnering with another entity. The key is to ensure\n that any move aligns with your core strategy and enhances your competitive position.\n Expanding just for the sake of growth—including overpaying for acquisitions or entering\n unrelated markets without clear synergies—can dilute your resources and distract from your\n core business, so make sure growth adds real, long-term value to your company.\n </P>\n <P className=\"text-center\">\n <i>\"The essence of strategy is choosing what not to do.\" – Michael E. Porter</i>\n </P>\n <H1>Examples:</H1>\n <H2>PepsiCo: Acquisition of Frito-Lay (Better-off Test)</H2>\n <P>\n PepsiCo’s acquisition of Frito-Lay is a textbook example of leveraging the better-off test.\n By acquiring Frito-Lay, PepsiCo was able to expand its product portfolio, ensuring long-term\n growth and stability. The acquisition made PepsiCo better off because it allowed the company\n to tap into complementary product categories (snacks and beverages), increase market share,\n and streamline operations, resulting in efficiencies across distribution and marketing. This\n strategic diversification helped PepsiCo mitigate risk by not being overly reliant on a\n single product category, particularly soft drinks, which are vulnerable to market shifts.\n </P>\n <H2>Starbucks: Joint Venture in China (Ownership Test)</H2>\n <P>\n When Starbucks expanded into China, it chose to partner with local businesses through a\n joint venture, a strategic decision that highlights the ownership test. Instead of fully\n acquiring a local entity or entering the market alone, Starbucks decided that partnering\n with local firms was more advantageous. These local partners provided critical insights into\n the Chinese market, including consumer preferences, cultural nuances, and regulatory\n challenges, which Starbucks leveraged to navigate the complexities of the region. This\n partnership allowed Starbucks to rapidly scale while mitigating risks associated with\n unfamiliar territory. By choosing a joint venture over full ownership, Starbucks made a\n decision that allowed it to leverage local expertise while maintaining some level of control\n over its operations and brand.\n </P>\n <H2>LVMH: Acquisitions of Luxury Brands (Better-off and Ownership Tests)</H2>\n <P>\n LVMH has used both the better-off test and the ownership test effectively in its strategy of\n acquiring luxury brands. LVMH’s acquisition of companies like Bulgari and Sephora allowed it\n to dominate the luxury goods market by strengthening its existing portfolio with\n complementary brands that align with its core focus on high-end goods. The better-off test\n was clearly met as these acquisitions created synergies in distribution, marketing, and\n brand positioning. The ownership test was also critical, as LVMH determined that owning the\n brands outright would provide better control over their growth and preserve the exclusivity\n and prestige of these high-end labels. Through this strategy, LVMH has been able to create\n substantial value, making it one of the most dominant luxury goods conglomerates in the\n world.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function GainsAndGoals() {\n return (\n <div>\n <P>\n While short-term financial performance is important, businesses should never sacrifice\n long-term value creation just to meet quarterly goals or annual targets. Strategic decisions\n should always balance the immediate financial outcomes with investments that ensure\n sustainable growth, innovation, and resilience. Short-term gains can be tempting, but they\n should never come at the expense of the business’s future position or market leadership. By\n focusing too much on immediate results, businesses risk undermining the very foundation on\n which they rely for future success. Strive to align short-term goals with a longer-term\n vision that ensures ongoing innovation, talent development, and operational efficiency.\n </P>\n <P className=\"text-center\">\n <i>\"Begin with the end in mind.\" – Stephen Covey</i>\n </P>\n <H1>Examples:</H1>\n <H2>Procter & Gamble: Balancing Innovation and Sustainability</H2>\n <P>\n P&G has masterfully balanced short-term performance with long-term innovation. A great\n example of this is their ongoing focus on product development while simultaneously investing\n in sustainability initiatives. While P&G’s core products (like Tide and Pampers)\n consistently deliver short-term profitability, the company is also heavily investing in\n sustainable materials and eco-friendly packaging. This long-term strategy positions P&G to\n lead in consumer goods even as market demands shift toward more responsible business\n practices. P&G’s strategic decisions are always made with an eye on future market shifts,\n ensuring long-term growth while delivering consistent financial results.\n </P>\n <H2>Johnson & Johnson: Investing in Health Innovations</H2>\n <P>\n Johnson & Johnson’s long-term success is built on balancing immediate financial outcomes\n with its investments in health innovations. For instance, the company has made huge strides\n in medical devices, pharmaceuticals, and consumer health while also maintaining strong\n returns from its legacy products. The COVID-19 vaccine was a prime example where J&J’s\n immediate investment in research and development resulted in short-term revenue, but the\n company’s long-term commitment to global healthcare solutions ensured its relevance in the\n industry. J&J's broad portfolio allows it to weather short-term fluctuations while securing\n long-term growth through innovation and strategic R&D investments.\n </P>\n <H2>Adobe: Transitioning to a Subscription Model</H2>\n <P>\n Adobe’s transition from traditional software licensing to a subscription-based model with\n Adobe Creative Cloud is a perfect example of balancing short-term growth with a long-term\n vision. Initially, Adobe experienced a dip in revenue as customers adjusted to the new\n pricing structure. However, this strategic move has paid off in the long run by generating\n recurring revenue and increasing customer lifetime value. Adobe continues to innovate within\n its Creative Cloud platform, expanding into new areas such as digital marketing and\n AI-driven creative tools, ensuring its leadership in the creative industry for years to\n come. This strategy exemplifies how Adobe has leveraged its resources to fuel both\n short-term growth and long-term sustainability.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function Innovate() {\n return (\n <div>\n <P>\n Stay ahead by continuously learning and adapting. Markets, technologies, and customer\n expectations evolve quickly, and what works today might fail tomorrow. Innovation isn't just\n about new products—it's about rethinking how you deliver value and how you operate. Build a\n culture of experimentation where failure is seen as part of the process. Adapt quickly,\n disrupt yourself before others do, and always be ready to pivot. Embrace change, encourage\n creativity, and look for new ways to solve problems. Staying flexible and innovative is\n essential for long-term success and staying competitive in a fast-changing world.\n </P>\n <P className=\"text-center\">\n <i>\n “An organization’s ability to learn, and translate that learning into action rapidly, is\n the ultimate competitive advantage.” – Jack Welch\n </i>\n </P>\n <H1>Examples:</H1>\n <H2>Zoom Video Communications: Rapid Adaptation and Innovation</H2>\n <P>\n Zoom quickly became a household name during the COVID-19 pandemic, but its success didn’t\n come from luck. The company’s ability to pivot and adapt to the sudden rise in demand for\n video conferencing enabled it to scale rapidly. Zoom constantly innovated by enhancing its\n platform to support virtual backgrounds, webinars, and enterprise features. By embracing\n innovation, user feedback, and a relentless focus on user experience, Zoom emerged as the\n go-to solution for remote work, learning, and communication.\n </P>\n <H2>Toyota: Continuous Improvement with Kaizen</H2>\n <P>\n Toyota’s “kaizen” philosophy of continuous improvement has allowed it to stay ahead of\n competitors in the automotive industry for decades. The company’s ability to adapt, learn,\n and innovate is embedded in its culture and operations. From the production of\n fuel-efficient hybrids to embracing new electric vehicle technologies, Toyota has\n consistently disrupted its own business model to stay ahead of market trends and consumer\n preferences.\n </P>\n <H2>General Electric: Focusing on Industrial Digitalization and Clean Energy</H2>\n <P>\n Once a diversified conglomerate, GE adapted its strategy to focus on industrial\n digitalization and clean energy. It embraced advancements in smart grids, aviation, and\n healthcare technologies to remain at the cutting edge. In recent years, GE pivoted to focus\n on areas like renewable energy, digital industrialization, and sustainable solutions,\n ensuring its competitive edge in the face of rapidly changing technological and market\n dynamics.\n </P>\n </div>\n );\n}\n","import { H1, H2, P } from \"design_lib\";\nexport default function Levels() {\n return (\n <div>\n <P>\n A strategy is only as effective as its execution. Ensure alignment across all levels of the\n organization, from leadership to front-line employees, by setting clear, actionable\n objectives and defining measurable outcomes. Mobilize resources, streamline communication,\n and eliminate barriers to progress. The real test of strategy lies in its ability to guide\n decisions and actions consistently, bridging vision and day-to-day realities.\n </P>\n <P className=\"text-center\">\n <i>\n “Execution without a strategy is aimless, strategy without execution is useless.” – Morris\n Chang\n </i>\n </P>\n <H1>Examples:</H1>\n <H2>McDonald’s: Consistency Through Operational Excellence</H2>\n <P>\n McDonald’s success lies in its relentless focus on implementing strategy at every level of\n its global operation. From leadership to frontline employees, the company ensures\n operational excellence through clear processes, standardized systems, and thorough training.\n The result is a consistent customer experience worldwide, demonstrating how execution turns\n strategy into a competitive advantage.\n </P>\n <H2>Ritz-Carlton: Turning Vision Into Day-to-Day Service</H2>\n <P>\n Ritz-Carlton’s legendary service is not just an idea—it’s implemented through rigorous\n employee training and a culture that empowers frontline staff to deliver personalized\n experiences. By aligning their strategy with daily actions, Ritz-Carlton bridges its vision\n of luxury hospitality with tangible customer satisfaction.\n </P>\n <H2>FedEx: Delivering Strategy with Precision</H2>\n <P>\n FedEx’s ability to execute its strategy hinges on a commitment to operational precision and\n alignment across every level of the organization. From leadership setting a clear vision of\n reliable, time-definite delivery to frontline employees carrying it out with exacting\n standards, FedEx has created an ecosystem where processes, technology, and people work\n seamlessly. This focus on execution has solidified its position as a global logistics\n leader, bridging strategic goals with day-to-day realities.\n </P>\n </div>\n );\n}\n","import { createContext, useContext, useEffect, useState } from \"react\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport { TConcept, TPathway, TFocus, defaultConcept } from \"types/JsonType\";\r\nimport SidebarPage from \"components/templates/SidebarPage\";\r\n\r\nimport MasterSidebar from \"components/navigation/MasterSidebar\";\r\nimport Concepts from \"lib/data/Concepts\";\r\nimport constants from \"Constants\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport BreadcrumbsAndArrows from \"components/navigation/BreadcrumbsAndArrows\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport Error from \"components/templates/Error\";\r\n\r\ntype TConceptContext = {\r\n pageConcept: TConcept;\r\n pagePathway?: TPathway;\r\n pageFocus?: TFocus;\r\n};\r\n\r\nconst ConceptContext = createContext<TConceptContext>({\r\n pageConcept: defaultConcept,\r\n});\r\n\r\nfunction SubHeading({ pagePathway }: { pagePathway: TPathway }) {\r\n const pageFocus = Focuses[pagePathway.focus];\r\n return (\r\n <div className=\"text-center\">\r\n <div className=\"lead fs-5\">\r\n <Link to={pageFocus.url} className=\"text-body no-underline underline-on-hover\">\r\n <span className=\"fs-4 text-grey-red\">{pageFocus.letter}</span>\r\n {pageFocus.name.slice(1)}\r\n </Link>{\" \"}\r\n •{\" \"}\r\n <Link to={pagePathway.url} className=\"text-body no-underline underline-on-hover\">\r\n {pagePathway.name}\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Title() {\r\n const { pageConcept, pagePathway } = useContext(ConceptContext);\r\n return (\r\n <div className=\"text-center w-100 my-4\">\r\n <div className=\"text-grey-red display-4\"> {pageConcept.name}</div>\r\n {pagePathway && <SubHeading pagePathway={pagePathway} />}\r\n </div>\r\n );\r\n}\r\n\r\nfunction Content() {\r\n const { pageConcept, pagePathway } = useContext(ConceptContext);\r\n\r\n const [ImportedComponent, setImportedComponent] = useState(null) as any;\r\n\r\n useEffect(() => {\r\n async function ImportComponents(filePath: string) {\r\n setImportedComponent(null);\r\n await import(`${filePath}`).then((module) => {\r\n const AnotherComponent = module.default;\r\n setImportedComponent(<AnotherComponent />);\r\n });\r\n }\r\n\r\n // import all adjacent concept components. This dramatically improves the load time of the pages.\r\n if (pagePathway) {\r\n pagePathway.concepts.forEach((conceptId) => {\r\n const concept = Concepts[conceptId];\r\n import(`${concept.filePath}`);\r\n });\r\n }\r\n\r\n ImportComponents(pageConcept.filePath);\r\n }, [pageConcept.filePath, pagePathway]);\r\n\r\n return <div> {ImportedComponent}</div>;\r\n}\r\n\r\nexport default function FocusRoot() {\r\n const { conceptId, pathwayId } = useParams();\r\n\r\n if (!conceptId) return <Error message={\"404. Page not found\"} />;\r\n const pageConcept = Concepts[conceptId];\r\n if (!pageConcept) return <Error message={\"404. Page not found\"} />;\r\n\r\n let pagePathway;\r\n if (pathwayId) {\r\n pagePathway = Pathways[pathwayId];\r\n }\r\n\r\n SetDocumentTitle(pageConcept.name);\r\n return (\r\n <ConceptContext.Provider value={{ pageConcept, pagePathway }}>\r\n <SidebarPage.Page sidebarDefaultCollapsed={!pagePathway}>\r\n <SidebarPage.Sidebar>\r\n <MasterSidebar />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n {pagePathway && (\r\n <BreadcrumbsAndArrows\r\n focus={Focuses[pagePathway.focus]}\r\n pathway={pagePathway}\r\n concept={pageConcept}\r\n />\r\n )}\r\n <div className=\"d-flex justify-content-center mb-5 mx-3 mx-md-4\">\r\n <div className=\"w-100\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <Title />\r\n <Content />\r\n </div>\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n </ConceptContext.Provider>\r\n );\r\n}\r\n","import { useElementPosition } from \"components/tools/pages/PortersFiveForcesCalculator\";\nimport { useEffect, useRef } from \"react\";\nimport HalfWedgeSrc from \"lib/img/differentiation_wedges/Half_Wedge.png\";\nimport FullWedgeSrc from \"lib/img/differentiation_wedges/Full_Wedge.png\";\nimport TopLineSrc from \"lib/img/differentiation_wedges/Top_Line.png\";\nimport BottomLineSrc from \"lib/img/differentiation_wedges/Bottom_Line.png\";\n\nexport default function Wedges() {\n const TopBarImg = (\n <img width={100} src={TopLineSrc} alt=\"placeholder\" className=\"object-position-bottom\" />\n );\n const BottomBarImg = <img width={100} src={BottomLineSrc} alt=\"placeholder\" />;\n const TopHalfWedgeImg = (\n <div className=\"position-relative\">\n <div className=\"position-absolute top-0 start-0 ms-4\" style={{ marginTop: \"4rem\" }}>\n Differentiation\n </div>\n <img width={200} height={200} src={HalfWedgeSrc} alt=\"placeholder\" />\n </div>\n );\n const BottomHalfWedgeImg = (\n <div>\n <div className=\"position-absolute bottom-0 start-0 ms-4\" style={{ marginBottom: \"4rem\" }}>\n Cost Advantage\n </div>\n <img\n style={{ transform: \"scale(1, -1)\" }}\n width={200}\n height={200}\n src={HalfWedgeSrc}\n alt=\"placeholder\"\n />\n </div>\n );\n const FullWedgeImg = (\n <div>\n <div className=\"position-absolute d-flex ms-4 align-items-center h-100\">\n <div>Dual Advantage</div>\n </div>\n <img width={200} height={200} src={FullWedgeSrc} alt=\"placeholder\" />\n </div>\n );\n return (\n <>\n <Wedge\n WedgeImg={BottomHalfWedgeImg}\n wedgeTopAspectRatio={0}\n wedgeBottomAspectRatio={0.55}\n TopBarImg={TopBarImg}\n BottomBarImg={BottomBarImg}\n />\n <Wedge\n WedgeImg={TopHalfWedgeImg}\n wedgeTopAspectRatio={0.55}\n wedgeBottomAspectRatio={0}\n TopBarImg={TopBarImg}\n BottomBarImg={BottomBarImg}\n />\n <Wedge\n WedgeImg={FullWedgeImg}\n wedgeTopAspectRatio={0.5}\n wedgeBottomAspectRatio={0.5}\n TopBarImg={TopBarImg}\n BottomBarImg={BottomBarImg}\n />\n </>\n );\n}\n\ntype TWedgeParams = {\n wedgeBottomAspectRatio: number;\n wedgeTopAspectRatio: number;\n WedgeImg: JSX.Element;\n TopBarImg: JSX.Element;\n BottomBarImg: JSX.Element;\n};\n\nexport function Wedge({\n wedgeTopAspectRatio,\n wedgeBottomAspectRatio,\n WedgeImg,\n TopBarImg,\n BottomBarImg,\n}: TWedgeParams) {\n let [wedgeContainerRef, wedgeContainerPos] = useElementPosition();\n let [wedgeRef, wedgePos] = useElementPosition();\n let topBarRef = useRef<HTMLDivElement>(null);\n let bottomBarRef = useRef<HTMLDivElement>(null);\n let distBarToWallPx = 200;\n let containerWidth = 400;\n let containerHeight = 400;\n useEffect(() => {\n let wedgeElmnt = wedgeRef.current;\n if (wedgeElmnt) {\n let clientOffset = 0;\n let clientPosition = 0;\n let wedgeLeft = wedgePos.left;\n let wedgeRight = wedgePos.right;\n let wedgeContYCenter = wedgeContainerPos.height / 2;\n let moveable = true;\n\n wedgeElmnt.onmousedown = onMouseDown;\n\n function onMouseDown(e: any) {\n if (wedgeElmnt) {\n e.preventDefault();\n moveable = true;\n clientPosition = e.clientX;\n document.onmouseup = onMouseUp;\n document.onmousemove = onMouseMove;\n }\n }\n\n function onMouseUp() {\n moveable = false;\n }\n\n function onMouseMove(e: any) {\n e.preventDefault();\n\n let tempClientOffset = clientPosition - e.clientX;\n let tempWedgeLeft = wedgeLeft - tempClientOffset;\n let tempWedgeRight = wedgeRight - tempClientOffset;\n\n let isValidMove =\n moveable &&\n wedgeContainerPos.right >= tempWedgeRight &&\n wedgeContainerPos.left <= tempWedgeLeft;\n\n if (wedgeElmnt && isValidMove) {\n let topBar = topBarRef.current;\n let bottomBar = bottomBarRef.current;\n clientOffset = clientPosition - e.clientX;\n clientPosition = e.clientX;\n wedgeElmnt.style.left = wedgeElmnt.offsetLeft - clientOffset + \"px\";\n wedgeLeft -= clientOffset;\n wedgeRight -= clientOffset;\n if (topBar && bottomBar) {\n let halfBarWidth = topBar.offsetWidth / 2;\n if (wedgeRight - wedgeContainerPos.left - halfBarWidth > distBarToWallPx) {\n topBar.style.bottom =\n wedgeContYCenter +\n (wedgeRight - wedgeContainerPos.left - halfBarWidth - distBarToWallPx) *\n wedgeTopAspectRatio +\n \"px\";\n bottomBar.style.top =\n wedgeContYCenter +\n (wedgeRight - wedgeContainerPos.left - halfBarWidth - distBarToWallPx) *\n wedgeBottomAspectRatio +\n \"px\";\n } else {\n topBar.style.bottom = wedgeContYCenter + \"px\";\n bottomBar.style.top = wedgeContYCenter + \"px\";\n }\n }\n }\n }\n }\n }, [\n distBarToWallPx,\n wedgeBottomAspectRatio,\n wedgeContainerPos,\n wedgeContainerRef,\n wedgePos,\n wedgeRef,\n wedgeTopAspectRatio,\n ]);\n\n return (\n <div>\n <div\n id=\"wedge-container\"\n className=\"wedge-bg position-relative d-flex align-items-center\"\n ref={wedgeContainerRef}\n style={{ width: containerWidth, height: containerHeight }}\n >\n <div id=\"bar-container\" className=\"position-absolute top-0 w-100 h-100\">\n <div\n id=\"wedged-lower-bar\"\n className=\" position-absolute d-flex justify-content-end\"\n ref={topBarRef}\n style={{ left: distBarToWallPx, height: \"7.5em\", bottom: \"50%\" }}\n >\n <div className=\"position-absolute mt-3\">WTP</div>\n {TopBarImg}\n </div>\n <div></div>\n <div\n id=\"wedged-upper-bar\"\n className=\" position-absolute\"\n ref={bottomBarRef}\n style={{ height: \"7.5em\", left: distBarToWallPx, top: \"50%\" }}\n >\n <div className=\"position-absolute mb-3 bottom-0 end-0\">WTS</div>\n {BottomBarImg}\n </div>\n </div>\n <div id=\"wedge\" className=\" user-select-none position-absolute flex-end\" ref={wedgeRef}>\n {WedgeImg}\n </div>\n </div>\n </div>\n );\n}\n","import { Concepts } from \"lib/data/Concepts\";\r\nimport { RelatedFrameworks, H1, H2, P, Updated } from \"design_lib\";\r\n\r\nexport default function AdjacentMarketExpansion() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n <P>\r\n Many companies may wonder how to best expand their portfolio. Adjacent markets are rife with\r\n opportunity while usually offering a solution that is similar to your existing product line.\r\n In a basic sense, Adjacent market expansion entails moving into a market closely related to\r\n their present one. As such, expansion in this sector can mean maintaining low costs and\r\n leveraging existing relationships.\r\n </P>\r\n <P>\r\n Harley-Davidson, the iconic motorcycle manufacturer, has built a strong brand identity\r\n around freedom and rebellion. They successfully expanded into a line of branded clothing and\r\n accessories. This taps into the existing customer loyalty and extends the brand experience\r\n beyond motorcycles. The same customer who buys a Harley might also want a Harley jacket to\r\n express their affiliation with the brand.\r\n </P>\r\n <H1>Examples</H1>\r\n <H2>Clorox</H2>\r\n <P>\r\n while being known for bleach and disinfectants recognized demand for eco-friendly\r\n alternatives, they introduced “Green Works” which is a line of plant-based cleaning\r\n products. This caters to a similar cleaning need but focuses on sustainability. This enabled\r\n the company to access a new market segment of eco-cognizant customers.\r\n </P>\r\n <H2>P&G</H2>\r\n <P>\r\n the cosmetics and grooming giant recently acquired Brita Water purification systems. They\r\n could easily leverage their existing knowledge of personal cleanliness and apply it to water\r\n filtration. This opened up a new market for them to pursue adding to their gigantic reach.\r\n </P>\r\n <H2>Michelin</H2>\r\n <P>\r\n The tire company renowned for its quality and durability, famously expanded into restaurant\r\n guides. This might seem like a leap, but it leverages their expertise in understanding long\r\n journeys and the importance of pit stops. Their restaurant guides cater to a similar\r\n customer base with a focus on quality and providing a positive travel experience, but in a\r\n completely different way.\r\n </P>\r\n\r\n <H1>History</H1>\r\n <div>\r\n <P>\r\n The concept of adjacent market expansion isn't formally traced back to one specific point\r\n in history, but rather has evolved through business practices over time. However, there\r\n are key thinkers and milestones that highlight its growing importance:\r\n </P>\r\n <P>\r\n Throughout history, companies have intuitively expanded into adjacent markets. For\r\n instance, a blacksmith might start selling nails or horseshoes alongside their core\r\n service. These early examples lacked a formal framework, but they demonstrate the\r\n underlying logic of leveraging existing capabilities.\r\n </P>\r\n <P>\r\n Management thinkers in the 20th century like Peter Drucker emphasized the importance of\r\n companies focusing on their core competencies. This philosophy laid the groundwork for\r\n strategic expansion into areas that utilize those core strengths.\r\n </P>\r\n <P>\r\n The concept gained more specific recognition in the 1990s with the rise of competitive\r\n strategy frameworks like Michael Porter's Five Forces. Businesses began to analyze not\r\n just their core market but also adjacent markets to identify growth opportunities with\r\n less competition.\r\n </P>\r\n <P>\r\n Building on competitive strategy, W. Chan Kim and Renée Mauborgne introduced the concept\r\n of Blue Ocean Strategy in their influential 2005 book. They argued that companies should\r\n not just compete in existing markets (red oceans) but seek out entirely new market spaces\r\n (blue oceans) - often achieved through adjacent market expansion with innovation.\r\n </P>\r\n <P>\r\n Today, adjacent market expansion is a widely recognized strategy for companies seeking\r\n growth. It offers a balance between the risks of entirely new ventures and the saturation\r\n of existing markets. Companies across various industries are constantly exploring and\r\n implementing this approach.\r\n </P>\r\n </div>\r\n <RelatedFrameworks\r\n concepts={[Concepts.ThreeHorizons, Concepts.BlueOcean, Concepts.PortersFiveForces]}\r\n />\r\n <Updated date=\"2/21/2025\" />\r\n </div>\r\n );\r\n}\r\n","import { Concepts } from \"lib/data/Concepts\";\r\nimport { RelatedFrameworks, H1, H2, Ol, P, Updated } from \"design_lib\";\r\n\r\nexport default function BlueOcean() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n <P>\r\n One of the main difficulties in business is trying to compete with so many alternatives.\r\n Blue ocean strategy was developed to create and capture uncontested market space. By\r\n pursuing both differentiation and low cost, business leaders can reimagine market boundaries\r\n and industry structure to innovate their way to success.\r\n </P>\r\n <P>\r\n Example - <b>Dollar Shave Club</b>: The traditional razor market was dominated by expensive,\r\n multi-blade razors with frequent cartridge replacements (Gilette). The Dollar Shave Club\r\n created a <b>blue ocean</b> by offering a <b>subscription model</b> of <b>high-quality</b>,{\" \"}\r\n <b>single-blade razors</b> at a <b>significantly lower price</b>. They targeted a segment of\r\n consumers who found traditional razors overpriced and unnecessary, providing a{\" \"}\r\n <b>simple and affordable alternative</b>.\r\n </P>\r\n <P>\r\n Creating blue ocean strategies can be diluted down to five points all directed questioning\r\n industry assumptions.\r\n </P>\r\n <Ol>\r\n <li>\r\n Make the competition irrelevant by offering leaps in value through innovation. This can\r\n include producing new products that engender new markets.\r\n </li>\r\n <li>\r\n Shape industry structure to your advantage by your strategy. Instead of vertical\r\n competition, look for horizontal expansion.\r\n </li>\r\n <li>\r\n Consider not just existing customers, but also non-customers as prime targets for your\r\n products. These may contain the greatest insights for revolutionizing your industry.\r\n </li>\r\n <li>\r\n Review modes of industry improvement by speaking to past customers, non-customers, and new\r\n customers. This will help you tailor new products and strategies towards expansion of the\r\n industry.\r\n </li>\r\n <li>\r\n Balance your strategy by maintaining focus on low cost and differentiation. This will be\r\n the ultimate key to creating a winning strategy.\r\n </li>\r\n </Ol>\r\n <H1>Examples</H1>\r\n\r\n <H2>Airbnb</H2>\r\n <P>\r\n The hospitality industry was dominated by traditional hotels and motels. Airbnb created a\r\n blue ocean by offering a peer-to-peer platform allowing individuals to rent out their own\r\n homes or spaces to travelers. This catered to a growing demand for unique and authentic\r\n experiences at competitive prices. Additionally, it offered homeowners the opportunity to\r\n generate income by utilizing their unused space.\r\n </P>\r\n <H2>Cirque du Soleil</H2>\r\n <P>\r\n Traditional circuses were often seen as catering to children and families. Cirque du Soleil,\r\n however, created a blue ocean by offering a high-end, theatrical circus experience for\r\n adults. They combined artistic elements with traditional circus acts, appealing to a broader\r\n audience and offering a unique value proposition.\r\n </P>\r\n <H2>Apple iPod</H2>\r\n <P>\r\n While portable MP3 players existed before the iPod, they were often bulky and inconvenient.\r\n Apple created a blue ocean with the iPod by offering a sleek, user-friendly design with a\r\n large music library through iTunes. This combination of design, functionality, and content\r\n created a new market for stylish and easy-to-use music players.\r\n </P>\r\n <H1>History</H1>\r\n <P>\r\n In 2005, the book “Blue Ocean Strategy, How to Create Uncontested Market Space” was written\r\n by Renee Mauborgne and Chan Kim. This book authored the beginning of blue ocean strategy by\r\n pursuing both low cost and differentiation. The systematic approach detailed by the book led\r\n to wide adoption across various sectors. Following the worldwide success of “Blue Ocean\r\n Strategy” the later named #1 Management thinkers in the world wrote “Blue Ocean Shift” to\r\n describe how to move beyond industry competition to inspire employee confidence and seize\r\n new growth opportunities.\r\n </P>\r\n <RelatedFrameworks concepts={[Concepts.ThreeHorizons, Concepts.AdjacentMarketExpansion]} />\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Concepts } from \"lib/data/Concepts\";\r\n\r\nimport CageImg from \"lib/img/concepts/CAGE_framework.png\";\r\nimport { RelatedFrameworks, Image, H1, H2, P, Ul, Updated } from \"design_lib\";\r\n\r\nexport default function Cage() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n <P>\r\n When contemplating international expansion, business leaders often have difficulty\r\n predicting the differences between their home countries and foreign expansion opportunities.\r\n By analyzing the CAGE distance between the two markets, they can understand the potential\r\n challenges and opportunities associated with international expansion. A larger CAGE distance\r\n would indicate greater challenges while a smaller CAGE distance could indicate easier\r\n entries.\r\n </P>\r\n <P>\r\n <b>(C) Culture</b> - referring to difference in language, religion, traditions, values and\r\n social norms. These differences significantly impact consumer preferences and norms.{\" \"}\r\n </P>\r\n <P>\r\n <b>(A) Administration</b> - relating to differences of legal systems, political ideologies,\r\n regulations and bureaucracies. These can affect operating procedures, taxation, IP & labor\r\n laws.\r\n </P>\r\n <P>\r\n <b>(G) Geography</b> - representing physical distance, infrastructure, time zones, &\r\n climate. These could impact distribution, communication and logistics.{\" \"}\r\n </P>\r\n <P>\r\n <b>(E) Economy</b> - meaning the difference of income levels economic development, and\r\n currency exchange rates. This affects consumer buying power, production costs and overall\r\n market attractiveness.\r\n </P>\r\n <P>\r\n Example: Spotify. Expanding globally, Spotify adapted their music catalogue and user\r\n interface to different languages and cultural preferences (cultural factor). They complied\r\n with complex licensing and copyright regulations in each country (administrative factor).\r\n Geographical considerations involved tailoring streaming quality based on internet\r\n infrastructure and adapting marketing strategies to different time zones. Spotify also\r\n adjusted subscription fees based on local economic realities.\r\n </P>\r\n\r\n <Image src={CageImg} alt=\"\" />\r\n <H1>Examples</H1>\r\n <H2>Domino's Pizza</H2>\r\n <P>\r\n When entering India, Domino's undertook extensive analysis using the CAGE framework. They\r\n adapted their menu to accommodate vegetarian preferences (pizza with paneer) and navigated\r\n complex administrative regulations regarding food safety and franchising. Understanding the\r\n geographical distances and economic limitations also led them to adjust delivery pricing and\r\n store formats.\r\n </P>\r\n <H2>Netflix</H2>\r\n <P>\r\n Their expansion into China involved adapting their content library and interface to comply\r\n with censorship regulations (administrative factor). They considered cultural differences in\r\n content preferences and partnered with local companies to address geographical and\r\n logistical challenges. Understanding economic limitations, they introduced tiered\r\n subscription plans.\r\n </P>\r\n <H2>Uber</H2>\r\n <P>\r\n Entering new markets involved tailoring their app to different languages and cultural norms\r\n (cultural factor). They navigated licensing and regulatory hurdles in each country\r\n (administrative factor). Uber utilized geographical mapping and adjusted payment methods\r\n based on local preferences. Additionally, they considered economic differences by offering\r\n different service tiers and pricing structures.\r\n </P>\r\n <H1>History</H1>\r\n <P>\r\n The CAGE framework for understanding distance in international business was developed by{\" \"}\r\n <b>Pankaj Ghemawat</b>, a professor at IESE Business School in Barcelona, Spain. Its debut\r\n came in his 1986 paper titled \"Distance Despite Borders: How Firms Manage in the World\r\n Economy.\"\r\n </P>\r\n <P>Here's a breakdown of its key points:</P>\r\n <P>\r\n <b>1986:</b> Initial development and publication. Ghemawat proposed the CAGE framework as an\r\n alternative to traditional models that primarily focused on geographical distance. He argued\r\n that cultural, administrative, and economic differences also significantly impact the\r\n \"distance\" between markets, influencing operational challenges and opportunities.\r\n </P>\r\n <P>\r\n <b>1991:</b> Further refinement. Ghemawat expanded on the framework in his book \"Borderless\r\n Management: Traversing the Global Labyrinth.\" He provided deeper explanations for each of\r\n the CAGE dimensions and demonstrated its application in analyzing different international\r\n business scenarios.\r\n </P>\r\n <P>\r\n <b>1990s-2000s:</b> Growing recognition and application. The CAGE framework gained traction\r\n among academics and practitioners in international business. Its simplicity and flexibility\r\n allowed companies to assess market potential and develop more nuanced strategies for global\r\n expansion.\r\n </P>\r\n <P>\r\n <b>2010s-present:</b> Continued relevance and evolution. While newer frameworks have\r\n emerged, the CAGE model remains a valuable tool for understanding international business\r\n complexities. Scholars continue to analyze and refine it, emphasizing its adaptability to\r\n various industries and market contexts.\r\n </P>\r\n <P>\r\n <b>Additionally:</b>\r\n </P>\r\n <Ul>\r\n <li>\r\n The framework has been empirically tested and validated through research studies,\r\n demonstrating its effectiveness in predicting the challenges and opportunities associated\r\n with international expansion.\r\n </li>\r\n <li>\r\n Its focus on multiple dimensions of \"distance\" encourages companies to move beyond solely\r\n geographical considerations and develop more comprehensive global strategies.\r\n </li>\r\n </Ul>\r\n <P>\r\n It's important to note that the CAGE framework is not a rigid formula, but rather a starting\r\n point for analysis. Other factors like political stability, technological advancements, and\r\n competitive landscape also play crucial roles in international business decisions. The\r\n framework's true strength lies in its ability to prompt a holistic evaluation of potential\r\n markets and guide companies towards making informed expansion choices.\r\n </P>\r\n <RelatedFrameworks concepts={[Concepts.TripleA]} unfinishedConcepts={[\"Pest Analysis\"]} />\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Image, H1, H2, P, Updated } from \"design_lib\";\r\nexport default function ConsumptionChain() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n The consumption chain model is an ideal tool for innovation, the consumption chain answers\r\n the question of “Where can we innovate?” when it feels like everything has already been\r\n done. It provides insights into the entire consumer journey, helping firms identify\r\n touchpoints, influences, and opportunities to enhance customer experience or to attract new\r\n customers.\r\n </P>\r\n\r\n <P>\r\n To construct a consumption chain model, firms should break down the consumer journey into\r\n key stages. These stages vary somewhat across firms but may include raising awareness,\r\n search, transaction, method of delivery, payment, setup, use, disposal, etc. Notice that\r\n each stage involves specific interactions and touchpoints between the consumer and the firm,\r\n each representing an opportunity to differentiate. Firms should outline each step of their\r\n consumer's consumption chain and then identify their customer's experience in each of these\r\n stages.\r\n </P>\r\n\r\n <P>\r\n The model aims to capture the holistic consumer experience. By understanding the entire\r\n consumption chain, firms can tailor their strategies to meet consumer needs at each stage.\r\n Identifying key areas for differentiation and innovation.\r\n </P>\r\n <H1>Examples</H1>\r\n <H2>Example 1</H2>\r\n <P>\r\n Firms have been differentiating by examining their consumption chain for decades. Consider\r\n your decision when going out to a restaurant to eat. Your options consist of drive-thru fast\r\n food, order at the window, order at the counter, a waiter serving your food, and many more\r\n options. Restaurants such as Sonic even differentiated by delivering your food to your\r\n parking space on rollerblades! This wide variety of offerings is differentiated through only\r\n one step of the consumption chain, the delivery of food. As we examine our products from the\r\n perspective of the consumption chain, a firm's opportunity for innovation and\r\n differentiation can expand significantly.\r\n </P>\r\n <H2>Example 2</H2>\r\n <P>\r\n For over a century, cars have been purchased and sold by large car dealerships. Any American\r\n is familiar with the large car lot, and a bright showroom at the center, all of which are\r\n swarming with pushy salesmen. Then in 2012, Carvana erected a car vending machine in Tempe,\r\n Arizona. While this fully functional vending machine is not their primary method of\r\n delivery, it is symbolic of their unique take on vehicle sales. Carvana has ushered in the\r\n era of online car sales, introducing features such as contactless car purchasing and\r\n same-day delivery of cars. This is another example of innovating through the consumption\r\n chain, as Carvana sells a completely undifferentiated product to the classic dealership, but\r\n with a completely different method of delivery.\r\n </P>\r\n <Image src={require(\"lib/img/concepts/Consumption_Chain.png\")} alt=\"\" />\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Concepts } from \"lib/data/Concepts\";\r\nimport Wedges from \"../components/Wedge\";\r\nimport { RelatedFrameworks, Image, H1, H2, P, Updated } from \"design_lib\";\r\n\r\nexport default function Differentiation() {\r\n return (\r\n <div>\r\n Differentiation | Features | Convenience | Brand | Quality | Product Quality | Customer\r\n Service | Jobs to be Done | Consumption Chain | Strategy Canvas | Buyer Utility Map\r\n <H1>Definition/Description</H1>\r\n <P>\r\n Differentiation is the way a company separates itself from the rest of the competition. It\r\n is one of the fundamental and foundational building blocks in strategy to build brand\r\n recognition, increase market share, and to grow as a company. It does this by raising a\r\n customer’s willingness to pay through comparative improvements in (i) the product and (ii)\r\n the customer interaction. The value stick demonstrates this concept:\r\n </P>\r\n <div className=\"d-flex flex-wrap gap-3 justify-content-between\">\r\n <Wedges />\r\n </div>\r\n <P>\r\n There are two sub categories of differentiation: product and customer. See the graphic below\r\n for examples of improvements to each differentiation subcategory:\r\n </P>\r\n <Image\r\n src={require(\"lib/img/concepts/Differentiation_Venn_Diagram.png\")}\r\n alt=\"venn diagram\"\r\n />\r\n <P>\r\n The product sub-category focuses on differentiating through certain aspects of a product\r\n while the customer sub-category focuses on differentiating through certain aspects that\r\n interact with a customer.\r\n </P>\r\n <P>*Insert Jeep Video Graphic right here*</P>\r\n <H1>Examples</H1>\r\n <H2>Apple</H2>\r\n <P>\r\n Apple is known for its innovation and high-quality products. It differentiates itself from\r\n its competitors in many aspects; its marketing, branding, and products.: all evoke high\r\n quality perceptions. It pays attention to details that other firms ignore such as packaging.\r\n High quality packaging leads to a unique “unboxing” experience. All of this leads to product\r\n differentiation.\r\n </P>\r\n <H2>Fender</H2>\r\n <P>\r\n Fender- Fender Stratocaster guitars are known for their three-coil pickup system for diverse\r\n tone possibility from clean to heavy sounds. Additionally, Stratocasters are heavily\r\n customizable for whichever sound quality someone may want. On the other hand, other guitar\r\n companies such as Gibson primarily utilize humbucker pickups that capture deep and heavy\r\n tones and are not so easily customized. Fender’s niche strategy for customizable tones is\r\n focused differentiation.\r\n </P>\r\n <H2>Chick-Fil-A</H2>\r\n <P>\r\n One of the many ways Chick-Fil-A differentiates itself is through superior customer service.\r\n They always seek to delight the customers by politely serving them. It is no surprise that\r\n they are consistently ranked high in the American Customer Satisfaction Index; in 2024 they\r\n were ranked 1st in the fast-food industry. Due to their quality customer service, they have\r\n loyal customers and been seeing consistent growth.\r\n </P>\r\n <H1>How it fits into Generic Strategies</H1>\r\n <Image\r\n src={require(\"lib/img/concepts/Differentiation_Porters_Generic_Strategies.png\")}\r\n alt=\"Generic Strategies\"\r\n />\r\n <P>\r\n As shown in the Generic Strategies framework *Hyperlink to codex article*, leaders choosing\r\n to leverage differentiation must choose whether to target the industry broadly or to target\r\n a narrower portion of the industry. Broad differentiation is to differentiate for many\r\n segments in industry while Focused Differentiation is provides differentiation within a\r\n specific segment of the market. For example, while American Airlines offers standard flights\r\n to virtually between any two locations in the United States at any time and focuses on\r\n multiple segments like family travel, business travel and everything in between. On the\r\n other hand, Southwest Airlines offers a focused travel experience that works to get people\r\n out of their car and onto a flight. In this case, Southwest operates in a more “niche”\r\n market than American Airlines in both the locations served and the people flown. This is\r\n manifest in the types of flights flown. For example, Southwest does not currently offer\r\n overnight “red-eye” flights. Over time, companies like Southwest may seek to shift between\r\n Focused Differentiation and Differentiation to capture greater overall market share.\r\n </P>\r\n <P>*Insert Video Here*</P>\r\n <H1>Application</H1>\r\n <P>\r\n Many frameworks have been created in order to assist Strategists in assessing how they are\r\n currently differentiating and how they can differentiate more. Some examples include the\r\n Strategy Canvas and the Buyer Utility Map (see Frameworks below for a more comprehensive\r\n list).\r\n </P>\r\n <H1>History</H1>\r\n <P>\r\n Although not given its official name until the modern era, Differentiation Strategy has been\r\n around since the creation of business and competition. Throughout history, businesses have\r\n tried to differentiate themselves from the competition by either having the best product\r\n quality or best customer interaction. One of the earliest records of a customer evaluating\r\n these factors of differentiation was filed to EA Nasir around 1750 B.C. In this cuneiform\r\n tablet, the customer complained about his rudeness during the sale of substandard copper.\r\n This goes to show that even in ancient times, customers looked for the best quality product\r\n or the best customer interaction and differentiation matters.\r\n </P>\r\n <H1>Sources</H1>\r\n <div>\r\n <P>\r\n MacMillan, I., & McGrath, R. (1997, July). “Discovering the New Points of\r\n Differentiation”. Harvard Business Review.\r\n https://hbr.org/1997/07/discovering-new-points-of-differentiation\r\n </P>\r\n <P>\r\n Dyer, J., Godfrey, P., Jensen, R., Bryce, D. (2024, February). “Strategic Management:\r\n Concepts and Cases, 5th Edition”, Chapter 5, pp 81-97. Wiley.\r\n https://www.wiley.com/en-us/Strategic+Management%3A+Concepts+and+Cases%2C+5th+Edition-p-9781394161881\r\n </P>\r\n <P>\r\n Institute for Manufacturing. (2016). “Porter's Generic Competitive Strategies (ways of\r\n competing)”. University of Cambridge.\r\n https://www.ifm.eng.cam.ac.uk/research/dstools/porters-generic-competitive-strategies/\r\n </P>\r\n <P>Porter, M. (1985). \"Competitive Advantage\", Ch. 1, pp 11-15. The Free Press.</P>\r\n <P>\r\n ACSI Staff. (2024, March). “Fast Food Restaurants”. American Customer Satisfaction Index.\r\n https://theacsi.org/industries/restaurant/fast-food-restaurants/\r\n </P>\r\n <P>Chick-Fil-A financial statements: Chick-Fil-A-2022.pdf</P>\r\n <P>\r\n Chick-fil-A, Inc. (2023, March). “Chick-fil-A 2022 Franchise Disclosure Document”.\r\n Franchise Times. https://www.franchisetimes.com/app/Chick-Fil-A-2022.pdf\r\n </P>\r\n <P>\r\n Southwest:\r\n https://www.investopedia.com/articles/investing/061015/how-southwest-different-other-airlines.asp\r\n </P>\r\n </div>\r\n <RelatedFrameworks\r\n concepts={[\r\n Concepts.JobsToBeDoneConcept,\r\n Concepts.ConsumptionChain,\r\n Concepts.StrategyCanvas,\r\n Concepts.PortersGenericStrategies,\r\n ]}\r\n unfinishedConcepts={[\"Buyer Utility Map\"]}\r\n />\r\n <Updated date=\"2/21/25\" />\r\n </div>\r\n );\r\n}\r\n","import { Image, H1, Ol, P, Updated } from \"design_lib\";\r\n\r\nexport default function EntryModes() {\r\n return (\r\n <div>\r\n <H1>Difinition/Description</H1>\r\n <P>\r\n When businesses are considering international expansion, it is not always clear which avenue\r\n aligns with corporate objectives. Understanding the various entry modes (as well as their\r\n pros and cons) can assist business leaders as they identify which strategy is optimal for\r\n their situation.\r\n </P>\r\n <Ol>\r\n <li>\r\n <b>Exporting</b> - The process of producing a good or service in one country and selling\r\n it to another.\r\n </li>\r\n <Ol type=\"a\">\r\n <li>\r\n Ex. Apple selling iPhones directly to consumers in China through its online store and\r\n authorized retailers.\r\n </li>\r\n </Ol>\r\n <li>\r\n <b>Turnkey Operations</b> - A company builds a foreign facility while a client owns and\r\n operates it.\r\n </li>\r\n <Ol type=\"a\">\r\n <li>\r\n Ex. A construction company builds a power plant in Africa, trains local personnel, and\r\n then hands over ownership and operations to a local government agency.\r\n </li>\r\n </Ol>\r\n <li>\r\n <b>Licensing</b> - A contractual agreement granting the licensee certain rights such as\r\n producing or selling the product, displaying brand names, or using licensor’s IP.\r\n </li>\r\n <Ol type=\"a\">\r\n <li>\r\n Ex. Coca-Cola grants a bottling company in India the right to produce and sell Coke\r\n products using the Coca-Cola brand and recipe.\r\n </li>\r\n </Ol>\r\n <li>\r\n <b>Franchising</b> - Similar to licensing, but the franchiser maintains an active role in\r\n the ongoing operations.\r\n </li>\r\n <Ol type=\"a\">\r\n <li>\r\n Ex. McDonald's grants franchise rights to an entrepreneur in France, who opens and\r\n operates a McDonald's restaurant following company standards and procedures.\r\n </li>\r\n </Ol>\r\n <li>\r\n <b>Joint Ventures</b> - A new legal entity created and owned by multiple companies in\r\n different countries.\r\n </li>\r\n <Ol type=\"a\">\r\n <li>\r\n Ex. BMW partners with a Chinese automaker to establish a new car manufacturing plant in\r\n China, sharing ownership, profits, and management responsibilities.\r\n </li>\r\n </Ol>\r\n <li>\r\n <b>Wholly Owned Subsidiary</b> - A parent company sets ups a new legal entity that is\r\n legally separate but that it fully owns.\r\n </li>\r\n <Ol type=\"a\">\r\n <li>\r\n Ex. Amazon establishes a fully owned subsidiary in Germany to build its own fulfillment\r\n centers and deliver products directly to customers.\r\n </li>\r\n </Ol>\r\n </Ol>\r\n <P>\r\n By understanding these entry modes you can correctly determine the amount of control and\r\n risk you would like to undertake.\r\n </P>\r\n <Image\r\n src={require(\"lib/img/concepts/EntryModes.png\")}\r\n alt=\"chart comparing and contrasting different entry modes\"\r\n />\r\n <Updated date=\"2/21/25\" />\r\n </div>\r\n );\r\n}\r\n","import { Image, H1, Ol, P, Updated } from \"design_lib\";\r\nimport ExperienceCurveImg from \"lib/img/concepts/ExperienceCurve.png\";\r\n\r\nexport default function ExperienceCurve() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n <P>\r\n What should we expect from our costs over time? What should we expect our competitors to\r\n experience with their costs going forward? The experience curve can give us insight into a\r\n firm''s costs, both within a firm and looking at primary competitors. This is illustrated by\r\n identifying a relationship between a firm''s cumulative experience and its costs. The\r\n experience curve is NOT to be mistaken for a scale curve, it has nothing to do\r\n </P>\r\n <P>In order to construct an experience curve, a firm must have:</P>\r\n <Ol>\r\n <li>A clearly defined unit of experience</li>\r\n <li>Cumulative annual unit production volume over time</li>\r\n <li>Constant currency unit costs per unit over that same time period</li>\r\n </Ol>\r\n <P>\r\n This information is then plotted such that experience is plotted on the x-axis and cost is\r\n plotted on the y-axis. The result will be a downward-sloping curve that demonstrates the\r\n relationship between your cumulative experience and costs. The characteristic relationship\r\n is that costs decline 20-30% with each doubling of unit volume.\r\n </P>\r\n <P>\r\n This tool will allow a firm to more effectively and accurately predict their future costs,\r\n as well as predict the actions of their competitors due to constantly decreasing costs.\r\n </P>\r\n <P>\r\n Example - The Ford Model T was one of the first products that was scaled production to a\r\n level that reflects this curve in a similar way to today''s major manufacturers. The\r\n application of the assembly line allowed them to build quickly and rapidly scale their\r\n production. Ford was able to recognize a 75% cost reduction from 1920 to 1931 in the\r\n production of the Model T.\r\n </P>\r\n <Image src={ExperienceCurveImg} alt=\"\" />\r\n <P>\r\n An experience curve is a downward-sloping curve reflecting the relationship between\r\n accumulated experience in an industry and the long-term decline in costs and prices. This\r\n curve mathematically expresses the intuitive idea that the more a task is repeated, the\r\n lower its cost should be. It holds predictive power for managers who apply it correctly,\r\n allowing them to anticipate future costs, compare cost trends with competitors, and make\r\n informed decisions based on the stability of prices in their industry.\r\n </P>\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { H1, Ol, P, Updated } from \"design_lib\";\r\n\r\nexport default function IndirectAssault() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n How do companies enter markets where existing players possess key advantages in recognition,\r\n distribution and loyalty? Entrants can succeed using an indirect assault in which they do\r\n not confront incumbents head on. Instead they may perform one or a combination of the\r\n following actions to break into a market:\r\n </P>\r\n <Ol>\r\n <li>Find Weaknesses</li>\r\n <li>Leverage Assets</li>\r\n <li>Build a Niche</li>\r\n <li>Expand Gradually</li>\r\n </Ol>\r\n <P>\r\n Red Bull successfully entered the well-guarded soft drink industry by targeting a specific\r\n niche of energy beverages. It expanded it's offering by targeting 20 year olds in nightclubs\r\n and bars. Now RedBull is found in refrigerated cabinets next to industry icons like\r\n Coca-cola and Pepsi.\r\n </P>\r\n <H1>History</H1>\r\n <P>\r\n \"Indirect Assault\" despite not being a universally accepted theory, was coined in the\r\n Harvard Business Review Article \"How to Crack Well-Guarded Markets\" by Jeffrey Dyer and\r\n David Bryce in May 2007. Instead it's considered a specific strategic concept for target\r\n well-established markets. However, the idea of indirect assault builds upon various theories\r\n in strategic management such as the Market Penetration theory by Michael Porter wherein he\r\n postulating gaining market share by exploiting weaknesses and targeting niches. Another\r\n similar theory is the Blue Ocean Strategy by W. Chan Kim & Renee Mauborne focusing on\r\n creating uncontested space. Therefore the indirect assault draws upon many other theories to\r\n craft a compelling case for entering new markets.\r\n </P>\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Concepts } from \"lib/data/Concepts\";\r\nimport { Image, RelatedFrameworks, H1, H2, Ol, P, Updated } from \"design_lib\";\r\n\r\nexport default function InternationalStrategy() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n Selecting the appropriate international strategy can be challenging. It must align with your\r\n company objectives and unique industry pressures. By comparing forces of globalization and\r\n forces of localization, three main international strategies have emerged, suitable for any\r\n expansionist company.\r\n </P>\r\n <Ol>\r\n <li>\r\n Multidomestic Strategy - A strategy whereby global firms respond to differentiated needs\r\n and preferences in each local market where they operate.\r\n </li>\r\n\r\n <li>\r\n Meganational Strategy - A strategy wherein global firms focus on increasing profitable\r\n growth by reaping cost reductions from economies of scale and other advantages of global\r\n integration.\r\n </li>\r\n\r\n <li>\r\n Transnational Strategy - A strategy where by global firms take a hybrid approach combining\r\n multidomestic and meganational approaches by simultaneously offering benefits of global\r\n and local advantages.\r\n </li>\r\n </Ol>\r\n <P>\r\n By learning about each strategy, business owners can identify which strategy can be the best\r\n suited to their business.\r\n </P>\r\n\r\n <Image\r\n src={require(\"lib/img/concepts/International_Strategy.png\")}\r\n alt=\"infographic describing the three international strategies\"\r\n />\r\n <H1>Examples</H1>\r\n <H2>Multidomestic - Nestle</H2>\r\n <P>\r\n When Nestle expanding to China, it discovered that its globally branded Kitkat bar wasn't\r\n quite making the impact that it had on other countries. As a result, the Chinese nestle team\r\n designed produced and marketed a new type of chocolate wafer bar at a fraction of the cost\r\n of Kitkat. Today, it is the best selling candy bar in China.\r\n </P>\r\n <H2>Meganational - ECCO</H2>\r\n <P>\r\n The Danish shoe company sells the same shoes all over the world. It applies a similar market\r\n strategy and has focused manufacturing in a few key countries with competitive advantages in\r\n shoe production.\r\n </P>\r\n <H2>Transnational - GE</H2>\r\n <P>\r\n GE is known for having globally standardized procedures but have begun to encourage foreign\r\n subsidiaries to develop and share innovative new ideas for the rest of the global\r\n organization. This has enabled multiple products to be developed for local markets such as\r\n compact and inexpensive heart monitoring devices.\r\n </P>\r\n <H1>History</H1>\r\n <P>\r\n Two strategy professors at Brigham Young University, Shad Morris and Jim Oldroyd sought to\r\n standardize the modes of international strategy. In their published book on International\r\n business, they outlined the above model which differentiated the various expansion modes.\r\n This model has helped illustrate and grant understanding to the field of international\r\n strategy.\r\n </P>\r\n\r\n <RelatedFrameworks\r\n concepts={[Concepts.Cage, Concepts.BlueOcean, Concepts.EntryModes]}\r\n unfinishedConcepts={[\"PEST Framework\"]}\r\n />\r\n <Updated date=\"2/21/2025\" />\r\n </div>\r\n );\r\n}\r\n","import { Concepts } from \"lib/data/Concepts\";\r\nimport { Image, RelatedFrameworks, H1, H2, Ol, P, Ul, Updated } from \"design_lib\";\r\n\r\nexport default function JobsToBeDoneConcept() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n Jobs to be Done is a form of Differentiation Strategy through products. The term “jobs to be\r\n done” refers to the distinct ways a product can differentiate itself:\r\n </P>\r\n <Ol>\r\n <li>Does a “better job” </li>\r\n <li>Does “more jobs” </li>\r\n <li>Does a “unique job” </li>\r\n </Ol>\r\n <P>\r\n The purpose of these jobs to be done is to tailor your differentiation strategy to be more\r\n specific to the target audience. Jobs to be Done Strategy can be tailored based on the\r\n social, functional, or emotional aspects of a specific job that the product solves.\r\n </P>\r\n <P>\r\n Example- Scrub Daddy- Scrub Daddy sponges combined soft sponges and hard sponges for tougher\r\n greases and grimes into one sponge. Due to this product doing more jobs, this product took\r\n off and became the most successful company in Shark Tank history.\r\n </P>\r\n\r\n <Image src={require(\"lib/img/concepts/Jobs_To_Be_Done_Types.png\")} alt=\"jobs to be done\" />\r\n <H1>Examples</H1>\r\n <H2>Doing a \"Better Job\"</H2>\r\n <Ul>\r\n <li>\r\n Ferrari- Ferrari is known for their sports cars because Ferrari creates cars that win\r\n competitive races. Therefore, they deliver a higher-quality car than other companies do.\r\n </li>\r\n <li>\r\n Lego- Lego is known for its products that are specific to franchises and create great\r\n experiences in comparison to other “building” children's products.\r\n </li>\r\n <li>\r\n Coca-Cola- Coca-Cola is known for its high-quality taste in comparison to other soda\r\n brands that cannot be matched.\r\n </li>\r\n <li>\r\n Razer- Razer is known for its high-quality products for gaming. From RGB keyboards, mouses\r\n with extra buttons, to premium headsets, Razer has much to offer in its product line.\r\n </li>\r\n </Ul>\r\n <H2>Does \"more jobs\"</H2>\r\n <Ul>\r\n <li>\r\n Swiss Army Pocket Knife- Rather than just being able to do the job of one knife, the Swiss\r\n army pocketknife allows the user to have multiple knives in one.\r\n </li>\r\n <li>\r\n Kitchen Aid- through add-ons the Kitchen Aid product can perform many tasks to suit all\r\n baking and some cooking needs.\r\n </li>\r\n <li>\r\n Apple- when the iPhone was launched in 2007, it was innovative because it took the iPod\r\n technology with touchscreen capabilities and put it into a mobile phone. It could play\r\n music, make phone calls, text, and run applications. It was an all-in-one product.\r\n </li>\r\n <li>\r\n Google- Google functions not just as a search engine but also integrates AI capabilities,\r\n provides office software, and facilitates email communication via Gmail.\r\n </li>\r\n </Ul>\r\n <H2>Does \"unique jobs\"</H2>\r\n <Ul>\r\n <li>\r\n Sabaton- this Swedish Metal band combines their unique playing style with lyrics about\r\n military history that cannot be found anywhere else.\r\n </li>\r\n <li>\r\n McDonalds- In 1948, the McDonalds brothers offered a unique service at their restaurant\r\n which was a quick way to receive food that no other restaurant offered at the time.\r\n </li>\r\n <li>\r\n Amazon- Amazon revolutionized the e-commerce industry through its quick and easy site\r\n navigation and quick shipping. It started out as an e-commerce site specializing in books,\r\n but quickly transformed into a super site with many different products from this unique\r\n job that they performed.\r\n </li>\r\n </Ul>\r\n <H1>History</H1>\r\n\r\n <P>\r\n Like unto Differentiation Strategy, the three Jobs to be Done have been present since the\r\n creation of the concept of business. However, it was not given its official name until the\r\n modern century. The first reference of Jobs to be done came in 2005 through a Harvard\r\n Business Review Article titled: “Marketing Malpractice: The Cause and the Cure”. In this\r\n article they built up and named the strategy of Jobs to be Done. Since then, many people\r\n have written and taught about the Jobs to be Done Strategy.\r\n </P>\r\n\r\n <H1>Sources</H1>\r\n <Ul>\r\n <li>\r\n Strategic Management: Concepts and Cases:\r\n <a href=\"https://www.wiley.com/en-us/Strategic+Management%3A+Concepts+and+Cases%2C+5th+Edition-p-9781394161881\">\r\n https://www.wiley.com/en-us/Strategic+Management%3A+Concepts+and+Cases%2C+5th+Edition-p-9781394161881\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"https://fourweekmba.com/mcdonalds-speedee-system/\">\r\n https://fourweekmba.com/mcdonalds-speedee-system/\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"https://www.seamgen.com/blog/iphone-history-original-iphone-to-current-iphone#:~:text=Apple's%20first%20iPhone%20was%20announced,it%20was%20a%20revolutionary%20device\">\r\n https://www.seamgen.com/blog/iphone-history-original-iphone-to-current-iphone#:~:text=Apple's%20first%20iPhone%20was%20announced,it%20was%20a%20revolutionary%20device\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"https://hbr.org/2005/12/marketing-malpractice-the-cause-and-the-cure\">\r\n https://hbr.org/2005/12/marketing-malpractice-the-cause-and-the-cure\r\n </a>\r\n </li>\r\n </Ul>\r\n\r\n <RelatedFrameworks\r\n concepts={[Concepts.PortersGenericStrategies]}\r\n unfinishedConcepts={[\"Differentiation Strategy\"]}\r\n />\r\n <Updated date=\"2/21/25\" />\r\n </div>\r\n );\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport Tools from \"lib/data/Tools\";\r\n\r\nimport PortersFiveForcesImage from \"lib/img/concepts/Porter's_Five_Forces.png\";\r\nimport { Image, H1, H2, P, Updated } from \"design_lib\";\r\n\r\nexport default function PortersFiveForces() {\r\n return (\r\n <div>\r\n <div className=\"d-flex justify-content-center\">\r\n <Link to={Tools.PortersFiveForcesCalculator.url}>\r\n <button className=\"btn btn-primary mb-3 mx-auto\">\r\n Go to Porter's Five Forces Calculator Tool\r\n </button>\r\n </Link>\r\n </div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n Many business leaders struggle to objectively analyze their industries. Too often, they\r\n become obsessed with understanding competitors and fail to recognize alternate (and\r\n sometimes more destructive) threats. Porter's Five Forces is the seminal model to\r\n understanding the underlying factors of any industry.\r\n </P>\r\n\r\n <P>\r\n As an example, Southwest Airlines - a global low-cost carrier - used the model to develop a\r\n low-cost carrier strategy. After recognizing the forces at work, Southwest created\r\n differentiation by offering low-cost fares to passengers.\r\n </P>\r\n\r\n <Image src={PortersFiveForcesImage} alt=\"Porter's Five Forces\" />\r\n <H1>Examples</H1>\r\n <H2>Amazon</H2>\r\n <P>\r\n The international product supplier, used the Five Forces model to expand from books into\r\n related markets such as books, music electronics etc. They recognized the cost efficiencies\r\n driven by an understanding of supplier and buyer power.\r\n </P>\r\n <H2>Apple</H2>\r\n <P>\r\n A modern technology innovator, engaged the model to create a successful product strategy.\r\n They focused their brand on consumer-friendly electronics to develop a differentiated\r\n product line that enjoys a wide appeal.\r\n </P>\r\n\r\n <H1>History</H1>\r\n <P>\r\n The first mention of competitive forces was in a 1979 Harvard Business Review article titled\r\n “How Competitive Forces Shape Strategy,” written by Michael E. Porter. It was composed after\r\n the observation that contemporary business often focused much of their strategic efforts on\r\n competitors while ignoring underlying forces in the wider business environment. Post\r\n publication, the article was widely circulated, introducing the idea to vast audience. To\r\n further hone his points of strategic doctrine, Professor Porter published his seminal\r\n treatise, Competitive Strategy in 1980. In this book, he detailed how to accurately use the\r\n Five Forces model to analyze the competitiveness of industries.\r\n </P>\r\n <P>\r\n Throughout the 1980s and 1990s, businesses began to compete around the world. With this rise\r\n of global business competition, the Five Forces model became increasingly relevant. It was\r\n adopted, used and scrutinized to assist business leaders achieve their ends. Finally, model\r\n was immortalized through it's vast dissemination in MBA programs and business schools. These\r\n institutions became viewed as highly valuable from the increased competition of global\r\n business of 80s and 90s. Thus, the Five Forces model went around the globe and is still\r\n taught today as a simple and effective strategic model.\r\n </P>\r\n\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import PortersGenericStrategiesImg from \"lib/img/concepts/Differentiation_Porters_Generic_Strategies.png\";\nimport Wedges from \"../components/Wedge\";\nimport { Concepts } from \"lib/data/Concepts\";\nimport { Image, RelatedFrameworks, H1, H2, Ol, P, Ul, Updated } from \"design_lib\";\nexport default function PortersGenericStrategies() {\n return (\n <div>\n <P>\n Cost | Differentiation | Features | Convenience | Brand | Quality | Product Quality |\n Customer Service | Jobs to be Done | Consumption Chain | Strategy Canvas | Buyer Utility Map\n </P>\n <H1>Definition/Description</H1>\n\n <P>\n Michael Porter’s Generic Strategies matrix is one of the foundational building blocks of\n Strategy. It has four quadrants: Cost Leadership, Focused Cost, Differentiation, and Focused\n Differentiation. The left side of the matrix focuses on lowering costs while the right side\n focuses on differentiating:\n </P>\n\n <Image src={PortersGenericStrategiesImg} alt=\"\" />\n <P>\n These generic strategies categorize firms on how they provide value to customers. Cost\n increases the value proposition by lowering costs while Differentiation increases the value\n proposition by raising the customer’s willingness to pay, as shown through the value stick\n below:\n </P>\n <div className=\"d-flex flex-wrap gap-3 justify-content-between\">\n <Wedges />\n </div>\n <P>\n More successful companies are positioned in just one of these quadrants. Companies that span\n multiple quadrants are often mediocre in their efforts to be too many things and add less\n value in the customers' eyes.\n </P>\n <H1>Cost</H1>\n <P>\n Having a cost advantage means that a company’s costs are lower than their competition. While\n this does mean that often companies will lower prices when they have a cost advantage, a\n cost advantage does not come from price. A cost advantage comes from lower costs. Within\n Porter’s Generic Strategies Matrix, Cost has two categories: Cost Leadership and Focused\n Cost. Cost Leadership is to have the lowest costs while serving multiple segments in an\n industry. Focused Cost is to have lower costs within a segment of the market. There are many\n ways to obtain a cost advantage. Some of the most important drivers of cost advantage are:\n </P>\n <Ol>\n <li>Economies of Scope</li>\n <li>Economies of Scale</li>\n <li>Learning/Experience Curves</li>\n <li>Different Business Model/Value Chain</li>\n <li>Lowering Input Costs</li>\n </Ol>\n <P>\n The best Cost Advantages use a combination of these tools. Refer to the Cost article for\n more information.\n </P>\n <P>\n *Economies of Scope, Economies of Scale, Learning/Experience Curves, and Cost are\n hyperlinked to their respective articles and Different Business Model/Value Chain is\n hyperlinked to the Innovation Strategies article*\n </P>\n <H1>Differentiation</H1>\n\n <P>\n To differentiate means to do something different from the competition which creates value\n for customers and raises their willingness to pay. Within the Generic Strategies matrix,\n Differentiation has two categories: Differentiation and Focused Differentiation.\n Differentiation is to differentiate across multiple segments of the industry. Focused\n Differentiation creates unique value for a specific aspect of the market. There are two\n sub-categories of the tool of Differentiation:\n </P>\n <Ol>\n <li>Product</li>\n <li>Customer Interaction</li>\n </Ol>\n <H1>Cost Examples</H1>\n <H2>Cost Leadership</H2>\n <P>\n Walmart – Walmart focuses on low costs. It is able to keep its costs low due to intense\n negotiations with suppliers, efficient distribution and no-frills stores. Due to lower\n costs, Walmart can offer lower prices on a wide variety of goods and gain Cost Leadership.\n </P>\n <H2>Focused Cost</H2>\n <P>\n RyanAir- RyanAir is known for its low costs for the price sensitive customer segment of the\n market. RyanAir outsources customer service and utilizes only one type of plane to lower\n maintenance and employee training costs. They also restrict the maximum hours an employee\n can work to avoid paying overtime and utilize point-to-point flights which allows them to\n have quick turnaround times and maximize the amount of people they can service per day.\n These cost cutting procedures come together to help them have lower fares than most\n airlines. With lower costs, they can offer lower fares that attract price sensitive\n customers.\n </P>\n <H1>Differentiation Examples</H1>\n <H2>Differentiation</H2>\n <P>\n Tesla- Tesla differentiates itself in the automotive industry by combining cutting-edge\n electric technology with high performance. Their focus on sustainability, along with\n features like Autopilot and over-the-air software updates, offers a unique selling point\n that traditional car manufacturers do not offer. They are classified as Differentiation\n because their EV cars are marketed to everyone in the EV market.\n </P>\n <H2>Focused Differentiation</H2>\n <P>\n Ferrari- Ferrari focuses on a niche part of the automotive industry; the rich people who\n want fast and luxurious cars. They are able to differentiate themselves through their strong\n brand image that comes from owning a Ferrari. For this reason, they have dominated the\n sports car market.\n </P>\n <RelatedFrameworks\n concepts={[\n Concepts.ExperienceCurve,\n Concepts.JobsToBeDoneConcept,\n Concepts.ConsumptionChain,\n Concepts.StrategyCanvas,\n ]}\n unfinishedConcepts={[\n \"Innovation Strategies\",\n \"Economies of Scope\",\n \"Economies of Scale\",\n \"Buyer Utility Map\",\n ]}\n />\n <H2>History</H2>\n\n <P>\n Porter’s Generic Strategies was initially conceptualized by Harvard professor Michael Porter\n in his 1985 article “Competitive Advantage.” While these principles have been around for a\n long time, this article was the first time these principles had been articulated in a\n positioning matrix. This article, along with other ones released around this time, helped\n start the study and practice of Strategic Management in business.\n </P>\n\n <H1>Sources</H1>\n <Ul>\n <li>\n MacMillan, I., & McGrath, R. (1997, July). “Discovering the New Points of\n Differentiation”. Harvard Business Review.\n https://hbr.org/1997/07/discovering-new-points-of-differentiation\n </li>\n <li>\n Dyer, J., Godfrey, P., Jensen, R., Bryce, D. (2024, February). “Strategic Management:\n Concepts and Cases, 5th Edition”, Chapter 5, pp 81-97. Wiley.\n https://www.wiley.com/en-us/Strategic+Management%3A+Concepts+and+Cases%2C+5th+Edition-p-9781394161881\n </li>\n <li>\n Institute for Manufacturing. (2016). “Porter's Generic Competitive Strategies (ways of\n competing)”. University of Cambridge.\n https://www.ifm.eng.cam.ac.uk/research/dstools/porters-generic-competitive-strategies/\n </li>\n <li>Porter, M. (1985). \"Competitive Advantage\", Ch. 1, pp 11-15. The Free Press.</li>\n\n <li>Read The World's Oldest Known Customer Complaint To Copper Dealer Ea-nasir</li>\n <li>2024 Walmart Investor Report, Pages 8-9,11</li>\n <li>Ryanair-2024-Annual-Report.pdf, Pages 88-89</li>\n </Ul>\n\n <Updated date=\"2/21/25\" />\n </div>\n );\n}\n","import { Image, H1, H2, Ol, P, Updated } from \"design_lib\";\r\nimport ScaleCurveImg from \"lib/img/concepts/ScaleCurve.png\";\r\n\r\nexport default function ScaleCurve() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n While similar to an experience curve, a scale curve does not take into account the\r\n cumulative production of a firm and instead only takes into account a firm’s units produced\r\n in a given period of time. The scale curve does not indicate how our costs change over time,\r\n rather it measures how our costs change with an increase or decrease of production capacity.\r\n The scale curve demonstrates that as a firm produces more of one good, its price per unit\r\n decrease. When a firm decreases its cost per unit by increasing its volume of production,\r\n this is referred to as achieving economies of scale. It is important to know that it is\r\n possible for firms to experience diseconomies of scale, this is when an increase in\r\n production also increases the cost per unit produced.\r\n </P>\r\n <P>To build a scale curve, a firm needs:</P>\r\n <Ol>\r\n <li>Output over a given period of time (often viewed annually)</li>\r\n <li>Cost per unit produced (total costs / units produced)</li>\r\n </Ol>\r\n <P>\r\n The total output is plotted on the x-axis while the cost per unit is plotted on the y-axis.\r\n The scale curve also demonstrates that it is likely for cost per unit to increase if a firm\r\n produces above its efficient capacity.\r\n </P>\r\n <P>\r\n The scale curve answers the question of: Should we increase or decrease production? How do\r\n we lower our costs? What can a firm do to become more efficient?\r\n </P>\r\n\r\n <H1>Examples</H1>\r\n <H2>Utilities</H2>\r\n <P>\r\n Utilities in the United States are almost entirely made up of government-regulated\r\n monopolies. This is due to the economies of scale experienced in industries like energy\r\n production. When generating electricity, the cost per kilowatt (unit of energy) is\r\n dramatically decreased as the production of electricity is scaled upward. Therefore, the\r\n government allows these monopolies in order to drive the cost of electricity, water, and\r\n waste downwards\r\n </P>\r\n <Image src={ScaleCurveImg} alt=\"\" />\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Updated, H1, H2, P } from \"design_lib\";\r\n\r\nexport default function StrategyCanvas() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n <P>\r\n The strategy canvas serves as a comprehensive framework for analyzing and comparing\r\n competitive factors within an industry. It answers the question of “Where is our product\r\n winning and where is it losing?” The strategy canvas emphasizes strategic positioning and\r\n differentiation.\r\n </P>\r\n <P>\r\n To construct a strategy canvas, a firm must consider crucial industry factors that influence\r\n competition. These could include product features, service levels, pricing, and other key\r\n dimensions. Consider identifying these dimensions through the use of the “Jobs to be done”\r\n framework.\r\n </P>\r\n <P>\r\n The canvas is then created by plotting the company's performance on these factors, providing\r\n a visual representation of its strategic profile. When plotting these factors, your x-axis\r\n will be each factor, or job done by your product. Then, your y-axis will be defined by the\r\n level of performance your product has for each individual factor. This is often done on a\r\n 1-10 scale and is best derived from survey data in order to determine customer perception of\r\n your product. However firms can also rate themselves, this should only be done as a “quick\r\n and dirty test” to consider where your firm is differentiated from competitors, not as a\r\n measure of customer perceptions.\r\n </P>\r\n <P>\r\n The canvas allows businesses to map out their current competitive landscape and identify\r\n areas where they can stand out from the competition. By visually comparing different\r\n strategic profiles, companies can spot opportunities to innovate, create unique value\r\n propositions, and potentially redefine industry boundaries. By regularly revisiting and\r\n updating the canvas, companies can stay ahead of industry shifts, respond to changing\r\n customer preferences, and continuously refine their value propositions. The strategy canvas\r\n is an invaluable resource for businesses looking to understand, visualize, and strategically\r\n position themselves in the competitive landscape.\r\n </P>\r\n <H1>Examples</H1>\r\n <H2>Smart Phones</H2>\r\n <P>\r\n Consider the smartphone industry, where companies compete on factors like design, features,\r\n ecosystem integration, and pricing. Apple, with its iPhone, strategically positioned itself\r\n with a focus on sleek design, user-friendly interfaces, and a tightly integrated ecosystem.\r\n On the strategy canvas, Apple's profile would emphasize these factors, setting it apart from\r\n competitors who might prioritize different dimensions.\r\n </P>\r\n\r\n <H2>Auto Market</H2>\r\n <P>\r\n A strategy canvas can also be used to identify a product's most direct competition within a\r\n market. This is demonstrated within the automobile market. Comparing vehicles such as a GMC\r\n Sierra, a large, heavy-duty truck, and a Kia Rio, a sub-compact sedan, would produce a\r\n strategy canvas with massive disparities on many factors. The jobs to be done by each of\r\n these vehicles are vastly different, and as such, their performance in many factors will be\r\n dramatically different. Now consider a strategy canvas that consists of a Honda Accord,\r\n Nissan Altima, and Toyota Camry. Each of these vehicles are full-size sedans of similarly\r\n positioned brands, therefore, a strategy canvas is going to show similar performance on many\r\n of the features that customers value in these vehicles. There are likely to be only a few\r\n minor disparities, effectively identifying where these sedans, targeting the same customers,\r\n are differentiating or failing to do so.\r\n </P>\r\n\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Image, H1, H2, P, Updated } from \"design_lib\";\r\nimport SunkCostImg from \"lib/img/concepts/SunkCost.png\";\r\nexport default function SunkCostFallacy() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n While assessing projects, managers tend to lend more weight to costs that have already been\r\n incurred rather than the costs to come. Not wanting past efforts go to waste, managers then\r\n allocate interminable growth of scope and cost of failing projects. This is the sunk cost\r\n fallacy, an understanding of this concept can help leaders know when to end projects.\r\n </P>\r\n <P>\r\n Example - Blackberry. Despite all societal trends moving towards smartphone technology, the\r\n phone mogul continued to invest heavily in the proprietary Blackberry technology. This\r\n disabled the company from adapting with changing customer preferences and ultimately being\r\n left behind in the cellular market.\r\n </P>\r\n\r\n <Image src={SunkCostImg} alt=\"\" />\r\n <H1>Examples</H1>\r\n <H2>\"Forward Waste\"</H2>\r\n <P>\r\n In the 1990s, science was enamored with a particle accelerator project. It was a scientific\r\n experiment using a vast array of resources with neither end nor useful application anywhere\r\n in sight. When questioned about the project, it was defended by citing all the resources\r\n expended that would now be \"wasted.\" In 1993 Congress ultimately shut down the project. The\r\n stated reason was to avoid \"forward waste.\" This perfectly exemplifies the sunk cost fallacy\r\n in that the engineers wanted to continue based on the effort and resources put into the\r\n failing project. Congress epitomizes the leader able to see past the current waste by\r\n instead focusing on the future costs and a project's ability to create sustainable value.\r\n </P>\r\n\r\n <H2>Blockbuster</H2>\r\n <P>\r\n This video rental giant famously clung to its brick-and-mortar model despite the rise of\r\n online streaming services like Netflix. Despite heavy investments in its physical stores,\r\n Blockbuster was slow to adapt, leading to its eventual downfall.\r\n </P>\r\n <H2>Kodak</H2>\r\n <P>\r\n This company dominated the film photography market for decades, investing heavily in\r\n research and development. However, when digital cameras emerged, Kodak was slow to shift its\r\n focus, clinging to its sunk costs in film technology. This ultimately led to the company's\r\n bankruptcy.\r\n </P>\r\n <H2>Yahoo</H2>\r\n <P>\r\n Once a leading internet search engine and portal, Yahoo struggled to compete with Google's\r\n innovative approach. Despite acquiring multiple companies in an attempt to catch up, Yahoo\r\n failed to adjust its core strategy and ultimately lost significant market share.\r\n </P>\r\n\r\n <H1>History</H1>\r\n <P>\r\n Although the fallacy originated in the 20th century, the idea of the sunk costs had roots\r\n long before. In the 17th century, the French philosopher Blaise Pascal observed the tendency\r\n to persist with poor investments despite their irrationality. In the 18th century, the\r\n British economist Adam Smith noted the phenomenon of \"sunk costs\" which influenced financial\r\n & economic decisions.\r\n </P>\r\n <P>\r\n Even with early underpinnings, it wasn't until 1972 that psychologists Amos Tversky and\r\n Daniel Kahneman, Nobel laureates in economics, created the foundation of the sunk-cost\r\n fallacy within publications about cognitive biases. Finally, in 1980, Richard Thaler, also a\r\n Nobel economic laureate, coined the term \"sunk-cost fallacy\" in his research of behavioral\r\n economics. This emphasized how individuals often disregard the \"sunk-costs\" ultimately\r\n leading to sub-optimal outcomes.\r\n </P>\r\n <P>\r\n Following the formalization of the concept it was widely used in research papers in the\r\n 1980s and 1990s. One main form of popularization was its inclusion in psychology books such\r\n as the famous, Thinking Fast and Slow, by Daniel Kahneman. In the 2000s, McKinsey adopted\r\n the fallacy as a framework for analyzing business decisions. Today, the framework is used\r\n widely in a variety of fields helping us understand and mitigate irrational decision-making\r\n processes.\r\n </P>\r\n\r\n <Updated date=\"2/21/2025\" />\r\n </div>\r\n );\r\n}\r\n","import ThreeHorizonsImg from \"lib/img/concepts/Three_Horizons.png\";\r\nimport { Image, H1, H2, P, Updated } from \"design_lib\";\r\n\r\nexport default function ThreeHorizons() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n Many businesses struggle to know where to invest efforts in growth. Moreover, they struggle\r\n to maintain their core businesses while pursuing innovation. The Three Horizons Model\r\n effectively explains how to correctly prioritize and pursue incremental and more radical\r\n innovation, while maintaining the core business as a corporate strategy.\r\n </P>\r\n <P>\r\n Example - McDonald's recently launched a new brand \"CosMc's\" in the Beverage Sector.\r\n However, it also wants to maintain focus on its core business of Fast Food. The three\r\n Horizons framework would be ideal to help the company balance focus of its core business\r\n against its new venture.\r\n </P>\r\n\r\n <Image src={ThreeHorizonsImg} alt=\"infographic describing the three horizons framework\" />\r\n <H1>Examples</H1>\r\n <H2>Unilever</H2>\r\n <P>\r\n Unilever, a global consumer goods company, used the framework to drive innovation across a\r\n wide brand portfolio. Horizon 1 included initiatives to enhance product formulations and\r\n packaging. Horizon 2 explored opportunities in personalized nutrition and sustainable\r\n packaging option. Horizon 3 included investments in a new business model, a possible\r\n subscription service for personal care products.\r\n </P>\r\n <H2>LEGO</H2>\r\n <P>\r\n The global toy manufacturer, engaged the model to revitalize its business and maintain its\r\n market position. Horizon 1 including strengthening their core product line by expanding the\r\n range of building sets and introducing new themes. Horizon 2 explored digital experiences\r\n including virtual and augmented reality experiences to enhance play. Finally Horizon 3\r\n included new ideas such as educational robotics and sustainable materials development.\r\n </P>\r\n <H2>Toyota</H2>\r\n <P>\r\n The multinational automaker adopted the model to drive innovation throughout the changing\r\n automotive landscape. Horizon 1 initiatives included investments in enhancing fuel\r\n efficiency and performance of existing models. Horizon 2 pursued adjacent areas such as\r\n electric and autonomous vehicle technology. Horizon 3 included new manufacturing technology\r\n to expedite construction techniques.\r\n </P>\r\n <H1>History</H1>\r\n <P>\r\n The Model was originally published in the book, The Alchemy of Growth, written in 1999. The\r\n authors included three McKinsey directors who were focused on helping companies achieve\r\n sustained growth. The model was created to combat the typical product lifecycle of decline\r\n as companies mature. This model would theoretically incentivize innovation throughout the\r\n entire corporate lifecycle.\r\n </P>\r\n <P>\r\n Over time the model has seen alterations with the main development being that the model is\r\n no longer bounded by time. Instead of relegating each horizon to certain time periods, all\r\n three can occur simultaneously. This is necessary in the modern environment when business is\r\n rapidly changing. This means that horizon three may (of necessity) occur before horizon 1.\r\n This change was publicized in 2019 in a Harvard Business Review Article by Steve Blank.\r\n </P>\r\n <P>\r\n Additionally, later articles communicated the 70/20/10 rule of prioritization. Simply\r\n stated, 70% of time and resources should be spent on the core business (Horizon 1), 20% of\r\n time and resources on emerging businesses (Horizon 2), and 10% on new businesses and\r\n technologies (Horizon 3). This rule enabled the model to be more effective as it\r\n demonstrated where to place optimal effort while operating the business for success.\r\n </P>\r\n <Updated date=\"5/1/2024\" />\r\n </div>\r\n );\r\n}\r\n","import { Image, H1, H2, Ol, P, Updated } from \"design_lib\";\r\nimport AAAImg from \"lib/img/concepts/Triple_A.png\";\r\nexport default function TripleA() {\r\n return (\r\n <div>\r\n <H1>Definition/Description</H1>\r\n\r\n <P>\r\n When considering international expansion, it is difficult to determine an effective\r\n strategy. The triple a framework provides a model to help companies navigate these complex\r\n scenarios. It is flexible model that enables corporate leaders to adapt their strategy to\r\n suit global needs. The model consists of three main strategies. An individualized\r\n combination of two or all three usually results in the most effective international\r\n expansion plan.\r\n </P>\r\n <Ol>\r\n <li>\r\n Adaptation - customizing products, services, and operations to fit the specific needs and\r\n preferences of different local markets. Ex. Changing product features, marketing messaging\r\n or pricing strategies.\r\n </li>\r\n <li>\r\n Aggregation - achieving economies of scale and scope by standardizing operations across\r\n different markets. Ex. Standardize manufacturing, distribution or marketing across\r\n countries.\r\n </li>\r\n <li>\r\n Arbitrage - exploiting differences in costs, resources, and regulations between different\r\n markets. Ex. Low-cost sourcing, tax favorable production, advantageous trade agreements.\r\n </li>\r\n </Ol>\r\n <P>\r\n This framework can be used to develop a wide range of strategies. No one strategy supersedes\r\n another and all three should be considered in the development of the expansion plan.\r\n </P>\r\n <P>\r\n Example - Starbucks. This coffee chain showcases a blend of strategies. They adapt store\r\n designs and beverage offerings to local preferences while maintaining brand consistency.\r\n They leverage aggregation for efficient supply chain management and brand recognition but\r\n engage in limited arbitrage due to their focus on quality control and premium positioning.\r\n </P>\r\n\r\n <Image src={AAAImg} alt=\"\" />\r\n <H1>Examples</H1>\r\n <H2>McDonald's</H2>\r\n <P>\r\n This fast-food giant exemplifies adaptation through its diverse menus across regions. In\r\n India, they offer McVeggie burger and Maharaja Mac, catering to vegetarian preferences.\r\n Whereas in Brazil they serve rice and beans as sides. They utilize aggregation for\r\n standardized operations and resource management, while leveraging arbitrage opportunities by\r\n sourcing ingredients from cost-effective regions.\r\n </P>\r\n <H2>Toyota</H2>\r\n <P>\r\n This automobile manufacturer balances adaptation and aggregation. They offer customized car\r\n features for specific markets while maintaining core engine and platform technologies across\r\n regions. Toyota benefits from arbitrage by strategically locating production facilities for\r\n efficient distribution and cost-effectiveness.\r\n </P>\r\n\r\n <H2>Nestle</H2>\r\n <P>\r\n This food and beverage company masters multiple approaches. They adapt products like Maggi\r\n seasoning to regional tastes while utilizing global R&D and marketing expertise. They\r\n aggregate resources and operations for production efficiency and leverage arbitrage through\r\n strategic sourcing and manufacturing locations.\r\n </P>\r\n <H2>IKEA</H2>\r\n <P>\r\n The Swedish furniture giant has mastered the art of balancing adaptation and aggregation to\r\n cater to its global audience. They offer furniture collections that cater to the living\r\n spaces and cultural preferences of different regions. For instance, in Japan, smaller\r\n furniture is offered than in the US. Despite the adaptation, Ikea standardizes components of\r\n its furniture this allows for a global cost reduction and streamlined operations.\r\n </P>\r\n <H1>History</H1>\r\n\r\n <P>\r\n The Triple A framework emerged in the 1990s, born from the need for businesses to navigate\r\n the increasingly interconnected global market. Professor Pankaj Ghemawat, a renowned\r\n business strategist, saw the limitations of existing frameworks that often prescribed a\r\n \"one-size-fits-all\" approach to globalization. He instead proposed a more nuanced and\r\n flexible framework that considered the diverse realities of international markets.\r\n </P>\r\n <P>Here's a timeline of its development:</P>\r\n <P>\r\n <b>1991:</b> Ghemawat publishes his seminal work, \"Borderless Management: Traversing the\r\n Global Labyrinth,\" where he first introduces the \"three As\" - Adaptation, Aggregation, and\r\n Arbitrage.\r\n </P>\r\n <P>\r\n <b>1998:</b> He further refines the framework in his book \"Commitment and Diffusion of\r\n Innovations in Global Markets,\" providing deeper insights into each strategy and its\r\n applications.\r\n </P>\r\n <P>\r\n <b>2003:</b> The framework gains wider recognition among scholars and practitioners as\r\n globalization intensifies. Ghemawat continues to refine and expand upon it in subsequent\r\n publications and lectures.\r\n </P>\r\n <P>\r\n <b>2010s:</b> The framework becomes a staple in international business curricula and is\r\n adopted by various companies to guide their global expansion strategies.\r\n </P>\r\n <P>\r\n <b>Present day:</b> The Triple A framework remains relevant and widely used. Its flexibility\r\n and adaptability allow companies to tailor their global approach based on specific industry\r\n dynamics, market demands, and their own resources and goals.\r\n </P>\r\n\r\n <P>\r\n It's important to note that the framework is not static. Ghemawat and other scholars\r\n continue to analyze and evolve it in response to the ever-changing world of international\r\n business. Additionally, newer frameworks have emerged and complement the Triple A approach,\r\n offering broader perspectives for complex global strategies.\r\n </P>\r\n <Updated date=\"2/21/2025\" />\r\n </div>\r\n );\r\n}\r\n","import { createContext, useContext, useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport { defaultFocus, TFocus } from \"types/JsonType\";\r\nimport constants from \"Constants\";\r\nimport SidebarPage from \"components/templates/SidebarPage\";\r\n\r\nimport MasterSidebar from \"components/navigation/MasterSidebar\";\r\nimport { Link } from \"react-router-dom\";\r\nimport BreadcrumbsAndArrows from \"components/navigation/BreadcrumbsAndArrows\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport useElementSize from \"hooks/useElementSize\";\r\nimport Error from \"components/templates/Error\";\r\n\r\ntype TFocusContext = {\r\n focus: TFocus;\r\n};\r\n\r\nconst FocusContext = createContext<TFocusContext>({\r\n focus: defaultFocus,\r\n});\r\n\r\nfunction Title() {\r\n const { focus } = useContext(FocusContext);\r\n return (\r\n <div className=\"text-center w-100 my-4\">\r\n <div className=\"display-4\">\r\n <span className=\"text-grey-red display-2\"> {focus.letter}</span>\r\n {focus.name.slice(1)}\r\n </div>\r\n <div className=\"lead fs-5\">{focus.question}</div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction FocusIntro() {\r\n const { focus } = useContext(FocusContext);\r\n\r\n const [ImportedComponent, setImportedComponent] = useState(null) as any;\r\n\r\n useEffect(() => {\r\n async function ImportComponents(filePath: string) {\r\n setImportedComponent(null);\r\n await import(`${filePath}`).then((module) => {\r\n const AnotherComponent = module.default;\r\n setImportedComponent(<AnotherComponent />);\r\n });\r\n\r\n // import all adjacent focus components. This dramatically improves the load time of the pages.\r\n Object.values(Focuses).forEach((page) => {\r\n import(`${page.filePath}`);\r\n });\r\n }\r\n\r\n ImportComponents(focus.filePath);\r\n }, [focus.filePath]);\r\n\r\n return (\r\n <div>\r\n <Title />\r\n <div className=\"w-100 d-flex\">\r\n <div className=\"mx-auto w-p\">\r\n {ImportedComponent}\r\n <div className=\"mt-4\">\r\n <h5>Pathways:</h5>\r\n <ul>\r\n {Object.values(Pathways).map(function (pathway) {\r\n if (pathway.focus !== focus.id) return null;\r\n return (\r\n <li key={pathway.id}>\r\n <Link to={pathway.url} className=\"no-underline underline-on-hover text-body\">\r\n <b>{pathway.name}</b> - {pathway.question}\r\n </Link>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction PathwayGraphic() {\r\n const { focus } = useContext(FocusContext);\r\n const FocusPathways = Object.values(Pathways).filter((pathway) => pathway.focus === focus.id);\r\n const [graphicContainer, { width }] = useElementSize();\r\n const elementSmall = width < 750;\r\n return (\r\n <div className=\"w-100 d-flex\">\r\n <div className=\"mx-auto bg-tan-3 rounded mb-5 px-4 py-3\" ref={graphicContainer}>\r\n {FocusPathways.map((pathway, i) => {\r\n const isEven = i % 2 === 0;\r\n\r\n const summary = (\r\n <div className={elementSmall ? \"col-12\" : \"col-8\"}>\r\n <div>{pathway.summary} </div>\r\n </div>\r\n );\r\n const img = (\r\n <div className={elementSmall ? \"col-12\" : \"col-4\"}>\r\n <Link to={pathway.url} className=\"text-body no-underline \">\r\n <img src={pathway.imgSrc} alt=\"\" className=\"w-100 shadow-on-hover\" />\r\n </Link>\r\n </div>\r\n );\r\n return (\r\n <div key={pathway.id} className=\"container \">\r\n <div className=\"d-flex justify-content-center\">\r\n <div className=\"text-center mb-3\">\r\n <div className=\"fs-5 fw-bold\">{pathway.name}</div>\r\n <hr className=\"my-0\" />\r\n <div className=\"fs-6\">{pathway.question}</div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n {isEven ? (\r\n <>\r\n {img}\r\n {summary}\r\n </>\r\n ) : (\r\n <>\r\n {summary}\r\n {img}\r\n </>\r\n )}\r\n <div className=\"d-flex justify-content-center mt-3\">\r\n {i !== FocusPathways.length - 1 && (\r\n <img\r\n src={require(\"lib/img/pathwaysArrow.svg\").default}\r\n alt=\"\"\r\n className=\"w-70 \"\r\n style={{\r\n transform: isEven ? \"\" : \"scaleX(-1)\",\r\n filter: constants.colors.tan2CssFilter,\r\n }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\nexport default function FocusRoot() {\r\n const focusId = useParams().focusId;\r\n if (!focusId) return <Error message={\"404. Page not found\"} />;\r\n const focus = Focuses[focusId];\r\n if (!focus) return <Error message={\"404. Page not found\"} />;\r\n\r\n SetDocumentTitle(focus.name);\r\n\r\n return (\r\n <FocusContext.Provider value={{ focus }}>\r\n <SidebarPage.Page>\r\n <SidebarPage.Sidebar>\r\n <MasterSidebar />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n <BreadcrumbsAndArrows focus={focus} />\r\n <div className=\"d-flex justify-content-center mb-5 mx- mx-md-4\">\r\n <div className=\"w-100\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <FocusIntro />\r\n <PathwayGraphic />\r\n </div>\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n </FocusContext.Provider>\r\n );\r\n}\r\n","import { useNavigate } from \"react-router-dom\";\r\n\r\nexport default function CapabilitiesMap() {\r\n const navigate = useNavigate();\r\n const routes: { [key: string]: string } = {\r\n ExistingRAndCPathway: \"/user/pathway/ExistingRAndCPathway\",\r\n AnalyzeFirmActivitiesPathway: \"/user/pathway/AnalyzeFirmActivitiesPathway\",\r\n ImplementChangesPathway: \"/user/pathway/ImplementChangesPathway\",\r\n };\r\n\r\n function ClickHandler(id: string) {\r\n return function () {\r\n navigate(routes[id] ?? \"\");\r\n };\r\n }\r\n\r\n return (\r\n <svg\r\n width=\"2346\"\r\n height=\"1756\"\r\n viewBox=\"0 0 2346 1770\"\r\n fill=\"none\"\r\n className=\"w-100 h-100\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <g id=\"Arrows\">\r\n <path\r\n id=\"Vector 1\"\r\n d=\"M137.232 877.268C138.209 878.244 139.791 878.244 140.768 877.268L156.678 861.358C157.654 860.382 157.654 858.799 156.678 857.822C155.701 856.846 154.118 856.846 153.142 857.822L139 871.964L124.858 857.822C123.882 856.846 122.299 856.846 121.322 857.822C120.346 858.799 120.346 860.382 121.322 861.358L137.232 877.268ZM615.232 877.768C616.209 878.744 617.791 878.744 618.768 877.768L634.678 861.858C635.654 860.882 635.654 859.299 634.678 858.322C633.701 857.346 632.118 857.346 631.142 858.322L617 872.464L602.858 858.322C601.882 857.346 600.299 857.346 599.322 858.322C598.346 859.299 598.346 860.882 599.322 861.858L615.232 877.768ZM379.493 800C379.493 808.9 376.075 814.766 370.157 818.745C364.05 822.85 355.079 825.076 343.828 825.966C321.314 827.747 291.269 824.109 260.704 821.559C230.39 819.03 199.574 817.577 176.295 824.085C164.599 827.355 154.598 832.686 147.529 841.083C140.432 849.512 136.5 860.78 136.5 875.5H141.5C141.5 861.711 145.161 851.659 151.354 844.304C157.573 836.917 166.556 831.999 177.641 828.9C199.923 822.671 229.854 824.003 260.289 826.542C290.472 829.06 321.175 832.774 344.222 830.95C355.752 830.038 365.764 827.723 372.947 822.894C380.317 817.939 384.493 810.477 384.493 800H379.493ZM379.493 800C379.493 810.441 383.513 817.908 390.661 822.892C397.629 827.751 407.34 830.091 418.504 831.028C440.811 832.9 470.527 829.247 499.706 826.792C529.144 824.315 558.062 823.049 579.581 829.315C590.279 832.43 598.952 837.355 604.962 844.749C610.952 852.118 614.5 862.191 614.5 876H619.5C619.5 861.299 615.704 850.037 608.842 841.595C602 833.177 592.313 827.815 580.979 824.514C558.434 817.95 528.601 819.343 499.287 821.809C469.714 824.298 440.678 827.871 418.922 826.045C408.054 825.133 399.404 822.893 393.521 818.79C387.816 814.813 384.493 808.935 384.493 800H379.493Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Vector 2\"\r\n d=\"M932.232 1476.27C933.209 1477.24 934.791 1477.24 935.768 1476.27L951.678 1460.36C952.654 1459.38 952.654 1457.8 951.678 1456.82C950.701 1455.85 949.118 1455.85 948.142 1456.82L934 1470.96L919.858 1456.82C918.882 1455.85 917.299 1455.85 916.322 1456.82C915.346 1457.8 915.346 1459.38 916.322 1460.36L932.232 1476.27ZM1504.23 1476.27C1505.21 1477.24 1506.79 1477.24 1507.77 1476.27L1523.68 1460.36C1524.65 1459.38 1524.65 1457.8 1523.68 1456.82C1522.7 1455.85 1521.12 1455.85 1520.14 1456.82L1506 1470.96L1491.86 1456.82C1490.88 1455.85 1489.3 1455.85 1488.32 1456.82C1487.35 1457.8 1487.35 1459.38 1488.32 1460.36L1504.23 1476.27ZM1217.49 1400C1217.49 1404.44 1216.47 1408.07 1214.65 1411.05C1212.82 1414.05 1210.09 1416.55 1206.47 1418.6C1199.15 1422.76 1188.45 1424.96 1175.15 1425.81C1148.56 1427.5 1113.09 1423.73 1077.18 1421.06C1041.49 1418.4 1005.36 1416.84 978.117 1423.21C964.465 1426.41 952.791 1431.65 944.516 1439.97C936.174 1448.36 931.5 1459.67 931.5 1474.5H936.5C936.5 1460.82 940.764 1450.84 948.062 1443.5C955.427 1436.09 966.096 1431.16 979.256 1428.08C1005.64 1421.91 1041.01 1423.38 1076.81 1426.04C1112.4 1428.69 1148.43 1432.52 1175.47 1430.8C1188.98 1429.94 1200.61 1427.68 1208.94 1422.95C1213.14 1420.57 1216.56 1417.52 1218.91 1413.66C1221.28 1409.79 1222.49 1405.24 1222.49 1400H1217.49ZM1217.49 1400C1217.49 1405.24 1218.71 1409.79 1221.07 1413.66C1223.43 1417.52 1226.85 1420.57 1231.05 1422.95C1239.37 1427.68 1251.01 1429.94 1264.52 1430.8C1291.56 1432.52 1327.59 1428.69 1363.18 1426.04C1398.99 1423.38 1434.36 1421.91 1460.74 1428.08C1473.9 1431.16 1484.57 1436.09 1491.94 1443.5C1499.24 1450.84 1503.5 1460.82 1503.5 1474.5H1508.5C1508.5 1459.67 1503.83 1448.36 1495.48 1439.97C1487.21 1431.65 1475.53 1426.41 1461.88 1423.21C1434.64 1416.84 1398.51 1418.4 1362.81 1421.06C1326.9 1423.73 1291.43 1427.5 1264.84 1425.81C1251.54 1424.96 1240.83 1422.76 1233.52 1418.6C1229.9 1416.55 1227.17 1414.05 1225.34 1411.05C1223.51 1408.07 1222.49 1404.44 1222.49 1400H1217.49Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Vector 3\"\r\n d=\"M1662.27 866.768C1663.24 865.791 1663.24 864.209 1662.27 863.232L1646.36 847.322C1645.38 846.346 1643.8 846.346 1642.82 847.322C1641.85 848.299 1641.85 849.882 1642.82 850.858L1656.96 865L1642.82 879.142C1641.85 880.118 1641.85 881.701 1642.82 882.678C1643.8 883.654 1645.38 883.654 1646.36 882.678L1662.27 866.768ZM1662.27 401.768C1663.24 400.791 1663.24 399.209 1662.27 398.232L1646.36 382.322C1645.38 381.346 1643.8 381.346 1642.82 382.322C1641.85 383.299 1641.85 384.882 1642.82 385.858L1656.96 400L1642.82 414.142C1641.85 415.118 1641.85 416.701 1642.82 417.678C1643.8 418.654 1645.38 418.654 1646.36 417.678L1662.27 401.768ZM1506 636.507C1523.76 636.507 1535.37 649.611 1544.5 671.078C1553.61 692.502 1559.74 721.074 1567.13 750.12C1574.46 778.974 1583.02 808.215 1597.04 830.249C1611.15 852.427 1630.92 867.5 1660.5 867.5V862.5C1633.06 862.5 1614.7 848.699 1601.26 827.566C1587.72 806.289 1579.32 777.782 1571.97 748.888C1564.68 720.185 1558.41 691.009 1549.1 669.122C1539.81 647.278 1526.99 631.507 1506 631.507V636.507ZM1506 636.507C1527.01 636.507 1539.83 620.522 1549.11 598.411C1558.41 576.243 1564.68 546.693 1571.98 517.612C1579.32 488.341 1587.73 459.454 1601.27 437.893C1614.72 416.473 1633.07 402.5 1660.5 402.5V397.5C1630.91 397.5 1611.13 412.778 1597.03 435.234C1583.02 457.549 1574.46 487.165 1567.13 516.395C1559.74 545.816 1553.61 574.768 1544.5 596.476C1535.36 618.242 1523.75 631.507 1506 631.507V636.507Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Vector 4\"\r\n d=\"M1662.27 713.768C1663.24 712.791 1663.24 711.209 1662.27 710.232L1646.36 694.322C1645.38 693.346 1643.8 693.346 1642.82 694.322C1641.85 695.299 1641.85 696.882 1642.82 697.858L1656.96 712L1642.82 726.142C1641.85 727.118 1641.85 728.701 1642.82 729.678C1643.8 730.654 1645.38 730.654 1646.36 729.678L1662.27 713.768ZM1662.27 557.768C1663.24 556.791 1663.24 555.209 1662.27 554.232L1646.36 538.322C1645.38 537.346 1643.8 537.346 1642.82 538.322C1641.85 539.299 1641.85 540.882 1642.82 541.858L1656.96 556L1642.82 570.142C1641.85 571.118 1641.85 572.701 1642.82 573.678C1643.8 574.654 1645.38 574.654 1646.36 573.678L1662.27 557.768ZM1506 636.507C1524.9 636.507 1536.55 641.242 1545.25 648.151C1554.13 655.203 1560.05 664.541 1567.55 674.507C1574.98 684.369 1583.73 694.457 1597.98 702.022C1612.21 709.578 1631.71 714.5 1660.5 714.5V709.5C1632.27 709.5 1613.64 704.673 1600.32 697.605C1587.02 690.546 1578.8 681.136 1571.55 671.5C1564.37 661.968 1557.89 651.808 1548.36 644.236C1538.64 636.522 1525.85 631.507 1506 631.507V636.507ZM1506 636.507C1525.85 636.507 1538.64 631.492 1548.36 623.776C1557.89 616.203 1564.37 606.041 1571.55 596.507C1578.8 586.869 1587.02 577.457 1600.32 570.397C1613.64 563.328 1632.27 558.5 1660.5 558.5V553.5C1631.71 553.5 1612.21 558.423 1597.98 565.981C1583.73 573.546 1574.98 583.637 1567.55 593.5C1560.05 603.468 1554.13 612.808 1545.25 619.861C1536.55 626.772 1524.9 631.507 1506 631.507V636.507Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Arrow 1\"\r\n d=\"M1218.23 466.768C1219.21 467.744 1220.79 467.744 1221.77 466.768L1237.68 450.858C1238.65 449.882 1238.65 448.299 1237.68 447.322C1236.7 446.346 1235.12 446.346 1234.14 447.322L1220 461.464L1205.86 447.322C1204.88 446.346 1203.3 446.346 1202.32 447.322C1201.35 448.299 1201.35 449.882 1202.32 450.858L1218.23 466.768ZM1217.5 200V465H1222.5V200H1217.5Z\"\r\n fill=\"black\"\r\n />\r\n <path id=\"Arrow 2\" d=\"M1220 800V1065\" stroke=\"black\" strokeWidth=\"5\" />\r\n <path\r\n id=\"Arrow 3\"\r\n d=\"M935.768 635.768C936.744 634.791 936.744 633.209 935.768 632.232L919.858 616.322C918.882 615.346 917.299 615.346 916.322 616.322C915.346 617.299 915.346 618.882 916.322 619.858L930.464 634L916.322 648.142C915.346 649.118 915.346 650.701 916.322 651.678C917.299 652.654 918.882 652.654 919.858 651.678L935.768 635.768ZM669 636.5H934V631.5H669V636.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 4\"\r\n d=\"M1772.77 1235.77C1773.74 1234.79 1773.74 1233.21 1772.77 1232.23L1756.86 1216.32C1755.88 1215.35 1754.3 1215.35 1753.32 1216.32C1752.35 1217.3 1752.35 1218.88 1753.32 1219.86L1767.46 1234L1753.32 1248.14C1752.35 1249.12 1752.35 1250.7 1753.32 1251.68C1754.3 1252.65 1755.88 1252.65 1756.86 1251.68L1772.77 1235.77ZM1506 1236.5H1771V1231.5H1506V1236.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 5\"\r\n d=\"M1218.23 1625.77C1219.21 1626.74 1220.79 1626.74 1221.77 1625.77L1237.68 1609.86C1238.65 1608.88 1238.65 1607.3 1237.68 1606.32C1236.7 1605.35 1235.12 1605.35 1234.14 1606.32L1220 1620.46L1205.86 1606.32C1204.88 1605.35 1203.3 1605.35 1202.32 1606.32C1201.35 1607.3 1201.35 1608.88 1202.32 1609.86L1218.23 1625.77ZM1217.5 1400V1624H1222.5V1400H1217.5Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n </g>\r\n <g id=\"KeyResources\" className=\"map-btn\" onClick={ClickHandler(\"KeyResources\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 22\"\r\n x=\"1663.5\"\r\n y=\"335.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Key Resources\"\r\n d=\"M1689.95 413V387.545H1693.04V400.173H1693.33L1704.77 387.545H1708.8L1698.11 399.03L1708.8 413H1705.07L1696.22 401.168L1693.04 404.747V413H1689.95ZM1718.99 413.398C1717.15 413.398 1715.56 412.992 1714.23 412.18C1712.91 411.359 1711.88 410.216 1711.16 408.749C1710.45 407.274 1710.09 405.559 1710.09 403.604C1710.09 401.648 1710.45 399.925 1711.16 398.433C1711.88 396.933 1712.88 395.765 1714.17 394.928C1715.46 394.083 1716.97 393.661 1718.69 393.661C1719.69 393.661 1720.67 393.826 1721.64 394.158C1722.61 394.489 1723.49 395.028 1724.29 395.773C1725.08 396.511 1725.72 397.489 1726.19 398.707C1726.66 399.925 1726.9 401.424 1726.9 403.206V404.449H1712.18V401.913H1723.91C1723.91 400.836 1723.7 399.875 1723.27 399.03C1722.84 398.185 1722.24 397.518 1721.45 397.029C1720.67 396.54 1719.75 396.295 1718.69 396.295C1717.52 396.295 1716.51 396.585 1715.66 397.165C1714.82 397.737 1714.16 398.483 1713.71 399.403C1713.25 400.322 1713.03 401.308 1713.03 402.361V404.051C1713.03 405.493 1713.27 406.715 1713.77 407.718C1714.28 408.712 1714.98 409.47 1715.87 409.992C1716.77 410.506 1717.81 410.763 1718.99 410.763C1719.76 410.763 1720.46 410.655 1721.08 410.44C1721.71 410.216 1722.25 409.884 1722.71 409.445C1723.16 408.998 1723.52 408.443 1723.76 407.78L1726.6 408.575C1726.3 409.536 1725.8 410.382 1725.09 411.111C1724.39 411.832 1723.52 412.395 1722.48 412.801C1721.45 413.199 1720.28 413.398 1718.99 413.398ZM1732.67 420.159C1732.17 420.159 1731.73 420.118 1731.34 420.035C1730.95 419.96 1730.68 419.886 1730.53 419.811L1731.27 417.226C1731.99 417.408 1732.62 417.474 1733.16 417.425C1733.71 417.375 1734.19 417.131 1734.62 416.691C1735.05 416.261 1735.44 415.56 1735.8 414.591L1736.35 413.099L1729.29 393.909H1732.47L1737.74 409.122H1737.94L1743.21 393.909H1746.39L1738.28 415.784C1737.92 416.77 1737.47 417.586 1736.93 418.233C1736.39 418.887 1735.77 419.372 1735.05 419.687C1734.35 420.002 1733.55 420.159 1732.67 420.159ZM1760.5 413V387.545H1769.1C1771.09 387.545 1772.72 387.885 1774 388.565C1775.27 389.236 1776.22 390.16 1776.83 391.336C1777.45 392.513 1777.75 393.851 1777.75 395.351C1777.75 396.851 1777.45 398.181 1776.83 399.341C1776.22 400.501 1775.28 401.412 1774.01 402.075C1772.74 402.73 1771.12 403.057 1769.15 403.057H1762.19V400.273H1769.05C1770.41 400.273 1771.5 400.074 1772.33 399.676C1773.17 399.278 1773.77 398.715 1774.15 397.986C1774.53 397.248 1774.72 396.37 1774.72 395.351C1774.72 394.332 1774.53 393.441 1774.15 392.679C1773.77 391.916 1773.16 391.328 1772.32 390.914C1771.48 390.491 1770.38 390.28 1769 390.28H1763.58V413H1760.5ZM1772.48 401.565L1778.75 413H1775.17L1769 401.565H1772.48ZM1790.29 413.398C1788.45 413.398 1786.86 412.992 1785.53 412.18C1784.2 411.359 1783.18 410.216 1782.46 408.749C1781.75 407.274 1781.39 405.559 1781.39 403.604C1781.39 401.648 1781.75 399.925 1782.46 398.433C1783.18 396.933 1784.18 395.765 1785.47 394.928C1786.76 394.083 1788.27 393.661 1789.99 393.661C1790.99 393.661 1791.97 393.826 1792.94 394.158C1793.91 394.489 1794.79 395.028 1795.58 395.773C1796.38 396.511 1797.01 397.489 1797.49 398.707C1797.96 399.925 1798.19 401.424 1798.19 403.206V404.449H1783.48V401.913H1795.21C1795.21 400.836 1795 399.875 1794.57 399.03C1794.14 398.185 1793.54 397.518 1792.75 397.029C1791.97 396.54 1791.05 396.295 1789.99 396.295C1788.82 396.295 1787.81 396.585 1786.96 397.165C1786.11 397.737 1785.46 398.483 1785.01 399.403C1784.55 400.322 1784.32 401.308 1784.32 402.361V404.051C1784.32 405.493 1784.57 406.715 1785.07 407.718C1785.58 408.712 1786.28 409.47 1787.17 409.992C1788.07 410.506 1789.11 410.763 1790.29 410.763C1791.06 410.763 1791.76 410.655 1792.38 410.44C1793.01 410.216 1793.55 409.884 1794.01 409.445C1794.46 408.998 1794.81 408.443 1795.06 407.78L1797.9 408.575C1797.6 409.536 1797.1 410.382 1796.39 411.111C1795.69 411.832 1794.82 412.395 1793.78 412.801C1792.75 413.199 1791.58 413.398 1790.29 413.398ZM1816.18 398.185L1813.54 398.93C1813.38 398.491 1813.13 398.065 1812.81 397.65C1812.5 397.228 1812.07 396.88 1811.52 396.606C1810.97 396.333 1810.27 396.196 1809.42 396.196C1808.25 396.196 1807.28 396.465 1806.5 397.004C1805.73 397.534 1805.34 398.21 1805.34 399.03C1805.34 399.759 1805.61 400.335 1806.14 400.757C1806.67 401.18 1807.5 401.532 1808.62 401.814L1811.46 402.51C1813.16 402.924 1814.44 403.558 1815.27 404.412C1816.11 405.257 1816.53 406.346 1816.53 407.68C1816.53 408.774 1816.21 409.752 1815.58 410.614C1814.96 411.475 1814.09 412.155 1812.97 412.652C1811.85 413.149 1810.55 413.398 1809.07 413.398C1807.12 413.398 1805.51 412.975 1804.24 412.13C1802.96 411.285 1802.15 410.05 1801.81 408.426L1804.6 407.73C1804.86 408.758 1805.36 409.528 1806.1 410.042C1806.85 410.556 1807.82 410.812 1809.02 410.812C1810.39 410.812 1811.47 410.522 1812.28 409.942C1813.09 409.354 1813.49 408.65 1813.49 407.83C1813.49 407.167 1813.26 406.612 1812.8 406.164C1812.33 405.708 1811.62 405.369 1810.66 405.145L1807.48 404.399C1805.73 403.985 1804.45 403.343 1803.63 402.473C1802.81 401.594 1802.41 400.496 1802.41 399.179C1802.41 398.102 1802.71 397.149 1803.32 396.32C1803.93 395.492 1804.76 394.841 1805.81 394.369C1806.87 393.897 1808.08 393.661 1809.42 393.661C1811.31 393.661 1812.79 394.075 1813.87 394.903C1814.95 395.732 1815.72 396.826 1816.18 398.185ZM1828.7 413.398C1826.98 413.398 1825.46 412.988 1824.16 412.167C1822.87 411.347 1821.86 410.199 1821.13 408.724C1820.41 407.25 1820.05 405.526 1820.05 403.554C1820.05 401.565 1820.41 399.829 1821.13 398.346C1821.86 396.863 1822.87 395.711 1824.16 394.891C1825.46 394.071 1826.98 393.661 1828.7 393.661C1830.42 393.661 1831.93 394.071 1833.22 394.891C1834.52 395.711 1835.53 396.863 1836.26 398.346C1836.98 399.829 1837.35 401.565 1837.35 403.554C1837.35 405.526 1836.98 407.25 1836.26 408.724C1835.53 410.199 1834.52 411.347 1833.22 412.167C1831.93 412.988 1830.42 413.398 1828.7 413.398ZM1828.7 410.763C1830.01 410.763 1831.09 410.427 1831.93 409.756C1832.78 409.085 1833.4 408.202 1833.81 407.109C1834.21 406.015 1834.42 404.83 1834.42 403.554C1834.42 402.278 1834.21 401.089 1833.81 399.987C1833.4 398.885 1832.78 397.994 1831.93 397.315C1831.09 396.635 1830.01 396.295 1828.7 396.295C1827.39 396.295 1826.31 396.635 1825.47 397.315C1824.62 397.994 1824 398.885 1823.59 399.987C1823.18 401.089 1822.98 402.278 1822.98 403.554C1822.98 404.83 1823.18 406.015 1823.59 407.109C1824 408.202 1824.62 409.085 1825.47 409.756C1826.31 410.427 1827.39 410.763 1828.7 410.763ZM1853.86 405.195V393.909H1856.79V413H1853.86V409.768H1853.66C1853.21 410.738 1852.52 411.562 1851.57 412.242C1850.63 412.913 1849.43 413.249 1847.99 413.249C1846.8 413.249 1845.74 412.988 1844.81 412.466C1843.88 411.935 1843.15 411.14 1842.62 410.079C1842.09 409.01 1841.83 407.664 1841.83 406.04V393.909H1844.76V405.841C1844.76 407.233 1845.15 408.343 1845.93 409.172C1846.72 410 1847.72 410.415 1848.94 410.415C1849.67 410.415 1850.41 410.228 1851.16 409.855C1851.92 409.483 1852.56 408.911 1853.07 408.14C1853.6 407.37 1853.86 406.388 1853.86 405.195ZM1862.16 413V393.909H1865V396.793H1865.2C1865.54 395.848 1866.17 395.082 1867.09 394.493C1868 393.905 1869.02 393.611 1870.17 393.611C1870.38 393.611 1870.65 393.615 1870.98 393.623C1871.3 393.632 1871.54 393.644 1871.71 393.661V396.643C1871.61 396.619 1871.38 396.581 1871.03 396.532C1870.68 396.474 1870.31 396.445 1869.92 396.445C1868.99 396.445 1868.16 396.639 1867.43 397.029C1866.71 397.41 1866.14 397.94 1865.72 398.62C1865.3 399.291 1865.1 400.057 1865.1 400.919V413H1862.16ZM1882.36 413.398C1880.57 413.398 1879.03 412.975 1877.74 412.13C1876.44 411.285 1875.45 410.121 1874.75 408.637C1874.06 407.154 1873.71 405.46 1873.71 403.554C1873.71 401.615 1874.07 399.904 1874.78 398.421C1875.5 396.929 1876.5 395.765 1877.79 394.928C1879.08 394.083 1880.59 393.661 1882.31 393.661C1883.65 393.661 1884.86 393.909 1885.94 394.406C1887.02 394.903 1887.9 395.599 1888.59 396.494C1889.28 397.389 1889.7 398.433 1889.87 399.626H1886.93C1886.71 398.756 1886.21 397.986 1885.44 397.315C1884.68 396.635 1883.65 396.295 1882.36 396.295C1881.22 396.295 1880.21 396.594 1879.35 397.19C1878.5 397.779 1877.83 398.611 1877.35 399.689C1876.88 400.757 1876.64 402.013 1876.64 403.455C1876.64 404.929 1876.88 406.214 1877.34 407.308C1877.81 408.401 1878.47 409.251 1879.33 409.855C1880.19 410.46 1881.2 410.763 1882.36 410.763C1883.12 410.763 1883.81 410.63 1884.44 410.365C1885.06 410.1 1885.58 409.719 1886.01 409.222C1886.45 408.724 1886.75 408.128 1886.93 407.432H1889.87C1889.7 408.559 1889.29 409.574 1888.64 410.477C1887.99 411.372 1887.13 412.084 1886.06 412.615C1885 413.137 1883.77 413.398 1882.36 413.398ZM1902.16 413.398C1900.32 413.398 1898.73 412.992 1897.4 412.18C1896.07 411.359 1895.05 410.216 1894.33 408.749C1893.62 407.274 1893.26 405.559 1893.26 403.604C1893.26 401.648 1893.62 399.925 1894.33 398.433C1895.05 396.933 1896.05 395.765 1897.34 394.928C1898.63 394.083 1900.14 393.661 1901.86 393.661C1902.86 393.661 1903.84 393.826 1904.81 394.158C1905.78 394.489 1906.66 395.028 1907.45 395.773C1908.25 396.511 1908.88 397.489 1909.36 398.707C1909.83 399.925 1910.06 401.424 1910.06 403.206V404.449H1895.35V401.913H1907.08C1907.08 400.836 1906.87 399.875 1906.44 399.03C1906.01 398.185 1905.41 397.518 1904.62 397.029C1903.84 396.54 1902.92 396.295 1901.86 396.295C1900.69 396.295 1899.68 396.585 1898.83 397.165C1897.98 397.737 1897.33 398.483 1896.88 399.403C1896.42 400.322 1896.19 401.308 1896.19 402.361V404.051C1896.19 405.493 1896.44 406.715 1896.94 407.718C1897.45 408.712 1898.15 409.47 1899.04 409.992C1899.94 410.506 1900.98 410.763 1902.16 410.763C1902.93 410.763 1903.63 410.655 1904.25 410.44C1904.88 410.216 1905.42 409.884 1905.88 409.445C1906.33 408.998 1906.68 408.443 1906.93 407.78L1909.77 408.575C1909.47 409.536 1908.97 410.382 1908.26 411.111C1907.56 411.832 1906.69 412.395 1905.65 412.801C1904.62 413.199 1903.45 413.398 1902.16 413.398ZM1928.05 398.185L1925.41 398.93C1925.25 398.491 1925 398.065 1924.68 397.65C1924.37 397.228 1923.94 396.88 1923.39 396.606C1922.84 396.333 1922.14 396.196 1921.29 396.196C1920.12 396.196 1919.15 396.465 1918.37 397.004C1917.6 397.534 1917.21 398.21 1917.21 399.03C1917.21 399.759 1917.48 400.335 1918.01 400.757C1918.54 401.18 1919.37 401.532 1920.49 401.814L1923.33 402.51C1925.03 402.924 1926.31 403.558 1927.14 404.412C1927.98 405.257 1928.4 406.346 1928.4 407.68C1928.4 408.774 1928.08 409.752 1927.45 410.614C1926.83 411.475 1925.96 412.155 1924.84 412.652C1923.72 413.149 1922.42 413.398 1920.94 413.398C1918.99 413.398 1917.38 412.975 1916.11 412.13C1914.83 411.285 1914.02 410.05 1913.68 408.426L1916.47 407.73C1916.73 408.758 1917.23 409.528 1917.97 410.042C1918.72 410.556 1919.69 410.812 1920.89 410.812C1922.26 410.812 1923.34 410.522 1924.15 409.942C1924.96 409.354 1925.37 408.65 1925.37 407.83C1925.37 407.167 1925.13 406.612 1924.67 406.164C1924.2 405.708 1923.49 405.369 1922.53 405.145L1919.35 404.399C1917.6 403.985 1916.32 403.343 1915.5 402.473C1914.68 401.594 1914.28 400.496 1914.28 399.179C1914.28 398.102 1914.58 397.149 1915.19 396.32C1915.8 395.492 1916.63 394.841 1917.68 394.369C1918.74 393.897 1919.95 393.661 1921.29 393.661C1923.18 393.661 1924.66 394.075 1925.74 394.903C1926.82 395.732 1927.59 396.826 1928.05 398.185Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"KeyCapabilities\" className=\"map-btn\" onClick={ClickHandler(\"KeyCapabilities\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 21\"\r\n x=\"1663.5\"\r\n y=\"491.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Key Capabilities\"\r\n d=\"M1680.02 569V543.545H1683.11V556.173H1683.41L1694.84 543.545H1698.87L1688.18 555.03L1698.87 569H1695.14L1686.29 557.168L1683.11 560.747V569H1680.02ZM1709.06 569.398C1707.22 569.398 1705.64 568.992 1704.3 568.18C1702.98 567.359 1701.95 566.216 1701.23 564.749C1700.52 563.274 1700.16 561.559 1700.16 559.604C1700.16 557.648 1700.52 555.925 1701.23 554.433C1701.95 552.933 1702.96 551.765 1704.24 550.928C1705.53 550.083 1707.04 549.661 1708.76 549.661C1709.76 549.661 1710.74 549.826 1711.71 550.158C1712.68 550.489 1713.56 551.028 1714.36 551.773C1715.15 552.511 1715.79 553.489 1716.26 554.707C1716.73 555.925 1716.97 557.424 1716.97 559.206V560.449H1702.25V557.913H1713.98C1713.98 556.836 1713.77 555.875 1713.34 555.03C1712.91 554.185 1712.31 553.518 1711.52 553.029C1710.74 552.54 1709.82 552.295 1708.76 552.295C1707.6 552.295 1706.58 552.585 1705.73 553.165C1704.89 553.737 1704.24 554.483 1703.78 555.403C1703.32 556.322 1703.1 557.308 1703.1 558.361V560.051C1703.1 561.493 1703.34 562.715 1703.84 563.718C1704.35 564.712 1705.05 565.47 1705.94 565.992C1706.84 566.506 1707.88 566.763 1709.06 566.763C1709.83 566.763 1710.53 566.655 1711.15 566.44C1711.78 566.216 1712.32 565.884 1712.78 565.445C1713.23 564.998 1713.59 564.443 1713.83 563.78L1716.67 564.575C1716.37 565.536 1715.87 566.382 1715.16 567.111C1714.46 567.832 1713.59 568.395 1712.55 568.801C1711.52 569.199 1710.35 569.398 1709.06 569.398ZM1722.74 576.159C1722.24 576.159 1721.8 576.118 1721.41 576.035C1721.02 575.96 1720.75 575.886 1720.6 575.811L1721.34 573.226C1722.06 573.408 1722.69 573.474 1723.23 573.425C1723.78 573.375 1724.27 573.131 1724.69 572.691C1725.12 572.261 1725.51 571.56 1725.87 570.591L1726.42 569.099L1719.36 549.909H1722.54L1727.81 565.122H1728.01L1733.28 549.909H1736.46L1728.35 571.784C1727.99 572.77 1727.54 573.586 1727 574.233C1726.46 574.887 1725.84 575.372 1725.12 575.687C1724.42 576.002 1723.62 576.159 1722.74 576.159ZM1771.05 551.5H1767.97C1767.79 550.613 1767.47 549.835 1767.02 549.163C1766.57 548.492 1766.02 547.929 1765.37 547.473C1764.74 547.009 1764.03 546.661 1763.25 546.429C1762.47 546.197 1761.66 546.081 1760.81 546.081C1759.27 546.081 1757.88 546.47 1756.62 547.249C1755.38 548.028 1754.39 549.176 1753.65 550.692C1752.92 552.208 1752.56 554.069 1752.56 556.273C1752.56 558.477 1752.92 560.337 1753.65 561.853C1754.39 563.37 1755.38 564.517 1756.62 565.296C1757.88 566.075 1759.27 566.464 1760.81 566.464C1761.66 566.464 1762.47 566.348 1763.25 566.116C1764.03 565.884 1764.74 565.541 1765.37 565.085C1766.02 564.621 1766.57 564.053 1767.02 563.382C1767.47 562.703 1767.79 561.924 1767.97 561.045H1771.05C1770.82 562.346 1770.4 563.511 1769.79 564.538C1769.17 565.565 1768.41 566.44 1767.5 567.161C1766.59 567.873 1765.57 568.416 1764.43 568.789C1763.3 569.162 1762.1 569.348 1760.81 569.348C1758.64 569.348 1756.71 568.818 1755.02 567.757C1753.33 566.696 1752 565.188 1751.03 563.233C1750.06 561.277 1749.58 558.957 1749.58 556.273C1749.58 553.588 1750.06 551.268 1751.03 549.312C1752 547.357 1753.33 545.849 1755.02 544.788C1756.71 543.728 1758.64 543.197 1760.81 543.197C1762.1 543.197 1763.3 543.384 1764.43 543.757C1765.57 544.13 1766.59 544.676 1767.5 545.397C1768.41 546.11 1769.17 546.98 1769.79 548.007C1770.4 549.027 1770.82 550.191 1771.05 551.5ZM1781.26 569.447C1780.05 569.447 1778.95 569.22 1777.96 568.764C1776.98 568.3 1776.19 567.633 1775.61 566.763C1775.03 565.884 1774.74 564.824 1774.74 563.581C1774.74 562.487 1774.96 561.601 1775.39 560.921C1775.82 560.233 1776.4 559.695 1777.12 559.305C1777.84 558.916 1778.63 558.626 1779.5 558.435C1780.38 558.237 1781.26 558.079 1782.15 557.963C1783.31 557.814 1784.25 557.702 1784.97 557.627C1785.7 557.545 1786.23 557.408 1786.56 557.217C1786.9 557.027 1787.07 556.695 1787.07 556.223V556.124C1787.07 554.897 1786.74 553.944 1786.07 553.265C1785.4 552.585 1784.4 552.246 1783.05 552.246C1781.65 552.246 1780.55 552.552 1779.75 553.165C1778.96 553.779 1778.4 554.433 1778.07 555.129L1775.29 554.135C1775.79 552.975 1776.45 552.072 1777.28 551.425C1778.12 550.771 1779.03 550.315 1780.01 550.058C1781.01 549.793 1781.98 549.661 1782.95 549.661C1783.56 549.661 1784.26 549.735 1785.06 549.884C1785.86 550.025 1786.64 550.319 1787.38 550.767C1788.14 551.214 1788.76 551.889 1789.26 552.793C1789.76 553.696 1790.01 554.906 1790.01 556.422V569H1787.07V566.415H1786.92C1786.72 566.829 1786.39 567.272 1785.93 567.745C1785.46 568.217 1784.85 568.619 1784.08 568.95C1783.31 569.282 1782.37 569.447 1781.26 569.447ZM1781.7 566.812C1782.86 566.812 1783.84 566.585 1784.64 566.129C1785.44 565.673 1786.04 565.085 1786.45 564.364C1786.87 563.643 1787.07 562.885 1787.07 562.089V559.405C1786.95 559.554 1786.67 559.691 1786.25 559.815C1785.84 559.931 1785.36 560.035 1784.81 560.126C1784.27 560.209 1783.75 560.283 1783.23 560.349C1782.73 560.407 1782.32 560.457 1782 560.499C1781.24 560.598 1780.53 560.76 1779.86 560.983C1779.21 561.199 1778.68 561.526 1778.27 561.965C1777.88 562.396 1777.68 562.984 1777.68 563.73C1777.68 564.749 1778.05 565.52 1778.81 566.042C1779.57 566.556 1780.53 566.812 1781.7 566.812ZM1795.36 576.159V549.909H1798.19V552.942H1798.54C1798.76 552.61 1799.06 552.188 1799.44 551.674C1799.83 551.152 1800.38 550.688 1801.1 550.282C1801.83 549.868 1802.82 549.661 1804.06 549.661C1805.67 549.661 1807.08 550.062 1808.31 550.866C1809.54 551.67 1810.49 552.809 1811.18 554.284C1811.87 555.759 1812.21 557.499 1812.21 559.504C1812.21 561.526 1811.87 563.279 1811.18 564.762C1810.49 566.237 1809.54 567.38 1808.32 568.192C1807.1 568.996 1805.7 569.398 1804.11 569.398C1802.88 569.398 1801.9 569.195 1801.16 568.789C1800.43 568.374 1799.86 567.906 1799.46 567.384C1799.06 566.854 1798.76 566.415 1798.54 566.067H1798.29V576.159H1795.36ZM1798.24 559.455C1798.24 560.896 1798.45 562.168 1798.88 563.27C1799.3 564.364 1799.92 565.222 1800.73 565.843C1801.54 566.456 1802.54 566.763 1803.71 566.763C1804.94 566.763 1805.96 566.44 1806.78 565.793C1807.61 565.139 1808.23 564.26 1808.65 563.158C1809.07 562.048 1809.28 560.813 1809.28 559.455C1809.28 558.112 1809.07 556.902 1808.66 555.825C1808.25 554.74 1807.64 553.882 1806.81 553.252C1805.99 552.614 1804.95 552.295 1803.71 552.295C1802.52 552.295 1801.52 552.598 1800.7 553.203C1799.89 553.799 1799.28 554.636 1798.86 555.713C1798.45 556.782 1798.24 558.029 1798.24 559.455ZM1822.31 569.447C1821.1 569.447 1820 569.22 1819.01 568.764C1818.03 568.3 1817.24 567.633 1816.66 566.763C1816.08 565.884 1815.79 564.824 1815.79 563.581C1815.79 562.487 1816.01 561.601 1816.44 560.921C1816.87 560.233 1817.45 559.695 1818.17 559.305C1818.89 558.916 1819.68 558.626 1820.55 558.435C1821.43 558.237 1822.31 558.079 1823.2 557.963C1824.36 557.814 1825.3 557.702 1826.02 557.627C1826.75 557.545 1827.28 557.408 1827.61 557.217C1827.95 557.027 1828.12 556.695 1828.12 556.223V556.124C1828.12 554.897 1827.79 553.944 1827.12 553.265C1826.45 552.585 1825.45 552.246 1824.1 552.246C1822.69 552.246 1821.6 552.552 1820.8 553.165C1820.01 553.779 1819.45 554.433 1819.12 555.129L1816.34 554.135C1816.84 552.975 1817.5 552.072 1818.33 551.425C1819.17 550.771 1820.08 550.315 1821.06 550.058C1822.06 549.793 1823.03 549.661 1824 549.661C1824.61 549.661 1825.31 549.735 1826.11 549.884C1826.91 550.025 1827.69 550.319 1828.43 550.767C1829.19 551.214 1829.81 551.889 1830.31 552.793C1830.81 553.696 1831.06 554.906 1831.06 556.422V569H1828.12V566.415H1827.97C1827.77 566.829 1827.44 567.272 1826.98 567.745C1826.51 568.217 1825.9 568.619 1825.13 568.95C1824.36 569.282 1823.42 569.447 1822.31 569.447ZM1822.75 566.812C1823.91 566.812 1824.89 566.585 1825.69 566.129C1826.49 565.673 1827.09 565.085 1827.5 564.364C1827.92 563.643 1828.12 562.885 1828.12 562.089V559.405C1828 559.554 1827.72 559.691 1827.3 559.815C1826.89 559.931 1826.41 560.035 1825.86 560.126C1825.32 560.209 1824.8 560.283 1824.28 560.349C1823.78 560.407 1823.37 560.457 1823.05 560.499C1822.29 560.598 1821.58 560.76 1820.91 560.983C1820.26 561.199 1819.73 561.526 1819.32 561.965C1818.92 562.396 1818.73 562.984 1818.73 563.73C1818.73 564.749 1819.1 565.52 1819.86 566.042C1820.62 566.556 1821.58 566.812 1822.75 566.812ZM1836.81 569V543.545H1839.74V552.942H1839.99C1840.2 552.61 1840.5 552.188 1840.88 551.674C1841.27 551.152 1841.83 550.688 1842.55 550.282C1843.28 549.868 1844.26 549.661 1845.51 549.661C1847.11 549.661 1848.53 550.062 1849.76 550.866C1850.98 551.67 1851.94 552.809 1852.63 554.284C1853.32 555.759 1853.66 557.499 1853.66 559.504C1853.66 561.526 1853.32 563.279 1852.63 564.762C1851.94 566.237 1850.99 567.38 1849.77 568.192C1848.55 568.996 1847.15 569.398 1845.56 569.398C1844.33 569.398 1843.35 569.195 1842.61 568.789C1841.87 568.374 1841.31 567.906 1840.91 567.384C1840.51 566.854 1840.2 566.415 1839.99 566.067H1839.64V569H1836.81ZM1839.69 559.455C1839.69 560.896 1839.9 562.168 1840.32 563.27C1840.75 564.364 1841.36 565.222 1842.18 565.843C1842.99 566.456 1843.98 566.763 1845.16 566.763C1846.39 566.763 1847.41 566.44 1848.23 565.793C1849.06 565.139 1849.68 564.26 1850.09 563.158C1850.52 562.048 1850.73 560.813 1850.73 559.455C1850.73 558.112 1850.52 556.902 1850.11 555.825C1849.7 554.74 1849.08 553.882 1848.25 553.252C1847.43 552.614 1846.4 552.295 1845.16 552.295C1843.97 552.295 1842.96 552.598 1842.15 553.203C1841.34 553.799 1840.73 554.636 1840.31 555.713C1839.9 556.782 1839.69 558.029 1839.69 559.455ZM1858.15 569V549.909H1861.08V569H1858.15ZM1859.64 546.727C1859.07 546.727 1858.57 546.533 1858.16 546.143C1857.75 545.754 1857.55 545.286 1857.55 544.739C1857.55 544.192 1857.75 543.724 1858.16 543.334C1858.57 542.945 1859.07 542.75 1859.64 542.75C1860.21 542.75 1860.7 542.945 1861.11 543.334C1861.52 543.724 1861.73 544.192 1861.73 544.739C1861.73 545.286 1861.52 545.754 1861.11 546.143C1860.7 546.533 1860.21 546.727 1859.64 546.727ZM1869.39 543.545V569H1866.45V543.545H1869.39ZM1874.76 569V549.909H1877.69V569H1874.76ZM1876.25 546.727C1875.68 546.727 1875.19 546.533 1874.77 546.143C1874.37 545.754 1874.16 545.286 1874.16 544.739C1874.16 544.192 1874.37 543.724 1874.77 543.334C1875.19 542.945 1875.68 542.75 1876.25 542.75C1876.82 542.75 1877.31 542.945 1877.72 543.334C1878.13 543.724 1878.34 544.192 1878.34 544.739C1878.34 545.286 1878.13 545.754 1877.72 546.143C1877.31 546.533 1876.82 546.727 1876.25 546.727ZM1891.37 549.909V552.395H1881.47V549.909H1891.37ZM1884.36 545.335H1887.29V563.531C1887.29 564.36 1887.41 564.981 1887.65 565.396C1887.9 565.802 1888.21 566.075 1888.6 566.216C1888.98 566.348 1889.4 566.415 1889.83 566.415C1890.15 566.415 1890.41 566.398 1890.62 566.365C1890.83 566.324 1890.99 566.29 1891.12 566.266L1891.72 568.901C1891.52 568.975 1891.24 569.05 1890.88 569.124C1890.53 569.207 1890.07 569.249 1889.53 569.249C1888.7 569.249 1887.89 569.07 1887.09 568.714C1886.3 568.358 1885.65 567.815 1885.13 567.086C1884.61 566.357 1884.36 565.437 1884.36 564.327V545.335ZM1895.78 569V549.909H1898.71V569H1895.78ZM1897.27 546.727C1896.7 546.727 1896.21 546.533 1895.79 546.143C1895.39 545.754 1895.18 545.286 1895.18 544.739C1895.18 544.192 1895.39 543.724 1895.79 543.334C1896.21 542.945 1896.7 542.75 1897.27 542.75C1897.84 542.75 1898.33 542.945 1898.74 543.334C1899.15 543.724 1899.36 544.192 1899.36 544.739C1899.36 545.286 1899.15 545.754 1898.74 546.143C1898.33 546.533 1897.84 546.727 1897.27 546.727ZM1912.09 569.398C1910.25 569.398 1908.66 568.992 1907.33 568.18C1906 567.359 1904.98 566.216 1904.26 564.749C1903.55 563.274 1903.19 561.559 1903.19 559.604C1903.19 557.648 1903.55 555.925 1904.26 554.433C1904.98 552.933 1905.98 551.765 1907.27 550.928C1908.56 550.083 1910.07 549.661 1911.79 549.661C1912.79 549.661 1913.77 549.826 1914.74 550.158C1915.71 550.489 1916.59 551.028 1917.38 551.773C1918.18 552.511 1918.81 553.489 1919.29 554.707C1919.76 555.925 1919.99 557.424 1919.99 559.206V560.449H1905.28V557.913H1917.01C1917.01 556.836 1916.8 555.875 1916.36 555.03C1915.94 554.185 1915.34 553.518 1914.55 553.029C1913.77 552.54 1912.85 552.295 1911.79 552.295C1910.62 552.295 1909.61 552.585 1908.76 553.165C1907.91 553.737 1907.26 554.483 1906.81 555.403C1906.35 556.322 1906.12 557.308 1906.12 558.361V560.051C1906.12 561.493 1906.37 562.715 1906.87 563.718C1907.37 564.712 1908.07 565.47 1908.97 565.992C1909.86 566.506 1910.9 566.763 1912.09 566.763C1912.86 566.763 1913.56 566.655 1914.18 566.44C1914.81 566.216 1915.35 565.884 1915.81 565.445C1916.26 564.998 1916.61 564.443 1916.86 563.78L1919.7 564.575C1919.4 565.536 1918.9 566.382 1918.19 567.111C1917.49 567.832 1916.62 568.395 1915.58 568.801C1914.55 569.199 1913.38 569.398 1912.09 569.398ZM1937.98 554.185L1935.34 554.93C1935.18 554.491 1934.93 554.065 1934.61 553.65C1934.3 553.228 1933.86 552.88 1933.32 552.606C1932.77 552.333 1932.07 552.196 1931.22 552.196C1930.05 552.196 1929.08 552.465 1928.3 553.004C1927.53 553.534 1927.14 554.21 1927.14 555.03C1927.14 555.759 1927.41 556.335 1927.94 556.757C1928.47 557.18 1929.3 557.532 1930.42 557.814L1933.26 558.51C1934.96 558.924 1936.23 559.558 1937.07 560.412C1937.91 561.257 1938.33 562.346 1938.33 563.68C1938.33 564.774 1938.01 565.752 1937.38 566.614C1936.76 567.475 1935.89 568.155 1934.77 568.652C1933.65 569.149 1932.35 569.398 1930.87 569.398C1928.92 569.398 1927.31 568.975 1926.03 568.13C1924.76 567.285 1923.95 566.05 1923.61 564.426L1926.4 563.73C1926.66 564.758 1927.16 565.528 1927.9 566.042C1928.64 566.556 1929.62 566.812 1930.82 566.812C1932.19 566.812 1933.27 566.522 1934.08 565.942C1934.89 565.354 1935.29 564.65 1935.29 563.83C1935.29 563.167 1935.06 562.612 1934.6 562.164C1934.13 561.708 1933.42 561.369 1932.46 561.145L1929.28 560.399C1927.53 559.985 1926.25 559.343 1925.43 558.473C1924.61 557.594 1924.21 556.496 1924.21 555.179C1924.21 554.102 1924.51 553.149 1925.11 552.32C1925.73 551.492 1926.56 550.841 1927.61 550.369C1928.67 549.897 1929.88 549.661 1931.22 549.661C1933.11 549.661 1934.59 550.075 1935.67 550.903C1936.75 551.732 1937.52 552.826 1937.98 554.185Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"PricingModel\" className=\"map-btn\" onClick={ClickHandler(\"PricingModel\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 20\"\r\n x=\"1663.5\"\r\n y=\"647.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Pricing Model\"\r\n d=\"M1698.84 725V699.545H1707.44C1709.44 699.545 1711.07 699.906 1712.34 700.627C1713.61 701.339 1714.56 702.305 1715.17 703.523C1715.79 704.741 1716.09 706.1 1716.09 707.599C1716.09 709.099 1715.79 710.462 1715.17 711.689C1714.57 712.915 1713.63 713.893 1712.36 714.622C1711.1 715.343 1709.47 715.703 1707.49 715.703H1701.33V712.969H1707.39C1708.76 712.969 1709.86 712.733 1710.69 712.26C1711.51 711.788 1712.11 711.15 1712.49 710.346C1712.87 709.534 1713.06 708.619 1713.06 707.599C1713.06 706.58 1712.87 705.669 1712.49 704.865C1712.11 704.061 1711.51 703.432 1710.67 702.976C1709.84 702.512 1708.73 702.28 1707.34 702.28H1701.92V725H1698.84ZM1720.66 725V705.909H1723.49V708.793H1723.69C1724.04 707.848 1724.67 707.082 1725.58 706.493C1726.49 705.905 1727.52 705.611 1728.66 705.611C1728.88 705.611 1729.15 705.615 1729.47 705.623C1729.8 705.632 1730.04 705.644 1730.21 705.661V708.643C1730.11 708.619 1729.88 708.581 1729.52 708.532C1729.17 708.474 1728.8 708.445 1728.42 708.445C1727.49 708.445 1726.66 708.639 1725.93 709.029C1725.21 709.41 1724.64 709.94 1724.21 710.62C1723.8 711.291 1723.59 712.057 1723.59 712.919V725H1720.66ZM1733.68 725V705.909H1736.62V725H1733.68ZM1735.17 702.727C1734.6 702.727 1734.11 702.533 1733.69 702.143C1733.29 701.754 1733.09 701.286 1733.09 700.739C1733.09 700.192 1733.29 699.724 1733.69 699.334C1734.11 698.945 1734.6 698.75 1735.17 698.75C1735.75 698.75 1736.23 698.945 1736.64 699.334C1737.05 699.724 1737.26 700.192 1737.26 700.739C1737.26 701.286 1737.05 701.754 1736.64 702.143C1736.23 702.533 1735.75 702.727 1735.17 702.727ZM1749.74 725.398C1747.95 725.398 1746.41 724.975 1745.12 724.13C1743.83 723.285 1742.83 722.121 1742.14 720.637C1741.44 719.154 1741.09 717.46 1741.09 715.554C1741.09 713.615 1741.45 711.904 1742.16 710.421C1742.88 708.929 1743.89 707.765 1745.17 706.928C1746.46 706.083 1747.97 705.661 1749.69 705.661C1751.04 705.661 1752.25 705.909 1753.32 706.406C1754.4 706.903 1755.28 707.599 1755.97 708.494C1756.66 709.389 1757.08 710.433 1757.25 711.626H1754.32C1754.09 710.756 1753.6 709.986 1752.83 709.315C1752.06 708.635 1751.04 708.295 1749.74 708.295C1748.6 708.295 1747.6 708.594 1746.74 709.19C1745.88 709.779 1745.22 710.611 1744.73 711.689C1744.26 712.757 1744.03 714.013 1744.03 715.455C1744.03 716.929 1744.26 718.214 1744.72 719.308C1745.19 720.401 1745.86 721.251 1746.71 721.855C1747.57 722.46 1748.58 722.763 1749.74 722.763C1750.51 722.763 1751.2 722.63 1751.82 722.365C1752.44 722.1 1752.97 721.719 1753.4 721.222C1753.83 720.724 1754.14 720.128 1754.32 719.432H1757.25C1757.08 720.559 1756.67 721.574 1756.02 722.477C1755.37 723.372 1754.52 724.084 1753.45 724.615C1752.39 725.137 1751.15 725.398 1749.74 725.398ZM1761.54 725V705.909H1764.47V725H1761.54ZM1763.03 702.727C1762.46 702.727 1761.97 702.533 1761.55 702.143C1761.15 701.754 1760.94 701.286 1760.94 700.739C1760.94 700.192 1761.15 699.724 1761.55 699.334C1761.97 698.945 1762.46 698.75 1763.03 698.75C1763.6 698.75 1764.09 698.945 1764.5 699.334C1764.91 699.724 1765.12 700.192 1765.12 700.739C1765.12 701.286 1764.91 701.754 1764.5 702.143C1764.09 702.533 1763.6 702.727 1763.03 702.727ZM1772.78 713.516V725H1769.84V705.909H1772.68V708.892H1772.93C1773.37 707.923 1774.05 707.144 1774.97 706.555C1775.88 705.959 1777.05 705.661 1778.49 705.661C1779.79 705.661 1780.92 705.926 1781.89 706.456C1782.86 706.978 1783.61 707.773 1784.15 708.842C1784.69 709.903 1784.96 711.245 1784.96 712.869V725H1782.02V713.068C1782.02 711.568 1781.64 710.4 1780.86 709.563C1780.08 708.718 1779.01 708.295 1777.65 708.295C1776.71 708.295 1775.88 708.498 1775.14 708.904C1774.41 709.31 1773.83 709.903 1773.41 710.682C1772.99 711.461 1772.78 712.405 1772.78 713.516ZM1798.02 732.557C1796.61 732.557 1795.39 732.375 1794.37 732.01C1793.35 731.654 1792.5 731.181 1791.82 730.593C1791.15 730.013 1790.62 729.392 1790.22 728.729L1792.56 727.088C1792.82 727.436 1793.16 727.834 1793.56 728.281C1793.97 728.737 1794.52 729.131 1795.23 729.462C1795.94 729.802 1796.87 729.972 1798.02 729.972C1799.57 729.972 1800.84 729.599 1801.84 728.853C1802.84 728.107 1803.34 726.939 1803.34 725.348V721.47H1803.09C1802.88 721.818 1802.57 722.249 1802.18 722.763C1801.79 723.268 1801.22 723.72 1800.48 724.118C1799.76 724.507 1798.77 724.702 1797.53 724.702C1795.99 724.702 1794.6 724.337 1793.38 723.608C1792.16 722.879 1791.19 721.818 1790.48 720.426C1789.78 719.034 1789.42 717.344 1789.42 715.355C1789.42 713.4 1789.77 711.697 1790.45 710.247C1791.14 708.788 1792.1 707.662 1793.33 706.866C1794.55 706.062 1795.97 705.661 1797.58 705.661C1798.82 705.661 1799.81 705.868 1800.53 706.282C1801.27 706.688 1801.84 707.152 1802.22 707.674C1802.62 708.188 1802.93 708.61 1803.14 708.942H1803.44V705.909H1806.28V725.547C1806.28 727.188 1805.9 728.522 1805.16 729.549C1804.42 730.585 1803.43 731.343 1802.18 731.824C1800.93 732.312 1799.55 732.557 1798.02 732.557ZM1797.92 722.067C1799.1 722.067 1800.1 721.797 1800.91 721.259C1801.72 720.72 1802.34 719.946 1802.76 718.935C1803.18 717.924 1803.39 716.714 1803.39 715.305C1803.39 713.93 1803.19 712.716 1802.77 711.664C1802.36 710.611 1801.74 709.787 1800.93 709.19C1800.12 708.594 1799.12 708.295 1797.92 708.295C1796.68 708.295 1795.65 708.61 1794.82 709.24C1794 709.87 1793.38 710.715 1792.97 711.776C1792.56 712.836 1792.36 714.013 1792.36 715.305C1792.36 716.631 1792.56 717.804 1792.98 718.823C1793.4 719.834 1794.02 720.629 1794.84 721.209C1795.67 721.781 1796.7 722.067 1797.92 722.067ZM1821.89 699.545H1825.57L1834.22 720.675H1834.52L1843.17 699.545H1846.84V725H1843.96V705.661H1843.71L1835.76 725H1832.97L1825.02 705.661H1824.77V725H1821.89V699.545ZM1860.38 725.398C1858.66 725.398 1857.15 724.988 1855.85 724.167C1854.55 723.347 1853.54 722.199 1852.81 720.724C1852.09 719.25 1851.73 717.526 1851.73 715.554C1851.73 713.565 1852.09 711.829 1852.81 710.346C1853.54 708.863 1854.55 707.711 1855.85 706.891C1857.15 706.071 1858.66 705.661 1860.38 705.661C1862.11 705.661 1863.61 706.071 1864.91 706.891C1866.21 707.711 1867.22 708.863 1867.94 710.346C1868.67 711.829 1869.03 713.565 1869.03 715.554C1869.03 717.526 1868.67 719.25 1867.94 720.724C1867.22 722.199 1866.21 723.347 1864.91 724.167C1863.61 724.988 1862.11 725.398 1860.38 725.398ZM1860.38 722.763C1861.69 722.763 1862.77 722.427 1863.61 721.756C1864.46 721.085 1865.09 720.202 1865.49 719.109C1865.9 718.015 1866.1 716.83 1866.1 715.554C1866.1 714.278 1865.9 713.089 1865.49 711.987C1865.09 710.885 1864.46 709.994 1863.61 709.315C1862.77 708.635 1861.69 708.295 1860.38 708.295C1859.07 708.295 1858 708.635 1857.15 709.315C1856.31 709.994 1855.68 710.885 1855.27 711.987C1854.87 713.089 1854.67 714.278 1854.67 715.554C1854.67 716.83 1854.87 718.015 1855.27 719.109C1855.68 720.202 1856.31 721.085 1857.15 721.756C1858 722.427 1859.07 722.763 1860.38 722.763ZM1880.72 725.398C1879.13 725.398 1877.72 724.996 1876.51 724.192C1875.29 723.38 1874.34 722.237 1873.65 720.762C1872.96 719.279 1872.62 717.526 1872.62 715.504C1872.62 713.499 1872.96 711.759 1873.65 710.284C1874.34 708.809 1875.29 707.67 1876.52 706.866C1877.75 706.062 1879.16 705.661 1880.77 705.661C1882.01 705.661 1882.99 705.868 1883.72 706.282C1884.44 706.688 1885 707.152 1885.38 707.674C1885.77 708.188 1886.07 708.61 1886.29 708.942H1886.54V699.545H1889.47V725H1886.64V722.067H1886.29C1886.07 722.415 1885.77 722.854 1885.37 723.384C1884.97 723.906 1884.4 724.374 1883.67 724.789C1882.93 725.195 1881.95 725.398 1880.72 725.398ZM1881.12 722.763C1882.29 722.763 1883.29 722.456 1884.1 721.843C1884.91 721.222 1885.53 720.364 1885.95 719.27C1886.38 718.168 1886.59 716.896 1886.59 715.455C1886.59 714.029 1886.38 712.782 1885.97 711.713C1885.55 710.636 1884.94 709.799 1884.13 709.203C1883.31 708.598 1882.31 708.295 1881.12 708.295C1879.87 708.295 1878.84 708.614 1878.01 709.252C1877.19 709.882 1876.57 710.74 1876.16 711.825C1875.75 712.902 1875.55 714.112 1875.55 715.455C1875.55 716.813 1875.76 718.048 1876.17 719.158C1876.59 720.26 1877.22 721.139 1878.04 721.793C1878.86 722.44 1879.89 722.763 1881.12 722.763ZM1903.25 725.398C1901.41 725.398 1899.83 724.992 1898.49 724.18C1897.17 723.359 1896.14 722.216 1895.42 720.749C1894.71 719.274 1894.35 717.559 1894.35 715.604C1894.35 713.648 1894.71 711.925 1895.42 710.433C1896.14 708.933 1897.15 707.765 1898.43 706.928C1899.72 706.083 1901.23 705.661 1902.96 705.661C1903.95 705.661 1904.93 705.826 1905.9 706.158C1906.87 706.489 1907.75 707.028 1908.55 707.773C1909.34 708.511 1909.98 709.489 1910.45 710.707C1910.92 711.925 1911.16 713.424 1911.16 715.206V716.449H1896.44V713.913H1908.18C1908.18 712.836 1907.96 711.875 1907.53 711.03C1907.11 710.185 1906.5 709.518 1905.71 709.029C1904.94 708.54 1904.02 708.295 1902.96 708.295C1901.79 708.295 1900.78 708.585 1899.92 709.165C1899.08 709.737 1898.43 710.483 1897.97 711.403C1897.52 712.322 1897.29 713.308 1897.29 714.361V716.051C1897.29 717.493 1897.54 718.715 1898.03 719.718C1898.54 720.712 1899.24 721.47 1900.13 721.992C1901.03 722.506 1902.07 722.763 1903.25 722.763C1904.02 722.763 1904.72 722.655 1905.34 722.44C1905.97 722.216 1906.51 721.884 1906.97 721.445C1907.43 720.998 1907.78 720.443 1908.03 719.78L1910.86 720.575C1910.56 721.536 1910.06 722.382 1909.36 723.111C1908.65 723.832 1907.78 724.395 1906.75 724.801C1905.71 725.199 1904.55 725.398 1903.25 725.398ZM1918.55 699.545V725H1915.62V699.545H1918.55Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"Channels\" className=\"map-btn\" onClick={ClickHandler(\"Channels\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 19\"\r\n x=\"1663.5\"\r\n y=\"800.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Channels_2\"\r\n d=\"M1755.18 860.5H1752.1C1751.91 859.613 1751.59 858.835 1751.14 858.163C1750.69 857.492 1750.14 856.929 1749.5 856.473C1748.86 856.009 1748.15 855.661 1747.37 855.429C1746.59 855.197 1745.78 855.081 1744.94 855.081C1743.4 855.081 1742 855.47 1740.75 856.249C1739.51 857.028 1738.52 858.176 1737.78 859.692C1737.05 861.208 1736.68 863.069 1736.68 865.273C1736.68 867.477 1737.05 869.337 1737.78 870.853C1738.52 872.37 1739.51 873.517 1740.75 874.296C1742 875.075 1743.4 875.464 1744.94 875.464C1745.78 875.464 1746.59 875.348 1747.37 875.116C1748.15 874.884 1748.86 874.541 1749.5 874.085C1750.14 873.621 1750.69 873.053 1751.14 872.382C1751.59 871.703 1751.91 870.924 1752.1 870.045H1755.18C1754.95 871.346 1754.52 872.511 1753.91 873.538C1753.3 874.565 1752.53 875.44 1751.62 876.161C1750.71 876.873 1749.69 877.416 1748.55 877.789C1747.43 878.162 1746.22 878.348 1744.94 878.348C1742.77 878.348 1740.84 877.818 1739.14 876.757C1737.45 875.696 1736.12 874.188 1735.16 872.233C1734.19 870.277 1733.7 867.957 1733.7 865.273C1733.7 862.588 1734.19 860.268 1735.16 858.312C1736.12 856.357 1737.45 854.849 1739.14 853.788C1740.84 852.728 1742.77 852.197 1744.94 852.197C1746.22 852.197 1747.43 852.384 1748.55 852.757C1749.69 853.13 1750.71 853.676 1751.62 854.397C1752.53 855.11 1753.3 855.98 1753.91 857.007C1754.52 858.027 1754.95 859.191 1755.18 860.5ZM1762.69 866.516V878H1759.76V852.545H1762.69V861.892H1762.94C1763.39 860.906 1764.06 860.123 1764.96 859.543C1765.86 858.955 1767.06 858.661 1768.56 858.661C1769.86 858.661 1771 858.922 1771.98 859.444C1772.96 859.957 1773.71 860.749 1774.25 861.817C1774.8 862.878 1775.07 864.229 1775.07 865.869V878H1772.14V866.068C1772.14 864.552 1771.75 863.379 1770.96 862.551C1770.18 861.714 1769.1 861.295 1767.72 861.295C1766.75 861.295 1765.89 861.498 1765.13 861.904C1764.38 862.31 1763.78 862.903 1763.34 863.682C1762.91 864.461 1762.69 865.405 1762.69 866.516ZM1786.06 878.447C1784.85 878.447 1783.75 878.22 1782.76 877.764C1781.78 877.3 1781 876.633 1780.42 875.763C1779.84 874.884 1779.55 873.824 1779.55 872.581C1779.55 871.487 1779.76 870.601 1780.19 869.921C1780.62 869.233 1781.2 868.695 1781.92 868.305C1782.64 867.916 1783.44 867.626 1784.31 867.435C1785.18 867.237 1786.07 867.079 1786.95 866.963C1788.11 866.814 1789.05 866.702 1789.77 866.627C1790.5 866.545 1791.03 866.408 1791.37 866.217C1791.7 866.027 1791.87 865.695 1791.87 865.223V865.124C1791.87 863.897 1791.54 862.944 1790.87 862.265C1790.21 861.585 1789.2 861.246 1787.85 861.246C1786.45 861.246 1785.35 861.552 1784.55 862.165C1783.76 862.779 1783.2 863.433 1782.88 864.129L1780.09 863.135C1780.59 861.975 1781.25 861.072 1782.08 860.425C1782.92 859.771 1783.83 859.315 1784.82 859.058C1785.81 858.793 1786.79 858.661 1787.75 858.661C1788.36 858.661 1789.07 858.735 1789.86 858.884C1790.66 859.025 1791.44 859.319 1792.19 859.767C1792.94 860.214 1793.57 860.889 1794.06 861.793C1794.56 862.696 1794.81 863.906 1794.81 865.422V878H1791.87V875.415H1791.73C1791.53 875.829 1791.2 876.272 1790.73 876.745C1790.27 877.217 1789.65 877.619 1788.88 877.95C1788.11 878.282 1787.17 878.447 1786.06 878.447ZM1786.51 875.812C1787.67 875.812 1788.64 875.585 1789.44 875.129C1790.24 874.673 1790.85 874.085 1791.25 873.364C1791.67 872.643 1791.87 871.885 1791.87 871.089V868.405C1791.75 868.554 1791.48 868.691 1791.05 868.815C1790.64 868.931 1790.16 869.035 1789.61 869.126C1789.07 869.209 1788.55 869.283 1788.03 869.349C1787.53 869.407 1787.12 869.457 1786.8 869.499C1786.04 869.598 1785.33 869.76 1784.67 869.983C1784.01 870.199 1783.48 870.526 1783.07 870.965C1782.68 871.396 1782.48 871.984 1782.48 872.73C1782.48 873.749 1782.86 874.52 1783.61 875.042C1784.37 875.556 1785.34 875.812 1786.51 875.812ZM1803.09 866.516V878H1800.16V858.909H1803V861.892H1803.24C1803.69 860.923 1804.37 860.144 1805.28 859.555C1806.19 858.959 1807.37 858.661 1808.81 858.661C1810.1 858.661 1811.24 858.926 1812.21 859.456C1813.17 859.978 1813.93 860.773 1814.47 861.842C1815.01 862.903 1815.28 864.245 1815.28 865.869V878H1812.34V866.068C1812.34 864.568 1811.95 863.4 1811.17 862.563C1810.39 861.718 1809.33 861.295 1807.97 861.295C1807.03 861.295 1806.19 861.498 1805.46 861.904C1804.73 862.31 1804.15 862.903 1803.73 863.682C1803.31 864.461 1803.09 865.405 1803.09 866.516ZM1823.57 866.516V878H1820.64V858.909H1823.47V861.892H1823.72C1824.17 860.923 1824.84 860.144 1825.76 859.555C1826.67 858.959 1827.84 858.661 1829.29 858.661C1830.58 858.661 1831.71 858.926 1832.68 859.456C1833.65 859.978 1834.4 860.773 1834.94 861.842C1835.48 862.903 1835.75 864.245 1835.75 865.869V878H1832.82V866.068C1832.82 864.568 1832.43 863.4 1831.65 862.563C1830.87 861.718 1829.8 861.295 1828.44 861.295C1827.5 861.295 1826.67 861.498 1825.93 861.904C1825.2 862.31 1824.63 862.903 1824.2 863.682C1823.78 864.461 1823.57 865.405 1823.57 866.516ZM1849.11 878.398C1847.27 878.398 1845.69 877.992 1844.35 877.18C1843.03 876.359 1842 875.216 1841.28 873.749C1840.57 872.274 1840.21 870.559 1840.21 868.604C1840.21 866.648 1840.57 864.925 1841.28 863.433C1842 861.933 1843.01 860.765 1844.29 859.928C1845.58 859.083 1847.09 858.661 1848.81 858.661C1849.81 858.661 1850.79 858.826 1851.76 859.158C1852.73 859.489 1853.61 860.028 1854.41 860.773C1855.2 861.511 1855.84 862.489 1856.31 863.707C1856.78 864.925 1857.02 866.424 1857.02 868.206V869.449H1842.3V866.913H1854.04C1854.04 865.836 1853.82 864.875 1853.39 864.03C1852.97 863.185 1852.36 862.518 1851.57 862.029C1850.8 861.54 1849.88 861.295 1848.81 861.295C1847.65 861.295 1846.64 861.585 1845.78 862.165C1844.94 862.737 1844.29 863.483 1843.83 864.403C1843.38 865.322 1843.15 866.308 1843.15 867.361V869.051C1843.15 870.493 1843.4 871.715 1843.89 872.718C1844.4 873.712 1845.1 874.47 1845.99 874.992C1846.89 875.506 1847.93 875.763 1849.11 875.763C1849.88 875.763 1850.58 875.655 1851.2 875.44C1851.83 875.216 1852.37 874.884 1852.83 874.445C1853.29 873.998 1853.64 873.443 1853.89 872.78L1856.72 873.575C1856.42 874.536 1855.92 875.382 1855.22 876.111C1854.51 876.832 1853.64 877.395 1852.61 877.801C1851.57 878.199 1850.41 878.398 1849.11 878.398ZM1864.41 852.545V878H1861.48V852.545H1864.41ZM1883.31 863.185L1880.67 863.93C1880.51 863.491 1880.26 863.065 1879.94 862.65C1879.63 862.228 1879.19 861.88 1878.65 861.606C1878.1 861.333 1877.4 861.196 1876.55 861.196C1875.38 861.196 1874.41 861.465 1873.63 862.004C1872.86 862.534 1872.47 863.21 1872.47 864.03C1872.47 864.759 1872.74 865.335 1873.27 865.757C1873.8 866.18 1874.62 866.532 1875.75 866.814L1878.59 867.51C1880.29 867.924 1881.56 868.558 1882.4 869.412C1883.24 870.257 1883.66 871.346 1883.66 872.68C1883.66 873.774 1883.34 874.752 1882.71 875.614C1882.09 876.475 1881.22 877.155 1880.1 877.652C1878.98 878.149 1877.68 878.398 1876.2 878.398C1874.25 878.398 1872.64 877.975 1871.36 877.13C1870.09 876.285 1869.28 875.05 1868.94 873.426L1871.72 872.73C1871.99 873.758 1872.49 874.528 1873.23 875.042C1873.97 875.556 1874.95 875.812 1876.15 875.812C1877.52 875.812 1878.6 875.522 1879.41 874.942C1880.22 874.354 1880.62 873.65 1880.62 872.83C1880.62 872.167 1880.39 871.612 1879.93 871.164C1879.46 870.708 1878.75 870.369 1877.79 870.145L1874.61 869.399C1872.86 868.985 1871.58 868.343 1870.76 867.473C1869.94 866.594 1869.54 865.496 1869.54 864.179C1869.54 863.102 1869.84 862.149 1870.44 861.32C1871.06 860.492 1871.89 859.841 1872.94 859.369C1874 858.897 1875.2 858.661 1876.55 858.661C1878.44 858.661 1879.92 859.075 1881 859.903C1882.08 860.732 1882.85 861.826 1883.31 863.185Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"HoshinKarni\" className=\"map-btn\" onClick={ClickHandler(\"HoshinKarni\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 18\"\r\n x=\"1360.5\"\r\n y=\"1477.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Hoshin Kanri\"\r\n d=\"M1404.21 1555V1529.55H1407.3V1540.88H1420.87V1529.55H1423.95V1555H1420.87V1543.62H1407.3V1555H1404.21ZM1437.48 1555.4C1435.76 1555.4 1434.25 1554.99 1432.94 1554.17C1431.65 1553.35 1430.64 1552.2 1429.91 1550.72C1429.19 1549.25 1428.83 1547.53 1428.83 1545.55C1428.83 1543.57 1429.19 1541.83 1429.91 1540.35C1430.64 1538.86 1431.65 1537.71 1432.94 1536.89C1434.25 1536.07 1435.76 1535.66 1437.48 1535.66C1439.2 1535.66 1440.71 1536.07 1442.01 1536.89C1443.31 1537.71 1444.32 1538.86 1445.04 1540.35C1445.77 1541.83 1446.13 1543.57 1446.13 1545.55C1446.13 1547.53 1445.77 1549.25 1445.04 1550.72C1444.32 1552.2 1443.31 1553.35 1442.01 1554.17C1440.71 1554.99 1439.2 1555.4 1437.48 1555.4ZM1437.48 1552.76C1438.79 1552.76 1439.87 1552.43 1440.71 1551.76C1441.56 1551.08 1442.18 1550.2 1442.59 1549.11C1443 1548.01 1443.2 1546.83 1443.2 1545.55C1443.2 1544.28 1443 1543.09 1442.59 1541.99C1442.18 1540.88 1441.56 1539.99 1440.71 1539.31C1439.87 1538.64 1438.79 1538.3 1437.48 1538.3C1436.17 1538.3 1435.09 1538.64 1434.25 1539.31C1433.4 1539.99 1432.78 1540.88 1432.37 1541.99C1431.97 1543.09 1431.76 1544.28 1431.76 1545.55C1431.76 1546.83 1431.97 1548.01 1432.37 1549.11C1432.78 1550.2 1433.4 1551.08 1434.25 1551.76C1435.09 1552.43 1436.17 1552.76 1437.48 1552.76ZM1464.13 1540.18L1461.5 1540.93C1461.33 1540.49 1461.09 1540.06 1460.76 1539.65C1460.45 1539.23 1460.02 1538.88 1459.47 1538.61C1458.92 1538.33 1458.22 1538.2 1457.37 1538.2C1456.2 1538.2 1455.23 1538.47 1454.45 1539C1453.68 1539.53 1453.29 1540.21 1453.29 1541.03C1453.29 1541.76 1453.56 1542.33 1454.09 1542.76C1454.62 1543.18 1455.45 1543.53 1456.57 1543.81L1459.41 1544.51C1461.12 1544.92 1462.39 1545.56 1463.22 1546.41C1464.06 1547.26 1464.48 1548.35 1464.48 1549.68C1464.48 1550.77 1464.16 1551.75 1463.54 1552.61C1462.91 1553.48 1462.04 1554.15 1460.93 1554.65C1459.81 1555.15 1458.51 1555.4 1457.02 1555.4C1455.08 1555.4 1453.46 1554.98 1452.19 1554.13C1450.91 1553.28 1450.1 1552.05 1449.76 1550.43L1452.55 1549.73C1452.81 1550.76 1453.31 1551.53 1454.05 1552.04C1454.8 1552.56 1455.77 1552.81 1456.97 1552.81C1458.34 1552.81 1459.43 1552.52 1460.23 1551.94C1461.04 1551.35 1461.45 1550.65 1461.45 1549.83C1461.45 1549.17 1461.22 1548.61 1460.75 1548.16C1460.29 1547.71 1459.57 1547.37 1458.61 1547.14L1455.43 1546.4C1453.68 1545.98 1452.4 1545.34 1451.58 1544.47C1450.77 1543.59 1450.36 1542.5 1450.36 1541.18C1450.36 1540.1 1450.66 1539.15 1451.27 1538.32C1451.88 1537.49 1452.71 1536.84 1453.77 1536.37C1454.83 1535.9 1456.03 1535.66 1457.37 1535.66C1459.26 1535.66 1460.74 1536.07 1461.82 1536.9C1462.91 1537.73 1463.68 1538.83 1464.13 1540.18ZM1471.83 1543.52V1555H1468.9V1529.55H1471.83V1538.89H1472.08C1472.52 1537.91 1473.2 1537.12 1474.09 1536.54C1474.99 1535.95 1476.2 1535.66 1477.69 1535.66C1479 1535.66 1480.14 1535.92 1481.11 1536.44C1482.09 1536.96 1482.85 1537.75 1483.39 1538.82C1483.93 1539.88 1484.21 1541.23 1484.21 1542.87V1555H1481.27V1543.07C1481.27 1541.55 1480.88 1540.38 1480.09 1539.55C1479.31 1538.71 1478.23 1538.3 1476.85 1538.3C1475.89 1538.3 1475.03 1538.5 1474.26 1538.9C1473.51 1539.31 1472.91 1539.9 1472.47 1540.68C1472.04 1541.46 1471.83 1542.41 1471.83 1543.52ZM1489.57 1555V1535.91H1492.51V1555H1489.57ZM1491.07 1532.73C1490.49 1532.73 1490 1532.53 1489.59 1532.14C1489.18 1531.75 1488.98 1531.29 1488.98 1530.74C1488.98 1530.19 1489.18 1529.72 1489.59 1529.33C1490 1528.94 1490.49 1528.75 1491.07 1528.75C1491.64 1528.75 1492.13 1528.94 1492.53 1529.33C1492.95 1529.72 1493.15 1530.19 1493.15 1530.74C1493.15 1531.29 1492.95 1531.75 1492.53 1532.14C1492.13 1532.53 1491.64 1532.73 1491.07 1532.73ZM1500.81 1543.52V1555H1497.88V1535.91H1500.71V1538.89H1500.96C1501.41 1537.92 1502.09 1537.14 1503 1536.56C1503.91 1535.96 1505.09 1535.66 1506.53 1535.66C1507.82 1535.66 1508.95 1535.93 1509.92 1536.46C1510.89 1536.98 1511.65 1537.77 1512.19 1538.84C1512.72 1539.9 1512.99 1541.25 1512.99 1542.87V1555H1510.06V1543.07C1510.06 1541.57 1509.67 1540.4 1508.89 1539.56C1508.11 1538.72 1507.04 1538.3 1505.68 1538.3C1504.75 1538.3 1503.91 1538.5 1503.17 1538.9C1502.45 1539.31 1501.87 1539.9 1501.45 1540.68C1501.02 1541.46 1500.81 1542.41 1500.81 1543.52ZM1528.59 1555V1529.55H1531.68V1542.17H1531.98L1543.41 1529.55H1547.44L1536.75 1541.03L1547.44 1555H1543.71L1534.86 1543.17L1531.68 1546.75V1555H1528.59ZM1556.65 1555.45C1555.44 1555.45 1554.34 1555.22 1553.35 1554.76C1552.37 1554.3 1551.58 1553.63 1551 1552.76C1550.42 1551.88 1550.13 1550.82 1550.13 1549.58C1550.13 1548.49 1550.35 1547.6 1550.78 1546.92C1551.21 1546.23 1551.79 1545.69 1552.51 1545.31C1553.23 1544.92 1554.02 1544.63 1554.89 1544.44C1555.77 1544.24 1556.66 1544.08 1557.54 1543.96C1558.7 1543.81 1559.64 1543.7 1560.36 1543.63C1561.09 1543.54 1561.62 1543.41 1561.95 1543.22C1562.29 1543.03 1562.46 1542.7 1562.46 1542.22V1542.12C1562.46 1540.9 1562.13 1539.94 1561.46 1539.26C1560.79 1538.59 1559.79 1538.25 1558.44 1538.25C1557.04 1538.25 1555.94 1538.55 1555.14 1539.17C1554.35 1539.78 1553.79 1540.43 1553.46 1541.13L1550.68 1540.13C1551.18 1538.97 1551.84 1538.07 1552.67 1537.43C1553.51 1536.77 1554.42 1536.32 1555.4 1536.06C1556.4 1535.79 1557.38 1535.66 1558.34 1535.66C1558.95 1535.66 1559.65 1535.74 1560.45 1535.88C1561.25 1536.03 1562.03 1536.32 1562.77 1536.77C1563.53 1537.21 1564.15 1537.89 1564.65 1538.79C1565.15 1539.7 1565.4 1540.91 1565.4 1542.42V1555H1562.46V1552.41H1562.31C1562.12 1552.83 1561.78 1553.27 1561.32 1553.74C1560.86 1554.22 1560.24 1554.62 1559.47 1554.95C1558.7 1555.28 1557.76 1555.45 1556.65 1555.45ZM1557.09 1552.81C1558.25 1552.81 1559.23 1552.58 1560.03 1552.13C1560.83 1551.67 1561.44 1551.08 1561.84 1550.36C1562.26 1549.64 1562.46 1548.88 1562.46 1548.09V1545.4C1562.34 1545.55 1562.07 1545.69 1561.64 1545.81C1561.23 1545.93 1560.75 1546.03 1560.2 1546.13C1559.66 1546.21 1559.14 1546.28 1558.62 1546.35C1558.12 1546.41 1557.71 1546.46 1557.39 1546.5C1556.63 1546.6 1555.92 1546.76 1555.25 1546.98C1554.6 1547.2 1554.07 1547.53 1553.66 1547.97C1553.27 1548.4 1553.07 1548.98 1553.07 1549.73C1553.07 1550.75 1553.44 1551.52 1554.2 1552.04C1554.96 1552.56 1555.93 1552.81 1557.09 1552.81ZM1573.68 1543.52V1555H1570.75V1535.91H1573.58V1538.89H1573.83C1574.28 1537.92 1574.96 1537.14 1575.87 1536.56C1576.78 1535.96 1577.96 1535.66 1579.4 1535.66C1580.69 1535.66 1581.82 1535.93 1582.79 1536.46C1583.76 1536.98 1584.52 1537.77 1585.06 1538.84C1585.59 1539.9 1585.86 1541.25 1585.86 1542.87V1555H1582.93V1543.07C1582.93 1541.57 1582.54 1540.4 1581.76 1539.56C1580.98 1538.72 1579.91 1538.3 1578.56 1538.3C1577.62 1538.3 1576.78 1538.5 1576.05 1538.9C1575.32 1539.31 1574.74 1539.9 1574.32 1540.68C1573.9 1541.46 1573.68 1542.41 1573.68 1543.52ZM1591.22 1555V1535.91H1594.06V1538.79H1594.26C1594.6 1537.85 1595.23 1537.08 1596.15 1536.49C1597.06 1535.9 1598.09 1535.61 1599.23 1535.61C1599.44 1535.61 1599.71 1535.61 1600.04 1535.62C1600.36 1535.63 1600.6 1535.64 1600.77 1535.66V1538.64C1600.67 1538.62 1600.44 1538.58 1600.09 1538.53C1599.74 1538.47 1599.37 1538.44 1598.98 1538.44C1598.05 1538.44 1597.22 1538.64 1596.49 1539.03C1595.77 1539.41 1595.2 1539.94 1594.78 1540.62C1594.36 1541.29 1594.16 1542.06 1594.16 1542.92V1555H1591.22ZM1604.25 1555V1535.91H1607.18V1555H1604.25ZM1605.74 1532.73C1605.17 1532.73 1604.67 1532.53 1604.26 1532.14C1603.85 1531.75 1603.65 1531.29 1603.65 1530.74C1603.65 1530.19 1603.85 1529.72 1604.26 1529.33C1604.67 1528.94 1605.17 1528.75 1605.74 1528.75C1606.31 1528.75 1606.8 1528.94 1607.2 1529.33C1607.62 1529.72 1607.83 1530.19 1607.83 1530.74C1607.83 1531.29 1607.62 1531.75 1607.2 1532.14C1606.8 1532.53 1606.31 1532.73 1605.74 1532.73Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"7sModel\" className=\"map-btn\" onClick={ClickHandler(\"7sModel\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 17\"\r\n x=\"1074.5\"\r\n y=\"1626.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"7-S Model\"\r\n d=\"M1137.58 1704L1148.97 1681.48V1681.28H1135.84V1678.55H1152.15V1681.43L1140.82 1704H1137.58ZM1167.77 1689.91V1692.64H1156.63V1689.91H1167.77ZM1187.25 1684.91C1187.1 1683.65 1186.5 1682.67 1185.44 1681.98C1184.37 1681.28 1183.07 1680.93 1181.53 1680.93C1180.41 1680.93 1179.42 1681.11 1178.57 1681.48C1177.74 1681.84 1177.08 1682.34 1176.61 1682.98C1176.15 1683.62 1175.91 1684.35 1175.91 1685.16C1175.91 1685.84 1176.08 1686.42 1176.4 1686.91C1176.73 1687.39 1177.15 1687.79 1177.67 1688.12C1178.18 1688.43 1178.72 1688.69 1179.28 1688.9C1179.85 1689.1 1180.36 1689.26 1180.84 1689.38L1183.42 1690.08C1184.08 1690.25 1184.82 1690.49 1185.63 1690.8C1186.45 1691.11 1187.24 1691.53 1187.98 1692.06C1188.74 1692.58 1189.36 1693.25 1189.85 1694.07C1190.34 1694.89 1190.58 1695.9 1190.58 1697.09C1190.58 1698.46 1190.22 1699.71 1189.5 1700.82C1188.79 1701.93 1187.74 1702.81 1186.37 1703.47C1185 1704.12 1183.34 1704.45 1181.38 1704.45C1179.56 1704.45 1177.98 1704.15 1176.65 1703.56C1175.32 1702.98 1174.28 1702.16 1173.52 1701.1C1172.76 1700.05 1172.34 1698.83 1172.24 1697.44H1175.42C1175.5 1698.4 1175.82 1699.19 1176.39 1699.82C1176.96 1700.45 1177.68 1700.91 1178.55 1701.22C1179.43 1701.51 1180.37 1701.66 1181.38 1701.66C1182.56 1701.66 1183.62 1701.47 1184.55 1701.09C1185.49 1700.7 1186.23 1700.16 1186.78 1699.48C1187.32 1698.78 1187.6 1697.97 1187.6 1697.04C1187.6 1696.19 1187.36 1695.51 1186.89 1694.98C1186.42 1694.45 1185.8 1694.02 1185.03 1693.68C1184.25 1693.35 1183.42 1693.06 1182.53 1692.81L1179.39 1691.92C1177.41 1691.35 1175.83 1690.53 1174.67 1689.47C1173.51 1688.41 1172.93 1687.02 1172.93 1685.31C1172.93 1683.88 1173.32 1682.64 1174.09 1681.58C1174.87 1680.51 1175.91 1679.68 1177.22 1679.09C1178.54 1678.5 1180.01 1678.2 1181.63 1678.2C1183.27 1678.2 1184.73 1678.49 1186.01 1679.08C1187.28 1679.66 1188.29 1680.46 1189.04 1681.47C1189.79 1682.48 1190.19 1683.62 1190.23 1684.91H1187.25ZM1205.49 1678.55H1209.17L1217.82 1699.67H1218.12L1226.77 1678.55H1230.45V1704H1227.57V1684.66H1227.32L1219.36 1704H1216.58L1208.62 1684.66H1208.38V1704H1205.49V1678.55ZM1243.99 1704.4C1242.26 1704.4 1240.75 1703.99 1239.45 1703.17C1238.16 1702.35 1237.15 1701.2 1236.42 1699.72C1235.7 1698.25 1235.34 1696.53 1235.34 1694.55C1235.34 1692.57 1235.7 1690.83 1236.42 1689.35C1237.15 1687.86 1238.16 1686.71 1239.45 1685.89C1240.75 1685.07 1242.26 1684.66 1243.99 1684.66C1245.71 1684.66 1247.22 1685.07 1248.51 1685.89C1249.81 1686.71 1250.82 1687.86 1251.55 1689.35C1252.27 1690.83 1252.64 1692.57 1252.64 1694.55C1252.64 1696.53 1252.27 1698.25 1251.55 1699.72C1250.82 1701.2 1249.81 1702.35 1248.51 1703.17C1247.22 1703.99 1245.71 1704.4 1243.99 1704.4ZM1243.99 1701.76C1245.3 1701.76 1246.37 1701.43 1247.22 1700.76C1248.06 1700.08 1248.69 1699.2 1249.1 1698.11C1249.5 1697.01 1249.71 1695.83 1249.71 1694.55C1249.71 1693.28 1249.5 1692.09 1249.1 1690.99C1248.69 1689.88 1248.06 1688.99 1247.22 1688.31C1246.37 1687.64 1245.3 1687.3 1243.99 1687.3C1242.68 1687.3 1241.6 1687.64 1240.76 1688.31C1239.91 1688.99 1239.29 1689.88 1238.88 1690.99C1238.47 1692.09 1238.27 1693.28 1238.27 1694.55C1238.27 1695.83 1238.47 1697.01 1238.88 1698.11C1239.29 1699.2 1239.91 1700.08 1240.76 1700.76C1241.6 1701.43 1242.68 1701.76 1243.99 1701.76ZM1264.33 1704.4C1262.73 1704.4 1261.33 1704 1260.11 1703.19C1258.89 1702.38 1257.94 1701.24 1257.25 1699.76C1256.57 1698.28 1256.22 1696.53 1256.22 1694.5C1256.22 1692.5 1256.57 1690.76 1257.25 1689.28C1257.94 1687.81 1258.9 1686.67 1260.12 1685.87C1261.35 1685.06 1262.77 1684.66 1264.37 1684.66C1265.62 1684.66 1266.6 1684.87 1267.32 1685.28C1268.05 1685.69 1268.6 1686.15 1268.99 1686.67C1269.38 1687.19 1269.68 1687.61 1269.89 1687.94H1270.14V1678.55H1273.08V1704H1270.24V1701.07H1269.89C1269.68 1701.41 1269.37 1701.85 1268.97 1702.38C1268.58 1702.91 1268.01 1703.37 1267.27 1703.79C1266.53 1704.19 1265.55 1704.4 1264.33 1704.4ZM1264.72 1701.76C1265.9 1701.76 1266.89 1701.46 1267.71 1700.84C1268.52 1700.22 1269.14 1699.36 1269.56 1698.27C1269.98 1697.17 1270.19 1695.9 1270.19 1694.45C1270.19 1693.03 1269.98 1691.78 1269.57 1690.71C1269.16 1689.64 1268.54 1688.8 1267.73 1688.2C1266.92 1687.6 1265.92 1687.3 1264.72 1687.3C1263.48 1687.3 1262.44 1687.61 1261.62 1688.25C1260.8 1688.88 1260.18 1689.74 1259.76 1690.83C1259.36 1691.9 1259.15 1693.11 1259.15 1694.45C1259.15 1695.81 1259.36 1697.05 1259.78 1698.16C1260.2 1699.26 1260.82 1700.14 1261.64 1700.79C1262.47 1701.44 1263.5 1701.76 1264.72 1701.76ZM1286.86 1704.4C1285.02 1704.4 1283.43 1703.99 1282.1 1703.18C1280.77 1702.36 1279.75 1701.22 1279.03 1699.75C1278.32 1698.27 1277.96 1696.56 1277.96 1694.6C1277.96 1692.65 1278.32 1690.92 1279.03 1689.43C1279.75 1687.93 1280.75 1686.77 1282.04 1685.93C1283.33 1685.08 1284.84 1684.66 1286.56 1684.66C1287.55 1684.66 1288.54 1684.83 1289.51 1685.16C1290.48 1685.49 1291.36 1686.03 1292.15 1686.77C1292.95 1687.51 1293.58 1688.49 1294.06 1689.71C1294.53 1690.92 1294.76 1692.42 1294.76 1694.21V1695.45H1280.05V1692.91H1291.78C1291.78 1691.84 1291.57 1690.87 1291.13 1690.03C1290.71 1689.18 1290.11 1688.52 1289.32 1688.03C1288.54 1687.54 1287.62 1687.3 1286.56 1687.3C1285.39 1687.3 1284.38 1687.59 1283.53 1688.17C1282.68 1688.74 1282.03 1689.48 1281.58 1690.4C1281.12 1691.32 1280.89 1692.31 1280.89 1693.36V1695.05C1280.89 1696.49 1281.14 1697.72 1281.64 1698.72C1282.14 1699.71 1282.84 1700.47 1283.74 1700.99C1284.63 1701.51 1285.67 1701.76 1286.86 1701.76C1287.63 1701.76 1288.33 1701.66 1288.95 1701.44C1289.58 1701.22 1290.12 1700.88 1290.58 1700.45C1291.03 1700 1291.38 1699.44 1291.63 1698.78L1294.47 1699.58C1294.17 1700.54 1293.67 1701.38 1292.96 1702.11C1292.26 1702.83 1291.39 1703.4 1290.35 1703.8C1289.32 1704.2 1288.15 1704.4 1286.86 1704.4ZM1302.16 1678.55V1704H1299.23V1678.55H1302.16Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"BalancedScorecard\" className=\"map-btn\" onClick={ClickHandler(\"BalancedScorecard\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 16\"\r\n x=\"789.5\"\r\n y=\"1477.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Balanced Scorecard\"\r\n d=\"M861.259 1534V1508.55H870.158C871.931 1508.55 873.394 1508.85 874.546 1509.47C875.697 1510.07 876.555 1510.89 877.119 1511.91C877.682 1512.93 877.964 1514.06 877.964 1515.31C877.964 1516.4 877.769 1517.3 877.38 1518.02C876.998 1518.73 876.493 1519.29 875.863 1519.71C875.242 1520.12 874.566 1520.43 873.837 1520.63V1520.88C874.616 1520.92 875.399 1521.2 876.186 1521.7C876.974 1522.19 877.632 1522.91 878.163 1523.83C878.693 1524.76 878.958 1525.9 878.958 1527.24C878.958 1528.51 878.668 1529.66 878.088 1530.68C877.508 1531.7 876.592 1532.51 875.341 1533.11C874.09 1533.7 872.462 1534 870.457 1534H861.259ZM864.342 1531.27H870.457C872.47 1531.27 873.899 1530.88 874.745 1530.1C875.598 1529.31 876.025 1528.36 876.025 1527.24C876.025 1526.38 875.805 1525.58 875.366 1524.85C874.927 1524.11 874.301 1523.53 873.489 1523.09C872.677 1522.64 871.716 1522.42 870.606 1522.42H864.342V1531.27ZM864.342 1519.73H870.059C870.987 1519.73 871.824 1519.55 872.57 1519.18C873.324 1518.82 873.92 1518.31 874.359 1517.64C874.807 1516.98 875.03 1516.2 875.03 1515.31C875.03 1514.19 874.641 1513.24 873.862 1512.46C873.083 1511.67 871.849 1511.28 870.158 1511.28H864.342V1519.73ZM889.243 1534.45C888.033 1534.45 886.935 1534.22 885.949 1533.76C884.963 1533.3 884.18 1532.63 883.6 1531.76C883.02 1530.88 882.73 1529.82 882.73 1528.58C882.73 1527.49 882.946 1526.6 883.377 1525.92C883.807 1525.23 884.383 1524.69 885.104 1524.31C885.825 1523.92 886.62 1523.63 887.491 1523.44C888.369 1523.24 889.251 1523.08 890.138 1522.96C891.298 1522.81 892.238 1522.7 892.959 1522.63C893.688 1522.54 894.219 1522.41 894.55 1522.22C894.89 1522.03 895.06 1521.7 895.06 1521.22V1521.12C895.06 1519.9 894.724 1518.94 894.053 1518.26C893.39 1517.59 892.383 1517.25 891.033 1517.25C889.632 1517.25 888.535 1517.55 887.739 1518.17C886.944 1518.78 886.384 1519.43 886.061 1520.13L883.277 1519.13C883.774 1517.97 884.437 1517.07 885.266 1516.43C886.103 1515.77 887.014 1515.32 888 1515.06C888.994 1514.79 889.972 1514.66 890.933 1514.66C891.546 1514.66 892.251 1514.74 893.046 1514.88C893.85 1515.03 894.625 1515.32 895.37 1515.77C896.124 1516.21 896.75 1516.89 897.247 1517.79C897.744 1518.7 897.993 1519.91 897.993 1521.42V1534H895.06V1531.41H894.911C894.712 1531.83 894.38 1532.27 893.916 1532.74C893.452 1533.22 892.835 1533.62 892.064 1533.95C891.294 1534.28 890.353 1534.45 889.243 1534.45ZM889.69 1531.81C890.85 1531.81 891.828 1531.58 892.624 1531.13C893.427 1530.67 894.032 1530.08 894.438 1529.36C894.853 1528.64 895.06 1527.88 895.06 1527.09V1524.4C894.935 1524.55 894.662 1524.69 894.239 1524.81C893.825 1524.93 893.345 1525.03 892.798 1525.13C892.259 1525.21 891.733 1525.28 891.219 1525.35C890.714 1525.41 890.304 1525.46 889.989 1525.5C889.226 1525.6 888.514 1525.76 887.851 1525.98C887.196 1526.2 886.666 1526.53 886.26 1526.97C885.862 1527.4 885.663 1527.98 885.663 1528.73C885.663 1529.75 886.04 1530.52 886.794 1531.04C887.557 1531.56 888.522 1531.81 889.69 1531.81ZM906.28 1508.55V1534H903.347V1508.55H906.28ZM917.27 1534.45C916.061 1534.45 914.963 1534.22 913.977 1533.76C912.991 1533.3 912.208 1532.63 911.628 1531.76C911.048 1530.88 910.758 1529.82 910.758 1528.58C910.758 1527.49 910.973 1526.6 911.404 1525.92C911.835 1525.23 912.411 1524.69 913.131 1524.31C913.852 1523.92 914.648 1523.63 915.518 1523.44C916.396 1523.24 917.279 1523.08 918.165 1522.96C919.325 1522.81 920.266 1522.7 920.987 1522.63C921.716 1522.54 922.246 1522.41 922.578 1522.22C922.917 1522.03 923.087 1521.7 923.087 1521.22V1521.12C923.087 1519.9 922.752 1518.94 922.08 1518.26C921.417 1517.59 920.411 1517.25 919.06 1517.25C917.66 1517.25 916.562 1517.55 915.766 1518.17C914.971 1518.78 914.412 1519.43 914.089 1520.13L911.304 1519.13C911.802 1517.97 912.464 1517.07 913.293 1516.43C914.13 1515.77 915.041 1515.32 916.027 1515.06C917.022 1514.79 917.999 1514.66 918.961 1514.66C919.574 1514.66 920.278 1514.74 921.074 1514.88C921.877 1515.03 922.652 1515.32 923.398 1515.77C924.152 1516.21 924.777 1516.89 925.275 1517.79C925.772 1518.7 926.02 1519.91 926.02 1521.42V1534H923.087V1531.41H922.938C922.739 1531.83 922.408 1532.27 921.944 1532.74C921.48 1533.22 920.862 1533.62 920.092 1533.95C919.321 1534.28 918.381 1534.45 917.27 1534.45ZM917.718 1531.81C918.878 1531.81 919.856 1531.58 920.651 1531.13C921.455 1530.67 922.06 1530.08 922.466 1529.36C922.88 1528.64 923.087 1527.88 923.087 1527.09V1524.4C922.963 1524.55 922.689 1524.69 922.267 1524.81C921.852 1524.93 921.372 1525.03 920.825 1525.13C920.286 1525.21 919.76 1525.28 919.247 1525.35C918.741 1525.41 918.331 1525.46 918.016 1525.5C917.254 1525.6 916.541 1525.76 915.878 1525.98C915.224 1526.2 914.693 1526.53 914.287 1526.97C913.89 1527.4 913.691 1527.98 913.691 1528.73C913.691 1529.75 914.068 1530.52 914.822 1531.04C915.584 1531.56 916.549 1531.81 917.718 1531.81ZM934.307 1522.52V1534H931.374V1514.91H934.208V1517.89H934.456C934.904 1516.92 935.583 1516.14 936.495 1515.56C937.406 1514.96 938.583 1514.66 940.025 1514.66C941.317 1514.66 942.448 1514.93 943.418 1515.46C944.387 1515.98 945.141 1516.77 945.68 1517.84C946.218 1518.9 946.488 1520.25 946.488 1521.87V1534H943.555V1522.07C943.555 1520.57 943.165 1519.4 942.386 1518.56C941.607 1517.72 940.538 1517.3 939.18 1517.3C938.243 1517.3 937.406 1517.5 936.669 1517.9C935.94 1518.31 935.364 1518.9 934.941 1519.68C934.519 1520.46 934.307 1521.41 934.307 1522.52ZM959.603 1534.4C957.814 1534.4 956.272 1533.98 954.98 1533.13C953.687 1532.28 952.693 1531.12 951.997 1529.64C951.301 1528.15 950.953 1526.46 950.953 1524.55C950.953 1522.62 951.309 1520.9 952.022 1519.42C952.743 1517.93 953.745 1516.77 955.03 1515.93C956.322 1515.08 957.83 1514.66 959.554 1514.66C960.896 1514.66 962.106 1514.91 963.183 1515.41C964.26 1515.9 965.143 1516.6 965.83 1517.49C966.518 1518.39 966.945 1519.43 967.111 1520.63H964.177C963.954 1519.76 963.456 1518.99 962.686 1518.31C961.924 1517.64 960.896 1517.3 959.603 1517.3C958.46 1517.3 957.457 1517.59 956.596 1518.19C955.742 1518.78 955.075 1519.61 954.595 1520.69C954.122 1521.76 953.886 1523.01 953.886 1524.45C953.886 1525.93 954.118 1527.21 954.582 1528.31C955.054 1529.4 955.717 1530.25 956.571 1530.86C957.432 1531.46 958.443 1531.76 959.603 1531.76C960.366 1531.76 961.058 1531.63 961.679 1531.37C962.301 1531.1 962.827 1530.72 963.258 1530.22C963.688 1529.72 963.995 1529.13 964.177 1528.43H967.111C966.945 1529.56 966.535 1530.57 965.88 1531.48C965.234 1532.37 964.376 1533.08 963.307 1533.61C962.247 1534.14 961.012 1534.4 959.603 1534.4ZM979.403 1534.4C977.563 1534.4 975.977 1533.99 974.642 1533.18C973.317 1532.36 972.293 1531.22 971.573 1529.75C970.86 1528.27 970.504 1526.56 970.504 1524.6C970.504 1522.65 970.86 1520.92 971.573 1519.43C972.293 1517.93 973.296 1516.77 974.58 1515.93C975.873 1515.08 977.381 1514.66 979.104 1514.66C980.099 1514.66 981.081 1514.83 982.05 1515.16C983.02 1515.49 983.902 1516.03 984.698 1516.77C985.493 1517.51 986.127 1518.49 986.599 1519.71C987.071 1520.92 987.308 1522.42 987.308 1524.21V1525.45H972.592V1522.91H984.325C984.325 1521.84 984.109 1520.87 983.678 1520.03C983.256 1519.18 982.651 1518.52 981.864 1518.03C981.085 1517.54 980.165 1517.3 979.104 1517.3C977.936 1517.3 976.925 1517.59 976.072 1518.17C975.227 1518.74 974.576 1519.48 974.12 1520.4C973.665 1521.32 973.437 1522.31 973.437 1523.36V1525.05C973.437 1526.49 973.685 1527.72 974.183 1528.72C974.688 1529.71 975.388 1530.47 976.283 1530.99C977.178 1531.51 978.218 1531.76 979.403 1531.76C980.173 1531.76 980.869 1531.66 981.491 1531.44C982.121 1531.22 982.663 1530.88 983.119 1530.45C983.575 1530 983.927 1529.44 984.176 1528.78L987.009 1529.58C986.711 1530.54 986.21 1531.38 985.505 1532.11C984.801 1532.83 983.931 1533.4 982.895 1533.8C981.86 1534.2 980.695 1534.4 979.403 1534.4ZM998.978 1534.4C997.388 1534.4 995.983 1534 994.765 1533.19C993.547 1532.38 992.594 1531.24 991.906 1529.76C991.219 1528.28 990.875 1526.53 990.875 1524.5C990.875 1522.5 991.219 1520.76 991.906 1519.28C992.594 1517.81 993.551 1516.67 994.777 1515.87C996.004 1515.06 997.421 1514.66 999.028 1514.66C1000.27 1514.66 1001.25 1514.87 1001.97 1515.28C1002.7 1515.69 1003.26 1516.15 1003.64 1516.67C1004.03 1517.19 1004.33 1517.61 1004.55 1517.94H1004.8V1508.55H1007.73V1534H1004.89V1531.07H1004.55C1004.33 1531.41 1004.02 1531.85 1003.63 1532.38C1003.23 1532.91 1002.66 1533.37 1001.92 1533.79C1001.19 1534.19 1000.2 1534.4 998.978 1534.4ZM999.376 1531.76C1000.55 1531.76 1001.55 1531.46 1002.36 1530.84C1003.17 1530.22 1003.79 1529.36 1004.21 1528.27C1004.63 1527.17 1004.84 1525.9 1004.84 1524.45C1004.84 1523.03 1004.64 1521.78 1004.22 1520.71C1003.81 1519.64 1003.2 1518.8 1002.38 1518.2C1001.57 1517.6 1000.57 1517.3 999.376 1517.3C998.133 1517.3 997.098 1517.61 996.269 1518.25C995.449 1518.88 994.831 1519.74 994.417 1520.83C994.011 1521.9 993.808 1523.11 993.808 1524.45C993.808 1525.81 994.015 1527.05 994.429 1528.16C994.852 1529.26 995.473 1530.14 996.294 1530.79C997.122 1531.44 998.15 1531.76 999.376 1531.76ZM866.994 1556.91C866.844 1555.65 866.24 1554.67 865.179 1553.98C864.118 1553.28 862.817 1552.93 861.276 1552.93C860.149 1552.93 859.163 1553.11 858.318 1553.48C857.481 1553.84 856.827 1554.34 856.354 1554.98C855.89 1555.62 855.658 1556.35 855.658 1557.16C855.658 1557.84 855.82 1558.42 856.143 1558.91C856.475 1559.39 856.897 1559.79 857.411 1560.12C857.925 1560.43 858.463 1560.69 859.027 1560.9C859.59 1561.1 860.108 1561.26 860.58 1561.38L863.165 1562.08C863.828 1562.25 864.566 1562.49 865.378 1562.8C866.198 1563.11 866.981 1563.53 867.727 1564.06C868.481 1564.58 869.102 1565.25 869.591 1566.07C870.08 1566.89 870.325 1567.9 870.325 1569.09C870.325 1570.46 869.964 1571.71 869.243 1572.82C868.531 1573.93 867.487 1574.81 866.111 1575.47C864.744 1576.12 863.083 1576.45 861.127 1576.45C859.304 1576.45 857.726 1576.15 856.392 1575.56C855.066 1574.98 854.022 1574.16 853.26 1573.1C852.506 1572.05 852.079 1570.83 851.979 1569.44H855.161C855.244 1570.4 855.567 1571.19 856.131 1571.82C856.702 1572.45 857.423 1572.91 858.293 1573.22C859.172 1573.51 860.116 1573.66 861.127 1573.66C862.304 1573.66 863.36 1573.47 864.296 1573.09C865.233 1572.7 865.974 1572.16 866.521 1571.48C867.068 1570.78 867.342 1569.97 867.342 1569.04C867.342 1568.19 867.105 1567.51 866.633 1566.98C866.161 1566.45 865.539 1566.02 864.769 1565.68C863.998 1565.35 863.165 1565.06 862.271 1564.81L859.138 1563.92C857.15 1563.35 855.575 1562.53 854.415 1561.47C853.255 1560.41 852.675 1559.02 852.675 1557.31C852.675 1555.88 853.061 1554.64 853.831 1553.58C854.61 1552.51 855.654 1551.68 856.963 1551.09C858.281 1550.5 859.752 1550.2 861.376 1550.2C863.016 1550.2 864.475 1550.49 865.751 1551.08C867.027 1551.66 868.038 1552.46 868.783 1553.47C869.537 1554.48 869.935 1555.62 869.977 1556.91H866.994ZM882.75 1576.4C880.961 1576.4 879.419 1575.98 878.127 1575.13C876.834 1574.28 875.84 1573.12 875.144 1571.64C874.448 1570.15 874.1 1568.46 874.1 1566.55C874.1 1564.62 874.456 1562.9 875.169 1561.42C875.89 1559.93 876.892 1558.77 878.177 1557.93C879.469 1557.08 880.977 1556.66 882.701 1556.66C884.043 1556.66 885.253 1556.91 886.33 1557.41C887.407 1557.9 888.29 1558.6 888.977 1559.49C889.665 1560.39 890.092 1561.43 890.258 1562.63H887.324C887.101 1561.76 886.603 1560.99 885.833 1560.31C885.07 1559.64 884.043 1559.3 882.75 1559.3C881.607 1559.3 880.604 1559.59 879.743 1560.19C878.889 1560.78 878.222 1561.61 877.742 1562.69C877.269 1563.76 877.033 1565.01 877.033 1566.45C877.033 1567.93 877.265 1569.21 877.729 1570.31C878.201 1571.4 878.864 1572.25 879.718 1572.86C880.579 1573.46 881.59 1573.76 882.75 1573.76C883.513 1573.76 884.205 1573.63 884.826 1573.37C885.447 1573.1 885.974 1572.72 886.405 1572.22C886.835 1571.72 887.142 1571.13 887.324 1570.43H890.258C890.092 1571.56 889.682 1572.57 889.027 1573.48C888.381 1574.37 887.523 1575.08 886.454 1575.61C885.394 1576.14 884.159 1576.4 882.75 1576.4ZM902.301 1576.4C900.578 1576.4 899.066 1575.99 897.765 1575.17C896.472 1574.35 895.461 1573.2 894.732 1571.72C894.011 1570.25 893.651 1568.53 893.651 1566.55C893.651 1564.57 894.011 1562.83 894.732 1561.35C895.461 1559.86 896.472 1558.71 897.765 1557.89C899.066 1557.07 900.578 1556.66 902.301 1556.66C904.025 1556.66 905.533 1557.07 906.825 1557.89C908.126 1558.71 909.137 1559.86 909.858 1561.35C910.587 1562.83 910.952 1564.57 910.952 1566.55C910.952 1568.53 910.587 1570.25 909.858 1571.72C909.137 1573.2 908.126 1574.35 906.825 1575.17C905.533 1575.99 904.025 1576.4 902.301 1576.4ZM902.301 1573.76C903.61 1573.76 904.688 1573.43 905.533 1572.76C906.378 1572.08 907.003 1571.2 907.409 1570.11C907.816 1569.01 908.019 1567.83 908.019 1566.55C908.019 1565.28 907.816 1564.09 907.409 1562.99C907.003 1561.88 906.378 1560.99 905.533 1560.31C904.688 1559.64 903.61 1559.3 902.301 1559.3C900.992 1559.3 899.915 1559.64 899.07 1560.31C898.224 1560.99 897.599 1561.88 897.193 1562.99C896.787 1564.09 896.584 1565.28 896.584 1566.55C896.584 1567.83 896.787 1569.01 897.193 1570.11C897.599 1571.2 898.224 1572.08 899.07 1572.76C899.915 1573.43 900.992 1573.76 902.301 1573.76ZM915.429 1576V1556.91H918.263V1559.79H918.462C918.81 1558.85 919.44 1558.08 920.351 1557.49C921.263 1556.9 922.29 1556.61 923.434 1556.61C923.649 1556.61 923.918 1556.61 924.241 1556.62C924.565 1556.63 924.809 1556.64 924.975 1556.66V1559.64C924.875 1559.62 924.647 1559.58 924.291 1559.53C923.943 1559.47 923.574 1559.44 923.185 1559.44C922.257 1559.44 921.428 1559.64 920.699 1560.03C919.978 1560.41 919.407 1560.94 918.984 1561.62C918.57 1562.29 918.363 1563.06 918.363 1563.92V1576H915.429ZM935.875 1576.4C934.035 1576.4 932.449 1575.99 931.115 1575.18C929.789 1574.36 928.766 1573.22 928.045 1571.75C927.332 1570.27 926.976 1568.56 926.976 1566.6C926.976 1564.65 927.332 1562.92 928.045 1561.43C928.766 1559.93 929.768 1558.77 931.053 1557.93C932.345 1557.08 933.853 1556.66 935.577 1556.66C936.571 1556.66 937.553 1556.83 938.522 1557.16C939.492 1557.49 940.374 1558.03 941.17 1558.77C941.965 1559.51 942.599 1560.49 943.071 1561.71C943.544 1562.92 943.78 1564.42 943.78 1566.21V1567.45H929.064V1564.91H940.797C940.797 1563.84 940.581 1562.87 940.151 1562.03C939.728 1561.18 939.123 1560.52 938.336 1560.03C937.557 1559.54 936.637 1559.3 935.577 1559.3C934.408 1559.3 933.397 1559.59 932.544 1560.17C931.699 1560.74 931.048 1561.48 930.593 1562.4C930.137 1563.32 929.909 1564.31 929.909 1565.36V1567.05C929.909 1568.49 930.158 1569.72 930.655 1570.72C931.16 1571.71 931.86 1572.47 932.755 1572.99C933.65 1573.51 934.69 1573.76 935.875 1573.76C936.646 1573.76 937.342 1573.66 937.963 1573.44C938.593 1573.22 939.135 1572.88 939.591 1572.45C940.047 1572 940.399 1571.44 940.648 1570.78L943.481 1571.58C943.183 1572.54 942.682 1573.38 941.978 1574.11C941.273 1574.83 940.403 1575.4 939.367 1575.8C938.332 1576.2 937.168 1576.4 935.875 1576.4ZM955.997 1576.4C954.208 1576.4 952.667 1575.98 951.374 1575.13C950.081 1574.28 949.087 1573.12 948.391 1571.64C947.695 1570.15 947.347 1568.46 947.347 1566.55C947.347 1564.62 947.703 1562.9 948.416 1561.42C949.137 1559.93 950.139 1558.77 951.424 1557.93C952.716 1557.08 954.224 1556.66 955.948 1556.66C957.29 1556.66 958.5 1556.91 959.577 1557.41C960.654 1557.9 961.537 1558.6 962.224 1559.49C962.912 1560.39 963.339 1561.43 963.505 1562.63H960.571C960.348 1561.76 959.85 1560.99 959.08 1560.31C958.318 1559.64 957.29 1559.3 955.997 1559.3C954.854 1559.3 953.851 1559.59 952.99 1560.19C952.136 1560.78 951.469 1561.61 950.989 1562.69C950.516 1563.76 950.28 1565.01 950.28 1566.45C950.28 1567.93 950.512 1569.21 950.976 1570.31C951.448 1571.4 952.111 1572.25 952.965 1572.86C953.827 1573.46 954.837 1573.76 955.997 1573.76C956.76 1573.76 957.452 1573.63 958.073 1573.37C958.695 1573.1 959.221 1572.72 959.652 1572.22C960.082 1571.72 960.389 1571.13 960.571 1570.43H963.505C963.339 1571.56 962.929 1572.57 962.274 1573.48C961.628 1574.37 960.77 1575.08 959.701 1575.61C958.641 1576.14 957.406 1576.4 955.997 1576.4ZM973.41 1576.45C972.201 1576.45 971.103 1576.22 970.117 1575.76C969.131 1575.3 968.348 1574.63 967.768 1573.76C967.188 1572.88 966.898 1571.82 966.898 1570.58C966.898 1569.49 967.113 1568.6 967.544 1567.92C967.975 1567.23 968.551 1566.69 969.272 1566.31C969.992 1565.92 970.788 1565.63 971.658 1565.44C972.536 1565.24 973.419 1565.08 974.305 1564.96C975.465 1564.81 976.406 1564.7 977.127 1564.63C977.856 1564.54 978.386 1564.41 978.718 1564.22C979.057 1564.03 979.227 1563.7 979.227 1563.22V1563.12C979.227 1561.9 978.892 1560.94 978.22 1560.26C977.558 1559.59 976.551 1559.25 975.2 1559.25C973.8 1559.25 972.702 1559.55 971.907 1560.17C971.111 1560.78 970.552 1561.43 970.229 1562.13L967.445 1561.13C967.942 1559.97 968.605 1559.07 969.433 1558.43C970.27 1557.77 971.182 1557.32 972.168 1557.06C973.162 1556.79 974.14 1556.66 975.101 1556.66C975.714 1556.66 976.418 1556.74 977.214 1556.88C978.017 1557.03 978.792 1557.32 979.538 1557.77C980.292 1558.21 980.918 1558.89 981.415 1559.79C981.912 1560.7 982.16 1561.91 982.16 1563.42V1576H979.227V1573.41H979.078C978.879 1573.83 978.548 1574.27 978.084 1574.74C977.62 1575.22 977.002 1575.62 976.232 1575.95C975.461 1576.28 974.521 1576.45 973.41 1576.45ZM973.858 1573.81C975.018 1573.81 975.996 1573.58 976.791 1573.13C977.595 1572.67 978.2 1572.08 978.606 1571.36C979.02 1570.64 979.227 1569.88 979.227 1569.09V1566.4C979.103 1566.55 978.83 1566.69 978.407 1566.81C977.993 1566.93 977.512 1567.03 976.965 1567.13C976.427 1567.21 975.9 1567.28 975.387 1567.35C974.881 1567.41 974.471 1567.46 974.156 1567.5C973.394 1567.6 972.681 1567.76 972.018 1567.98C971.364 1568.2 970.834 1568.53 970.428 1568.97C970.03 1569.4 969.831 1569.98 969.831 1570.73C969.831 1571.75 970.208 1572.52 970.962 1573.04C971.724 1573.56 972.69 1573.81 973.858 1573.81ZM987.514 1576V1556.91H990.348V1559.79H990.547C990.895 1558.85 991.525 1558.08 992.436 1557.49C993.348 1556.9 994.375 1556.61 995.519 1556.61C995.734 1556.61 996.003 1556.61 996.326 1556.62C996.65 1556.63 996.894 1556.64 997.06 1556.66V1559.64C996.96 1559.62 996.732 1559.58 996.376 1559.53C996.028 1559.47 995.659 1559.44 995.27 1559.44C994.342 1559.44 993.513 1559.64 992.784 1560.03C992.063 1560.41 991.492 1560.94 991.069 1561.62C990.655 1562.29 990.447 1563.06 990.447 1563.92V1576H987.514ZM1007.16 1576.4C1005.57 1576.4 1004.17 1576 1002.95 1575.19C1001.73 1574.38 1000.78 1573.24 1000.09 1571.76C999.405 1570.28 999.061 1568.53 999.061 1566.5C999.061 1564.5 999.405 1562.76 1000.09 1561.28C1000.78 1559.81 1001.74 1558.67 1002.96 1557.87C1004.19 1557.06 1005.61 1556.66 1007.21 1556.66C1008.46 1556.66 1009.44 1556.87 1010.16 1557.28C1010.89 1557.69 1011.44 1558.15 1011.83 1558.67C1012.21 1559.19 1012.52 1559.61 1012.73 1559.94H1012.98V1550.55H1015.91V1576H1013.08V1573.07H1012.73C1012.52 1573.41 1012.21 1573.85 1011.81 1574.38C1011.42 1574.91 1010.85 1575.37 1010.11 1575.79C1009.37 1576.19 1008.39 1576.4 1007.16 1576.4ZM1007.56 1573.76C1008.74 1573.76 1009.73 1573.46 1010.55 1572.84C1011.36 1572.22 1011.97 1571.36 1012.4 1570.27C1012.82 1569.17 1013.03 1567.9 1013.03 1566.45C1013.03 1565.03 1012.82 1563.78 1012.41 1562.71C1012 1561.64 1011.38 1560.8 1010.57 1560.2C1009.76 1559.6 1008.76 1559.3 1007.56 1559.3C1006.32 1559.3 1005.28 1559.61 1004.45 1560.25C1003.63 1560.88 1003.02 1561.74 1002.6 1562.83C1002.2 1563.9 1001.99 1565.11 1001.99 1566.45C1001.99 1567.81 1002.2 1569.05 1002.62 1570.16C1003.04 1571.26 1003.66 1572.14 1004.48 1572.79C1005.31 1573.44 1006.34 1573.76 1007.56 1573.76Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"ValueChainAnalysis\" className=\"map-btn\" onClick={ClickHandler(\"ValueChainAnalysis\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 6\"\r\n x=\"472.5\"\r\n y=\"878.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Value Chain Analysis\"\r\n d=\"M524.078 909.545L531.634 930.973H531.933L539.49 909.545H542.721L533.374 935H530.193L520.846 909.545H524.078ZM550.129 935.447C548.919 935.447 547.821 935.22 546.835 934.764C545.849 934.3 545.066 933.633 544.486 932.763C543.906 931.884 543.616 930.824 543.616 929.581C543.616 928.487 543.831 927.601 544.262 926.921C544.693 926.233 545.269 925.695 545.99 925.305C546.711 924.916 547.506 924.626 548.376 924.435C549.255 924.237 550.137 924.079 551.024 923.963C552.184 923.814 553.124 923.702 553.845 923.627C554.574 923.545 555.104 923.408 555.436 923.217C555.776 923.027 555.945 922.695 555.945 922.223V922.124C555.945 920.897 555.61 919.944 554.939 919.265C554.276 918.585 553.269 918.246 551.919 918.246C550.518 918.246 549.42 918.552 548.625 919.165C547.829 919.779 547.27 920.433 546.947 921.129L544.163 920.135C544.66 918.975 545.323 918.072 546.151 917.425C546.988 916.771 547.9 916.315 548.886 916.058C549.88 915.793 550.858 915.661 551.819 915.661C552.432 915.661 553.137 915.735 553.932 915.884C554.736 916.025 555.51 916.319 556.256 916.767C557.01 917.214 557.636 917.889 558.133 918.793C558.63 919.696 558.879 920.906 558.879 922.422V935H555.945V932.415H555.796C555.597 932.829 555.266 933.272 554.802 933.745C554.338 934.217 553.721 934.619 552.95 934.95C552.18 935.282 551.239 935.447 550.129 935.447ZM550.576 932.812C551.736 932.812 552.714 932.585 553.509 932.129C554.313 931.673 554.918 931.085 555.324 930.364C555.738 929.643 555.945 928.885 555.945 928.089V925.405C555.821 925.554 555.548 925.691 555.125 925.815C554.711 925.931 554.23 926.035 553.683 926.126C553.145 926.209 552.619 926.283 552.105 926.349C551.599 926.407 551.189 926.457 550.874 926.499C550.112 926.598 549.4 926.76 548.737 926.983C548.082 927.199 547.552 927.526 547.146 927.965C546.748 928.396 546.549 928.984 546.549 929.73C546.549 930.749 546.926 931.52 547.68 932.042C548.443 932.556 549.408 932.812 550.576 932.812ZM567.166 909.545V935H564.233V909.545H567.166ZM584.569 927.195V915.909H587.503V935H584.569V931.768H584.371C583.923 932.738 583.227 933.562 582.282 934.242C581.338 934.913 580.145 935.249 578.703 935.249C577.51 935.249 576.449 934.988 575.521 934.466C574.593 933.935 573.864 933.14 573.334 932.079C572.803 931.01 572.538 929.664 572.538 928.04V915.909H575.471V927.841C575.471 929.233 575.861 930.343 576.64 931.172C577.427 932 578.43 932.415 579.648 932.415C580.377 932.415 581.118 932.228 581.872 931.855C582.635 931.483 583.273 930.911 583.786 930.14C584.308 929.37 584.569 928.388 584.569 927.195ZM600.879 935.398C599.04 935.398 597.453 934.992 596.119 934.18C594.793 933.359 593.77 932.216 593.049 930.749C592.336 929.274 591.98 927.559 591.98 925.604C591.98 923.648 592.336 921.925 593.049 920.433C593.77 918.933 594.773 917.765 596.057 916.928C597.35 916.083 598.858 915.661 600.581 915.661C601.575 915.661 602.557 915.826 603.527 916.158C604.496 916.489 605.379 917.028 606.174 917.773C606.97 918.511 607.603 919.489 608.076 920.707C608.548 921.925 608.784 923.424 608.784 925.206V926.449H594.068V923.913H605.801C605.801 922.836 605.586 921.875 605.155 921.03C604.732 920.185 604.127 919.518 603.34 919.029C602.561 918.54 601.642 918.295 600.581 918.295C599.413 918.295 598.402 918.585 597.548 919.165C596.703 919.737 596.053 920.483 595.597 921.403C595.141 922.322 594.913 923.308 594.913 924.361V926.051C594.913 927.493 595.162 928.715 595.659 929.718C596.165 930.712 596.865 931.47 597.76 931.992C598.655 932.506 599.694 932.763 600.879 932.763C601.65 932.763 602.346 932.655 602.967 932.44C603.597 932.216 604.14 931.884 604.596 931.445C605.051 930.998 605.403 930.443 605.652 929.78L608.486 930.575C608.188 931.536 607.686 932.382 606.982 933.111C606.278 933.832 605.408 934.395 604.372 934.801C603.336 935.199 602.172 935.398 600.879 935.398ZM643.971 917.5H640.888C640.706 916.613 640.387 915.835 639.931 915.163C639.484 914.492 638.937 913.929 638.291 913.473C637.653 913.009 636.944 912.661 636.165 912.429C635.386 912.197 634.574 912.081 633.729 912.081C632.188 912.081 630.792 912.47 629.541 913.249C628.298 914.028 627.307 915.176 626.57 916.692C625.841 918.208 625.476 920.069 625.476 922.273C625.476 924.477 625.841 926.337 626.57 927.853C627.307 929.37 628.298 930.517 629.541 931.296C630.792 932.075 632.188 932.464 633.729 932.464C634.574 932.464 635.386 932.348 636.165 932.116C636.944 931.884 637.653 931.541 638.291 931.085C638.937 930.621 639.484 930.053 639.931 929.382C640.387 928.703 640.706 927.924 640.888 927.045H643.971C643.739 928.346 643.316 929.511 642.703 930.538C642.09 931.565 641.327 932.44 640.416 933.161C639.504 933.873 638.481 934.416 637.346 934.789C636.219 935.162 635.013 935.348 633.729 935.348C631.558 935.348 629.628 934.818 627.937 933.757C626.247 932.696 624.917 931.188 623.948 929.233C622.978 927.277 622.493 924.957 622.493 922.273C622.493 919.588 622.978 917.268 623.948 915.312C624.917 913.357 626.247 911.849 627.937 910.788C629.628 909.728 631.558 909.197 633.729 909.197C635.013 909.197 636.219 909.384 637.346 909.757C638.481 910.13 639.504 910.676 640.416 911.397C641.327 912.11 642.09 912.98 642.703 914.007C643.316 915.027 643.739 916.191 643.971 917.5ZM651.487 923.516V935H648.554V909.545H651.487V918.892H651.736C652.183 917.906 652.854 917.123 653.749 916.543C654.652 915.955 655.854 915.661 657.354 915.661C658.654 915.661 659.794 915.922 660.771 916.444C661.749 916.957 662.507 917.749 663.046 918.817C663.593 919.878 663.866 921.229 663.866 922.869V935H660.933V923.068C660.933 921.552 660.539 920.379 659.752 919.551C658.973 918.714 657.892 918.295 656.508 918.295C655.547 918.295 654.685 918.498 653.923 918.904C653.169 919.31 652.573 919.903 652.133 920.682C651.702 921.461 651.487 922.405 651.487 923.516ZM674.85 935.447C673.641 935.447 672.543 935.22 671.557 934.764C670.571 934.3 669.788 933.633 669.208 932.763C668.628 931.884 668.338 930.824 668.338 929.581C668.338 928.487 668.553 927.601 668.984 926.921C669.415 926.233 669.991 925.695 670.712 925.305C671.432 924.916 672.228 924.626 673.098 924.435C673.976 924.237 674.859 924.079 675.745 923.963C676.905 923.814 677.846 923.702 678.567 923.627C679.296 923.545 679.826 923.408 680.158 923.217C680.497 923.027 680.667 922.695 680.667 922.223V922.124C680.667 920.897 680.332 919.944 679.66 919.265C678.998 918.585 677.991 918.246 676.64 918.246C675.24 918.246 674.142 918.552 673.347 919.165C672.551 919.779 671.992 920.433 671.669 921.129L668.884 920.135C669.382 918.975 670.045 918.072 670.873 917.425C671.71 916.771 672.621 916.315 673.608 916.058C674.602 915.793 675.58 915.661 676.541 915.661C677.154 915.661 677.858 915.735 678.654 915.884C679.457 916.025 680.232 916.319 680.978 916.767C681.732 917.214 682.358 917.889 682.855 918.793C683.352 919.696 683.6 920.906 683.6 922.422V935H680.667V932.415H680.518C680.319 932.829 679.988 933.272 679.524 933.745C679.06 934.217 678.442 934.619 677.672 934.95C676.901 935.282 675.961 935.447 674.85 935.447ZM675.298 932.812C676.458 932.812 677.436 932.585 678.231 932.129C679.035 931.673 679.64 931.085 680.046 930.364C680.46 929.643 680.667 928.885 680.667 928.089V925.405C680.543 925.554 680.269 925.691 679.847 925.815C679.433 925.931 678.952 926.035 678.405 926.126C677.867 926.209 677.34 926.283 676.827 926.349C676.321 926.407 675.911 926.457 675.596 926.499C674.834 926.598 674.121 926.76 673.458 926.983C672.804 927.199 672.273 927.526 671.867 927.965C671.47 928.396 671.271 928.984 671.271 929.73C671.271 930.749 671.648 931.52 672.402 932.042C673.164 932.556 674.13 932.812 675.298 932.812ZM688.954 935V915.909H691.887V935H688.954ZM690.446 912.727C689.874 912.727 689.381 912.533 688.967 912.143C688.561 911.754 688.358 911.286 688.358 910.739C688.358 910.192 688.561 909.724 688.967 909.334C689.381 908.945 689.874 908.75 690.446 908.75C691.017 908.75 691.506 908.945 691.912 909.334C692.327 909.724 692.534 910.192 692.534 910.739C692.534 911.286 692.327 911.754 691.912 912.143C691.506 912.533 691.017 912.727 690.446 912.727ZM700.193 923.516V935H697.26V915.909H700.094V918.892H700.342C700.79 917.923 701.469 917.144 702.381 916.555C703.292 915.959 704.469 915.661 705.91 915.661C707.203 915.661 708.334 915.926 709.304 916.456C710.273 916.978 711.027 917.773 711.566 918.842C712.104 919.903 712.373 921.245 712.373 922.869V935H709.44V923.068C709.44 921.568 709.051 920.4 708.272 919.563C707.493 918.718 706.424 918.295 705.065 918.295C704.129 918.295 703.292 918.498 702.555 918.904C701.825 919.31 701.25 919.903 700.827 920.682C700.404 921.461 700.193 922.405 700.193 923.516ZM553.37 977H550.138L559.485 951.545H562.666L572.013 977H568.782L561.175 955.572H560.976L553.37 977ZM554.563 967.057H567.588V969.791H554.563V967.057ZM578.513 965.516V977H575.58V957.909H578.414V960.892H578.663C579.11 959.923 579.789 959.144 580.701 958.555C581.612 957.959 582.789 957.661 584.231 957.661C585.523 957.661 586.654 957.926 587.624 958.456C588.593 958.978 589.347 959.773 589.886 960.842C590.425 961.903 590.694 963.245 590.694 964.869V977H587.761V965.068C587.761 963.568 587.371 962.4 586.592 961.563C585.813 960.718 584.744 960.295 583.386 960.295C582.449 960.295 581.612 960.498 580.875 960.904C580.146 961.31 579.57 961.903 579.147 962.682C578.725 963.461 578.513 964.405 578.513 965.516ZM601.672 977.447C600.462 977.447 599.364 977.22 598.378 976.764C597.392 976.3 596.609 975.633 596.029 974.763C595.449 973.884 595.159 972.824 595.159 971.581C595.159 970.487 595.374 969.601 595.805 968.921C596.236 968.233 596.812 967.695 597.533 967.305C598.254 966.916 599.049 966.626 599.919 966.435C600.798 966.237 601.68 966.079 602.567 965.963C603.727 965.814 604.667 965.702 605.388 965.627C606.117 965.545 606.647 965.408 606.979 965.217C607.319 965.027 607.488 964.695 607.488 964.223V964.124C607.488 962.897 607.153 961.944 606.482 961.265C605.819 960.585 604.812 960.246 603.461 960.246C602.061 960.246 600.963 960.552 600.168 961.165C599.372 961.779 598.813 962.433 598.49 963.129L595.706 962.135C596.203 960.975 596.866 960.072 597.694 959.425C598.531 958.771 599.443 958.315 600.429 958.058C601.423 957.793 602.401 957.661 603.362 957.661C603.975 957.661 604.68 957.735 605.475 957.884C606.279 958.025 607.053 958.319 607.799 958.767C608.553 959.214 609.179 959.889 609.676 960.793C610.173 961.696 610.422 962.906 610.422 964.422V977H607.488V974.415H607.339C607.14 974.829 606.809 975.272 606.345 975.745C605.881 976.217 605.264 976.619 604.493 976.95C603.722 977.282 602.782 977.447 601.672 977.447ZM602.119 974.812C603.279 974.812 604.257 974.585 605.052 974.129C605.856 973.673 606.461 973.085 606.867 972.364C607.281 971.643 607.488 970.885 607.488 970.089V967.405C607.364 967.554 607.091 967.691 606.668 967.815C606.254 967.931 605.773 968.035 605.226 968.126C604.688 968.209 604.162 968.283 603.648 968.349C603.142 968.407 602.732 968.457 602.417 968.499C601.655 968.598 600.943 968.76 600.28 968.983C599.625 969.199 599.095 969.526 598.689 969.965C598.291 970.396 598.092 970.984 598.092 971.73C598.092 972.749 598.469 973.52 599.223 974.042C599.985 974.556 600.951 974.812 602.119 974.812ZM618.709 951.545V977H615.775V951.545H618.709ZM625.97 984.159C625.473 984.159 625.03 984.118 624.64 984.035C624.251 983.96 623.982 983.886 623.833 983.811L624.578 981.226C625.291 981.408 625.921 981.474 626.468 981.425C627.014 981.375 627.499 981.131 627.922 980.691C628.353 980.261 628.746 979.56 629.102 978.591L629.649 977.099L622.59 957.909H625.771L631.041 973.122H631.24L636.51 957.909H639.692L631.588 979.784C631.224 980.77 630.772 981.586 630.233 982.233C629.695 982.887 629.069 983.372 628.357 983.687C627.652 984.002 626.857 984.159 625.97 984.159ZM657.086 962.185L654.451 962.93C654.286 962.491 654.041 962.065 653.718 961.65C653.403 961.228 652.972 960.88 652.425 960.606C651.879 960.333 651.178 960.196 650.325 960.196C649.157 960.196 648.183 960.465 647.404 961.004C646.634 961.534 646.248 962.21 646.248 963.03C646.248 963.759 646.513 964.335 647.044 964.757C647.574 965.18 648.403 965.532 649.529 965.814L652.363 966.51C654.07 966.924 655.342 967.558 656.179 968.412C657.016 969.257 657.434 970.346 657.434 971.68C657.434 972.774 657.119 973.752 656.49 974.614C655.868 975.475 654.998 976.155 653.88 976.652C652.761 977.149 651.46 977.398 649.977 977.398C648.03 977.398 646.418 976.975 645.142 976.13C643.866 975.285 643.058 974.05 642.718 972.426L645.502 971.73C645.768 972.758 646.269 973.528 647.006 974.042C647.752 974.556 648.726 974.812 649.927 974.812C651.294 974.812 652.38 974.522 653.184 973.942C653.996 973.354 654.402 972.65 654.402 971.83C654.402 971.167 654.17 970.612 653.706 970.164C653.242 969.708 652.529 969.369 651.568 969.145L648.386 968.399C646.638 967.985 645.353 967.343 644.533 966.473C643.721 965.594 643.315 964.496 643.315 963.179C643.315 962.102 643.617 961.149 644.222 960.32C644.835 959.492 645.668 958.841 646.721 958.369C647.781 957.897 648.983 957.661 650.325 957.661C652.214 957.661 653.697 958.075 654.775 958.903C655.86 959.732 656.631 960.826 657.086 962.185ZM661.85 977V957.909H664.783V977H661.85ZM663.341 954.727C662.769 954.727 662.276 954.533 661.862 954.143C661.456 953.754 661.253 953.286 661.253 952.739C661.253 952.192 661.456 951.724 661.862 951.334C662.276 950.945 662.769 950.75 663.341 950.75C663.913 950.75 664.402 950.945 664.808 951.334C665.222 951.724 665.429 952.192 665.429 952.739C665.429 953.286 665.222 953.754 664.808 954.143C664.402 954.533 663.913 954.727 663.341 954.727ZM683.678 962.185L681.043 962.93C680.877 962.491 680.633 962.065 680.31 961.65C679.995 961.228 679.564 960.88 679.017 960.606C678.47 960.333 677.77 960.196 676.917 960.196C675.748 960.196 674.775 960.465 673.996 961.004C673.225 961.534 672.84 962.21 672.84 963.03C672.84 963.759 673.105 964.335 673.635 964.757C674.166 965.18 674.994 965.532 676.121 965.814L678.955 966.51C680.662 966.924 681.934 967.558 682.771 968.412C683.608 969.257 684.026 970.346 684.026 971.68C684.026 972.774 683.711 973.752 683.081 974.614C682.46 975.475 681.59 976.155 680.471 976.652C679.353 977.149 678.052 977.398 676.569 977.398C674.622 977.398 673.01 976.975 671.734 976.13C670.458 975.285 669.65 974.05 669.31 972.426L672.094 971.73C672.359 972.758 672.861 973.528 673.598 974.042C674.344 974.556 675.318 974.812 676.519 974.812C677.886 974.812 678.972 974.522 679.775 973.942C680.587 973.354 680.993 972.65 680.993 971.83C680.993 971.167 680.761 970.612 680.297 970.164C679.833 969.708 679.121 969.369 678.16 969.145L674.978 968.399C673.229 967.985 671.945 967.343 671.125 966.473C670.313 965.594 669.907 964.496 669.907 963.179C669.907 962.102 670.209 961.149 670.814 960.32C671.427 959.492 672.26 958.841 673.312 958.369C674.373 957.897 675.574 957.661 676.917 957.661C678.806 957.661 680.289 958.075 681.366 958.903C682.452 959.732 683.222 960.826 683.678 962.185Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"VRIO\" className=\"map-btn\" onClick={ClickHandler(\"VRIO\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 15\"\r\n x=\"0.5\"\r\n y=\"878.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"VRIO_2\"\r\n d=\"M108.645 930.545L116.202 951.973H116.5L124.057 930.545H127.288L117.942 956H114.76L105.413 930.545H108.645ZM131.253 956V930.545H139.854C141.843 930.545 143.475 930.885 144.751 931.565C146.027 932.236 146.972 933.16 147.585 934.336C148.198 935.513 148.505 936.851 148.505 938.351C148.505 939.851 148.198 941.181 147.585 942.341C146.972 943.501 146.031 944.412 144.764 945.075C143.496 945.73 141.876 946.057 139.904 946.057H132.944V943.273H139.804C141.163 943.273 142.257 943.074 143.086 942.676C143.923 942.278 144.527 941.715 144.9 940.986C145.281 940.248 145.472 939.37 145.472 938.351C145.472 937.332 145.281 936.441 144.9 935.679C144.519 934.916 143.91 934.328 143.073 933.914C142.236 933.491 141.13 933.28 139.755 933.28H134.336V956H131.253ZM143.235 944.565L149.499 956H145.919L139.755 944.565H143.235ZM156.723 930.545V956H153.641V930.545H156.723ZM184.381 943.273C184.381 945.957 183.896 948.277 182.927 950.233C181.957 952.188 180.627 953.696 178.937 954.757C177.247 955.818 175.316 956.348 173.145 956.348C170.974 956.348 169.044 955.818 167.353 954.757C165.663 953.696 164.333 952.188 163.364 950.233C162.394 948.277 161.909 945.957 161.909 943.273C161.909 940.588 162.394 938.268 163.364 936.312C164.333 934.357 165.663 932.849 167.353 931.788C169.044 930.728 170.974 930.197 173.145 930.197C175.316 930.197 177.247 930.728 178.937 931.788C180.627 932.849 181.957 934.357 182.927 936.312C183.896 938.268 184.381 940.588 184.381 943.273ZM181.398 943.273C181.398 941.069 181.029 939.208 180.292 937.692C179.563 936.176 178.572 935.028 177.321 934.249C176.078 933.47 174.686 933.081 173.145 933.081C171.604 933.081 170.208 933.47 168.957 934.249C167.714 935.028 166.724 936.176 165.986 937.692C165.257 939.208 164.892 941.069 164.892 943.273C164.892 945.477 165.257 947.337 165.986 948.853C166.724 950.37 167.714 951.517 168.957 952.296C170.208 953.075 171.604 953.464 173.145 953.464C174.686 953.464 176.078 953.075 177.321 952.296C178.572 951.517 179.563 950.37 180.292 948.853C181.029 947.337 181.398 945.477 181.398 943.273Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"Outcome\">\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 7\"\r\n x=\"1774\"\r\n y=\"1067\"\r\n width=\"572\"\r\n height=\"333\"\r\n rx=\"50\"\r\n fill=\"#68A45F\"\r\n />\r\n <path\r\n d=\"M2000.98 1120.09C2000.98 1123.24 2000.42 1125.95 1999.28 1128.24C1998.14 1130.54 1996.59 1132.3 1994.61 1133.54C1992.63 1134.79 1990.36 1135.41 1987.82 1135.41C1985.28 1135.41 1983.02 1134.79 1981.04 1133.54C1979.06 1132.3 1977.5 1130.54 1976.36 1128.24C1975.23 1125.95 1974.66 1123.24 1974.66 1120.09C1974.66 1116.95 1975.23 1114.23 1976.36 1111.94C1977.5 1109.65 1979.06 1107.88 1981.04 1106.64C1983.02 1105.4 1985.28 1104.77 1987.82 1104.77C1990.36 1104.77 1992.63 1105.4 1994.61 1106.64C1996.59 1107.88 1998.14 1109.65 1999.28 1111.94C2000.42 1114.23 2000.98 1116.95 2000.98 1120.09ZM1997.49 1120.09C1997.49 1117.51 1997.06 1115.33 1996.19 1113.55C1995.34 1111.78 1994.18 1110.43 1992.71 1109.52C1991.26 1108.61 1989.63 1108.15 1987.82 1108.15C1986.02 1108.15 1984.38 1108.61 1982.92 1109.52C1981.46 1110.43 1980.3 1111.78 1979.44 1113.55C1978.58 1115.33 1978.15 1117.51 1978.15 1120.09C1978.15 1122.67 1978.58 1124.85 1979.44 1126.63C1980.3 1128.4 1981.46 1129.75 1982.92 1130.66C1984.38 1131.57 1986.02 1132.03 1987.82 1132.03C1989.63 1132.03 1991.26 1131.57 1992.71 1130.66C1994.18 1129.75 1995.34 1128.4 1996.19 1126.63C1997.06 1124.85 1997.49 1122.67 1997.49 1120.09ZM2020.68 1125.86V1112.64H2024.12V1135H2020.68V1131.21H2020.45C2019.93 1132.35 2019.11 1133.32 2018 1134.11C2016.9 1134.9 2015.5 1135.29 2013.81 1135.29C2012.41 1135.29 2011.17 1134.99 2010.08 1134.37C2009 1133.75 2008.14 1132.82 2007.52 1131.58C2006.9 1130.33 2006.59 1128.75 2006.59 1126.85V1112.64H2010.03V1126.61C2010.03 1128.24 2010.48 1129.54 2011.39 1130.52C2012.32 1131.49 2013.49 1131.97 2014.92 1131.97C2015.77 1131.97 2016.64 1131.75 2017.52 1131.32C2018.42 1130.88 2019.16 1130.21 2019.77 1129.31C2020.38 1128.4 2020.68 1127.25 2020.68 1125.86ZM2040.14 1112.64V1115.55H2028.55V1112.64H2040.14ZM2031.93 1107.28H2035.36V1128.59C2035.36 1129.56 2035.5 1130.29 2035.78 1130.78C2036.08 1131.25 2036.45 1131.57 2036.89 1131.74C2037.35 1131.89 2037.83 1131.97 2038.33 1131.97C2038.71 1131.97 2039.02 1131.95 2039.26 1131.91C2039.51 1131.86 2039.7 1131.83 2039.85 1131.8L2040.55 1134.88C2040.31 1134.97 2039.99 1135.06 2039.57 1135.15C2039.15 1135.24 2038.62 1135.29 2037.98 1135.29C2037.01 1135.29 2036.06 1135.08 2035.13 1134.67C2034.21 1134.25 2033.44 1133.61 2032.83 1132.76C2032.23 1131.9 2031.93 1130.83 2031.93 1129.53V1107.28ZM2054.15 1135.47C2052.06 1135.47 2050.25 1134.97 2048.74 1133.98C2047.22 1132.99 2046.06 1131.63 2045.24 1129.89C2044.43 1128.15 2044.02 1126.17 2044.02 1123.93C2044.02 1121.66 2044.44 1119.66 2045.27 1117.92C2046.12 1116.17 2047.29 1114.81 2048.79 1113.83C2050.31 1112.84 2052.07 1112.35 2054.09 1112.35C2055.67 1112.35 2057.08 1112.64 2058.35 1113.22C2059.61 1113.8 2060.64 1114.62 2061.45 1115.66C2062.25 1116.71 2062.75 1117.94 2062.95 1119.33H2059.51C2059.25 1118.31 2058.67 1117.41 2057.76 1116.63C2056.87 1115.83 2055.67 1115.43 2054.15 1115.43C2052.81 1115.43 2051.64 1115.78 2050.63 1116.48C2049.63 1117.17 2048.85 1118.14 2048.28 1119.41C2047.73 1120.66 2047.45 1122.13 2047.45 1123.82C2047.45 1125.55 2047.73 1127.05 2048.27 1128.33C2048.82 1129.61 2049.6 1130.61 2050.6 1131.32C2051.61 1132.02 2052.79 1132.38 2054.15 1132.38C2055.04 1132.38 2055.86 1132.22 2056.58 1131.91C2057.31 1131.6 2057.93 1131.16 2058.43 1130.57C2058.94 1129.99 2059.3 1129.29 2059.51 1128.48H2062.95C2062.75 1129.8 2062.27 1130.99 2061.5 1132.04C2060.75 1133.09 2059.74 1133.93 2058.49 1134.55C2057.25 1135.16 2055.8 1135.47 2054.15 1135.47ZM2077.05 1135.47C2075.04 1135.47 2073.26 1134.99 2071.74 1134.02C2070.23 1133.06 2069.04 1131.72 2068.19 1129.99C2067.34 1128.26 2066.92 1126.24 2066.92 1123.93C2066.92 1121.61 2067.34 1119.57 2068.19 1117.83C2069.04 1116.1 2070.23 1114.75 2071.74 1113.79C2073.26 1112.83 2075.04 1112.35 2077.05 1112.35C2079.07 1112.35 2080.84 1112.83 2082.35 1113.79C2083.88 1114.75 2085.06 1116.1 2085.91 1117.83C2086.76 1119.57 2087.19 1121.61 2087.19 1123.93C2087.19 1126.24 2086.76 1128.26 2085.91 1129.99C2085.06 1131.72 2083.88 1133.06 2082.35 1134.02C2080.84 1134.99 2079.07 1135.47 2077.05 1135.47ZM2077.05 1132.38C2078.59 1132.38 2079.85 1131.99 2080.84 1131.2C2081.83 1130.41 2082.56 1129.38 2083.04 1128.1C2083.51 1126.82 2083.75 1125.43 2083.75 1123.93C2083.75 1122.44 2083.51 1121.05 2083.04 1119.76C2082.56 1118.47 2081.83 1117.42 2080.84 1116.63C2079.85 1115.83 2078.59 1115.43 2077.05 1115.43C2075.52 1115.43 2074.26 1115.83 2073.27 1116.63C2072.28 1117.42 2071.55 1118.47 2071.07 1119.76C2070.59 1121.05 2070.36 1122.44 2070.36 1123.93C2070.36 1125.43 2070.59 1126.82 2071.07 1128.1C2071.55 1129.38 2072.28 1130.41 2073.27 1131.2C2074.26 1131.99 2075.52 1132.38 2077.05 1132.38ZM2092.43 1135V1112.64H2095.75V1116.13H2096.04C2096.51 1114.94 2097.26 1114.01 2098.3 1113.35C2099.34 1112.68 2100.59 1112.35 2102.04 1112.35C2103.52 1112.35 2104.75 1112.68 2105.73 1113.35C2106.72 1114.01 2107.49 1114.94 2108.04 1116.13H2108.27C2108.85 1114.98 2109.71 1114.06 2110.85 1113.38C2112 1112.69 2113.37 1112.35 2114.97 1112.35C2116.97 1112.35 2118.61 1112.97 2119.88 1114.22C2121.15 1115.47 2121.79 1117.4 2121.79 1120.03V1135H2118.35V1120.03C2118.35 1118.38 2117.9 1117.2 2117 1116.49C2116.09 1115.79 2115.03 1115.43 2113.81 1115.43C2112.23 1115.43 2111.02 1115.91 2110.15 1116.86C2109.29 1117.8 2108.86 1118.99 2108.86 1120.44V1135H2105.36V1119.68C2105.36 1118.41 2104.95 1117.39 2104.12 1116.61C2103.3 1115.82 2102.24 1115.43 2100.94 1115.43C2100.04 1115.43 2099.21 1115.67 2098.43 1116.15C2097.66 1116.62 2097.04 1117.28 2096.57 1118.13C2096.1 1118.96 2095.87 1119.93 2095.87 1121.02V1135H2092.43ZM2137.44 1135.47C2135.29 1135.47 2133.43 1134.99 2131.87 1134.04C2130.31 1133.08 2129.12 1131.74 2128.27 1130.02C2127.44 1128.29 2127.02 1126.28 2127.02 1123.99C2127.02 1121.7 2127.44 1119.68 2128.27 1117.94C2129.12 1116.18 2130.29 1114.81 2131.8 1113.83C2133.31 1112.84 2135.08 1112.35 2137.09 1112.35C2138.26 1112.35 2139.41 1112.54 2140.55 1112.93C2141.68 1113.32 2142.71 1113.95 2143.65 1114.82C2144.58 1115.68 2145.32 1116.83 2145.87 1118.26C2146.43 1119.68 2146.7 1121.44 2146.7 1123.53V1124.98H2129.47V1122.01H2143.21C2143.21 1120.75 2142.96 1119.62 2142.45 1118.63C2141.96 1117.64 2141.25 1116.86 2140.33 1116.29C2139.41 1115.72 2138.34 1115.43 2137.09 1115.43C2135.73 1115.43 2134.54 1115.77 2133.54 1116.45C2132.55 1117.12 2131.79 1117.99 2131.26 1119.07C2130.72 1120.15 2130.46 1121.3 2130.46 1122.54V1124.52C2130.46 1126.21 2130.75 1127.64 2131.33 1128.81C2131.92 1129.98 2132.74 1130.87 2133.79 1131.48C2134.84 1132.08 2136.06 1132.38 2137.44 1132.38C2138.35 1132.38 2139.16 1132.25 2139.89 1132C2140.63 1131.74 2141.26 1131.35 2141.8 1130.84C2142.33 1130.31 2142.74 1129.66 2143.04 1128.88L2146.35 1129.82C2146.01 1130.94 2145.42 1131.93 2144.59 1132.79C2143.77 1133.63 2142.75 1134.29 2141.54 1134.77C2140.32 1135.23 2138.96 1135.47 2137.44 1135.47Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M1972.21 1143.15H2148.8V1145.95H1972.21V1143.15Z\" fill=\"black\" />\r\n <path\r\n id=\"Implement and deliver on unique proposition\"\r\n d=\"M1857.46 1188.55V1214H1854.38V1188.55H1857.46ZM1863.25 1214V1194.91H1866.08V1197.89H1866.33C1866.73 1196.87 1867.37 1196.08 1868.26 1195.52C1869.14 1194.95 1870.21 1194.66 1871.45 1194.66C1872.71 1194.66 1873.76 1194.95 1874.59 1195.52C1875.44 1196.08 1876.1 1196.87 1876.57 1197.89H1876.77C1877.26 1196.91 1877.99 1196.12 1878.97 1195.54C1879.95 1194.95 1881.12 1194.66 1882.49 1194.66C1884.19 1194.66 1885.59 1195.19 1886.67 1196.26C1887.76 1197.32 1888.3 1198.98 1888.3 1201.22V1214H1885.37V1201.22C1885.37 1199.81 1884.98 1198.81 1884.21 1198.2C1883.44 1197.6 1882.54 1197.3 1881.49 1197.3C1880.15 1197.3 1879.11 1197.7 1878.37 1198.51C1877.63 1199.32 1877.27 1200.34 1877.27 1201.57V1214H1874.28V1200.92C1874.28 1199.84 1873.93 1198.97 1873.23 1198.3C1872.52 1197.63 1871.62 1197.3 1870.5 1197.3C1869.74 1197.3 1869.03 1197.5 1868.37 1197.9C1867.71 1198.31 1867.18 1198.87 1866.78 1199.59C1866.38 1200.31 1866.18 1201.13 1866.18 1202.07V1214H1863.25ZM1893.67 1221.16V1194.91H1896.5V1197.94H1896.85C1897.06 1197.61 1897.36 1197.19 1897.74 1196.67C1898.13 1196.15 1898.69 1195.69 1899.41 1195.28C1900.14 1194.87 1901.12 1194.66 1902.37 1194.66C1903.97 1194.66 1905.39 1195.06 1906.62 1195.87C1907.84 1196.67 1908.8 1197.81 1909.49 1199.28C1910.18 1200.76 1910.52 1202.5 1910.52 1204.5C1910.52 1206.53 1910.18 1208.28 1909.49 1209.76C1908.8 1211.24 1907.85 1212.38 1906.63 1213.19C1905.41 1214 1904.01 1214.4 1902.42 1214.4C1901.19 1214.4 1900.21 1214.19 1899.47 1213.79C1898.73 1213.37 1898.17 1212.91 1897.77 1212.38C1897.37 1211.85 1897.06 1211.41 1896.85 1211.07H1896.6V1221.16H1893.67ZM1896.55 1204.45C1896.55 1205.9 1896.76 1207.17 1897.18 1208.27C1897.61 1209.36 1898.22 1210.22 1899.04 1210.84C1899.85 1211.46 1900.84 1211.76 1902.02 1211.76C1903.24 1211.76 1904.27 1211.44 1905.09 1210.79C1905.92 1210.14 1906.54 1209.26 1906.95 1208.16C1907.38 1207.05 1907.59 1205.81 1907.59 1204.45C1907.59 1203.11 1907.38 1201.9 1906.97 1200.83C1906.56 1199.74 1905.94 1198.88 1905.11 1198.25C1904.29 1197.61 1903.26 1197.3 1902.02 1197.3C1900.83 1197.3 1899.82 1197.6 1899.01 1198.2C1898.2 1198.8 1897.59 1199.64 1897.17 1200.71C1896.76 1201.78 1896.55 1203.03 1896.55 1204.45ZM1917.93 1188.55V1214H1914.99V1188.55H1917.93ZM1931.3 1214.4C1929.46 1214.4 1927.88 1213.99 1926.54 1213.18C1925.22 1212.36 1924.19 1211.22 1923.47 1209.75C1922.76 1208.27 1922.41 1206.56 1922.41 1204.6C1922.41 1202.65 1922.76 1200.92 1923.47 1199.43C1924.19 1197.93 1925.2 1196.77 1926.48 1195.93C1927.77 1195.08 1929.28 1194.66 1931.01 1194.66C1932 1194.66 1932.98 1194.83 1933.95 1195.16C1934.92 1195.49 1935.8 1196.03 1936.6 1196.77C1937.39 1197.51 1938.03 1198.49 1938.5 1199.71C1938.97 1200.92 1939.21 1202.42 1939.21 1204.21V1205.45H1924.49V1202.91H1936.23C1936.23 1201.84 1936.01 1200.87 1935.58 1200.03C1935.16 1199.18 1934.55 1198.52 1933.77 1198.03C1932.99 1197.54 1932.07 1197.3 1931.01 1197.3C1929.84 1197.3 1928.83 1197.59 1927.97 1198.17C1927.13 1198.74 1926.48 1199.48 1926.02 1200.4C1925.57 1201.32 1925.34 1202.31 1925.34 1203.36V1205.05C1925.34 1206.49 1925.59 1207.72 1926.08 1208.72C1926.59 1209.71 1927.29 1210.47 1928.18 1210.99C1929.08 1211.51 1930.12 1211.76 1931.3 1211.76C1932.07 1211.76 1932.77 1211.66 1933.39 1211.44C1934.02 1211.22 1934.56 1210.88 1935.02 1210.45C1935.48 1210 1935.83 1209.44 1936.08 1208.78L1938.91 1209.58C1938.61 1210.54 1938.11 1211.38 1937.41 1212.11C1936.7 1212.83 1935.83 1213.4 1934.8 1213.8C1933.76 1214.2 1932.6 1214.4 1931.3 1214.4ZM1943.67 1214V1194.91H1946.5V1197.89H1946.75C1947.15 1196.87 1947.79 1196.08 1948.68 1195.52C1949.57 1194.95 1950.63 1194.66 1951.87 1194.66C1953.13 1194.66 1954.18 1194.95 1955.02 1195.52C1955.86 1196.08 1956.52 1196.87 1956.99 1197.89H1957.19C1957.68 1196.91 1958.42 1196.12 1959.39 1195.54C1960.37 1194.95 1961.54 1194.66 1962.91 1194.66C1964.62 1194.66 1966.01 1195.19 1967.1 1196.26C1968.19 1197.32 1968.73 1198.98 1968.73 1201.22V1214H1965.79V1201.22C1965.79 1199.81 1965.41 1198.81 1964.64 1198.2C1963.87 1197.6 1962.96 1197.3 1961.92 1197.3C1960.57 1197.3 1959.53 1197.7 1958.8 1198.51C1958.06 1199.32 1957.69 1200.34 1957.69 1201.57V1214H1954.71V1200.92C1954.71 1199.84 1954.36 1198.97 1953.65 1198.3C1952.95 1197.63 1952.04 1197.3 1950.93 1197.3C1950.17 1197.3 1949.45 1197.5 1948.79 1197.9C1948.14 1198.31 1947.61 1198.87 1947.2 1199.59C1946.8 1200.31 1946.6 1201.13 1946.6 1202.07V1214H1943.67ZM1982.1 1214.4C1980.26 1214.4 1978.67 1213.99 1977.33 1213.18C1976.01 1212.36 1974.99 1211.22 1974.26 1209.75C1973.55 1208.27 1973.2 1206.56 1973.2 1204.6C1973.2 1202.65 1973.55 1200.92 1974.26 1199.43C1974.99 1197.93 1975.99 1196.77 1977.27 1195.93C1978.57 1195.08 1980.07 1194.66 1981.8 1194.66C1982.79 1194.66 1983.77 1194.83 1984.74 1195.16C1985.71 1195.49 1986.59 1196.03 1987.39 1196.77C1988.19 1197.51 1988.82 1198.49 1989.29 1199.71C1989.76 1200.92 1990 1202.42 1990 1204.21V1205.45H1975.28V1202.91H1987.02C1987.02 1201.84 1986.8 1200.87 1986.37 1200.03C1985.95 1199.18 1985.34 1198.52 1984.56 1198.03C1983.78 1197.54 1982.86 1197.3 1981.8 1197.3C1980.63 1197.3 1979.62 1197.59 1978.76 1198.17C1977.92 1198.74 1977.27 1199.48 1976.81 1200.4C1976.36 1201.32 1976.13 1202.31 1976.13 1203.36V1205.05C1976.13 1206.49 1976.38 1207.72 1976.88 1208.72C1977.38 1209.71 1978.08 1210.47 1978.98 1210.99C1979.87 1211.51 1980.91 1211.76 1982.1 1211.76C1982.87 1211.76 1983.56 1211.66 1984.18 1211.44C1984.81 1211.22 1985.36 1210.88 1985.81 1210.45C1986.27 1210 1986.62 1209.44 1986.87 1208.78L1989.7 1209.58C1989.4 1210.54 1988.9 1211.38 1988.2 1212.11C1987.49 1212.83 1986.62 1213.4 1985.59 1213.8C1984.55 1214.2 1983.39 1214.4 1982.1 1214.4ZM1997.4 1202.52V1214H1994.46V1194.91H1997.3V1197.89H1997.54C1997.99 1196.92 1998.67 1196.14 1999.58 1195.56C2000.49 1194.96 2001.67 1194.66 2003.11 1194.66C2004.41 1194.66 2005.54 1194.93 2006.51 1195.46C2007.48 1195.98 2008.23 1196.77 2008.77 1197.84C2009.31 1198.9 2009.58 1200.25 2009.58 1201.87V1214H2006.64V1202.07C2006.64 1200.57 2006.25 1199.4 2005.47 1198.56C2004.7 1197.72 2003.63 1197.3 2002.27 1197.3C2001.33 1197.3 2000.49 1197.5 1999.76 1197.9C1999.03 1198.31 1998.45 1198.9 1998.03 1199.68C1997.61 1200.46 1997.4 1201.41 1997.4 1202.52ZM2023.24 1194.91V1197.39H2013.34V1194.91H2023.24ZM2016.23 1190.34H2019.16V1208.53C2019.16 1209.36 2019.28 1209.98 2019.52 1210.4C2019.77 1210.8 2020.09 1211.08 2020.47 1211.22C2020.86 1211.35 2021.27 1211.41 2021.7 1211.41C2022.02 1211.41 2022.29 1211.4 2022.49 1211.37C2022.7 1211.32 2022.87 1211.29 2022.99 1211.27L2023.59 1213.9C2023.39 1213.98 2023.11 1214.05 2022.75 1214.12C2022.4 1214.21 2021.95 1214.25 2021.4 1214.25C2020.57 1214.25 2019.76 1214.07 2018.96 1213.71C2018.18 1213.36 2017.52 1212.82 2017 1212.09C2016.49 1211.36 2016.23 1210.44 2016.23 1209.33V1190.34ZM2043.11 1214.45C2041.9 1214.45 2040.8 1214.22 2039.82 1213.76C2038.83 1213.3 2038.05 1212.63 2037.47 1211.76C2036.89 1210.88 2036.6 1209.82 2036.6 1208.58C2036.6 1207.49 2036.81 1206.6 2037.25 1205.92C2037.68 1205.23 2038.25 1204.69 2038.97 1204.31C2039.69 1203.92 2040.49 1203.63 2041.36 1203.44C2042.24 1203.24 2043.12 1203.08 2044.01 1202.96C2045.17 1202.81 2046.11 1202.7 2046.83 1202.63C2047.56 1202.54 2048.09 1202.41 2048.42 1202.22C2048.76 1202.03 2048.93 1201.7 2048.93 1201.22V1201.12C2048.93 1199.9 2048.59 1198.94 2047.92 1198.26C2047.26 1197.59 2046.25 1197.25 2044.9 1197.25C2043.5 1197.25 2042.4 1197.55 2041.61 1198.17C2040.81 1198.78 2040.25 1199.43 2039.93 1200.13L2037.15 1199.13C2037.64 1197.97 2038.31 1197.07 2039.13 1196.43C2039.97 1195.77 2040.88 1195.32 2041.87 1195.06C2042.86 1194.79 2043.84 1194.66 2044.8 1194.66C2045.42 1194.66 2046.12 1194.74 2046.92 1194.88C2047.72 1195.03 2048.49 1195.32 2049.24 1195.77C2049.99 1196.21 2050.62 1196.89 2051.12 1197.79C2051.61 1198.7 2051.86 1199.91 2051.86 1201.42V1214H2048.93V1211.41H2048.78C2048.58 1211.83 2048.25 1212.27 2047.79 1212.74C2047.32 1213.22 2046.7 1213.62 2045.93 1213.95C2045.16 1214.28 2044.22 1214.45 2043.11 1214.45ZM2043.56 1211.81C2044.72 1211.81 2045.7 1211.58 2046.49 1211.13C2047.3 1210.67 2047.9 1210.08 2048.31 1209.36C2048.72 1208.64 2048.93 1207.88 2048.93 1207.09V1204.4C2048.8 1204.55 2048.53 1204.69 2048.11 1204.81C2047.69 1204.93 2047.21 1205.03 2046.67 1205.13C2046.13 1205.21 2045.6 1205.28 2045.09 1205.35C2044.58 1205.41 2044.17 1205.46 2043.86 1205.5C2043.1 1205.6 2042.38 1205.76 2041.72 1205.98C2041.07 1206.2 2040.54 1206.53 2040.13 1206.97C2039.73 1207.4 2039.53 1207.98 2039.53 1208.73C2039.53 1209.75 2039.91 1210.52 2040.66 1211.04C2041.43 1211.56 2042.39 1211.81 2043.56 1211.81ZM2060.15 1202.52V1214H2057.22V1194.91H2060.05V1197.89H2060.3C2060.75 1196.92 2061.43 1196.14 2062.34 1195.56C2063.25 1194.96 2064.42 1194.66 2065.87 1194.66C2067.16 1194.66 2068.29 1194.93 2069.26 1195.46C2070.23 1195.98 2070.98 1196.77 2071.52 1197.84C2072.06 1198.9 2072.33 1200.25 2072.33 1201.87V1214H2069.4V1202.07C2069.4 1200.57 2069.01 1199.4 2068.23 1198.56C2067.45 1197.72 2066.38 1197.3 2065.02 1197.3C2064.08 1197.3 2063.25 1197.5 2062.51 1197.9C2061.78 1198.31 2061.21 1198.9 2060.78 1199.68C2060.36 1200.46 2060.15 1201.41 2060.15 1202.52ZM2084.9 1214.4C2083.31 1214.4 2081.9 1214 2080.68 1213.19C2079.47 1212.38 2078.51 1211.24 2077.83 1209.76C2077.14 1208.28 2076.79 1206.53 2076.79 1204.5C2076.79 1202.5 2077.14 1200.76 2077.83 1199.28C2078.51 1197.81 2079.47 1196.67 2080.7 1195.87C2081.92 1195.06 2083.34 1194.66 2084.95 1194.66C2086.19 1194.66 2087.17 1194.87 2087.89 1195.28C2088.62 1195.69 2089.18 1196.15 2089.56 1196.67C2089.95 1197.19 2090.25 1197.61 2090.47 1197.94H2090.72V1188.55H2093.65V1214H2090.81V1211.07H2090.47C2090.25 1211.41 2089.94 1211.85 2089.55 1212.38C2089.15 1212.91 2088.58 1213.37 2087.84 1213.79C2087.11 1214.19 2086.12 1214.4 2084.9 1214.4ZM2085.3 1211.76C2086.47 1211.76 2087.47 1211.46 2088.28 1210.84C2089.09 1210.22 2089.71 1209.36 2090.13 1208.27C2090.55 1207.17 2090.76 1205.9 2090.76 1204.45C2090.76 1203.03 2090.56 1201.78 2090.14 1200.71C2089.73 1199.64 2089.12 1198.8 2088.3 1198.2C2087.49 1197.6 2086.49 1197.3 2085.3 1197.3C2084.05 1197.3 2083.02 1197.61 2082.19 1198.25C2081.37 1198.88 2080.75 1199.74 2080.34 1200.83C2079.93 1201.9 2079.73 1203.11 2079.73 1204.45C2079.73 1205.81 2079.94 1207.05 2080.35 1208.16C2080.77 1209.26 2081.39 1210.14 2082.21 1210.79C2083.04 1211.44 2084.07 1211.76 2085.3 1211.76ZM2116.48 1214.4C2114.89 1214.4 2113.48 1214 2112.27 1213.19C2111.05 1212.38 2110.1 1211.24 2109.41 1209.76C2108.72 1208.28 2108.38 1206.53 2108.38 1204.5C2108.38 1202.5 2108.72 1200.76 2109.41 1199.28C2110.1 1197.81 2111.05 1196.67 2112.28 1195.87C2113.51 1195.06 2114.92 1194.66 2116.53 1194.66C2117.77 1194.66 2118.75 1194.87 2119.48 1195.28C2120.2 1195.69 2120.76 1196.15 2121.14 1196.67C2121.53 1197.19 2121.83 1197.61 2122.05 1197.94H2122.3V1188.55H2125.23V1214H2122.4V1211.07H2122.05C2121.83 1211.41 2121.53 1211.85 2121.13 1212.38C2120.73 1212.91 2120.16 1213.37 2119.43 1213.79C2118.69 1214.19 2117.71 1214.4 2116.48 1214.4ZM2116.88 1211.76C2118.05 1211.76 2119.05 1211.46 2119.86 1210.84C2120.67 1210.22 2121.29 1209.36 2121.71 1208.27C2122.14 1207.17 2122.35 1205.9 2122.35 1204.45C2122.35 1203.03 2122.14 1201.78 2121.73 1200.71C2121.31 1199.64 2120.7 1198.8 2119.89 1198.2C2119.07 1197.6 2118.07 1197.3 2116.88 1197.3C2115.64 1197.3 2114.6 1197.61 2113.77 1198.25C2112.95 1198.88 2112.33 1199.74 2111.92 1200.83C2111.51 1201.9 2111.31 1203.11 2111.31 1204.45C2111.31 1205.81 2111.52 1207.05 2111.93 1208.16C2112.35 1209.26 2112.98 1210.14 2113.8 1210.79C2114.62 1211.44 2115.65 1211.76 2116.88 1211.76ZM2139.01 1214.4C2137.17 1214.4 2135.59 1213.99 2134.25 1213.18C2132.93 1212.36 2131.9 1211.22 2131.18 1209.75C2130.47 1208.27 2130.11 1206.56 2130.11 1204.6C2130.11 1202.65 2130.47 1200.92 2131.18 1199.43C2131.9 1197.93 2132.91 1196.77 2134.19 1195.93C2135.48 1195.08 2136.99 1194.66 2138.72 1194.66C2139.71 1194.66 2140.69 1194.83 2141.66 1195.16C2142.63 1195.49 2143.51 1196.03 2144.31 1196.77C2145.1 1197.51 2145.74 1198.49 2146.21 1199.71C2146.68 1200.92 2146.92 1202.42 2146.92 1204.21V1205.45H2132.2V1202.91H2143.94C2143.94 1201.84 2143.72 1200.87 2143.29 1200.03C2142.87 1199.18 2142.26 1198.52 2141.48 1198.03C2140.7 1197.54 2139.78 1197.3 2138.72 1197.3C2137.55 1197.3 2136.54 1197.59 2135.68 1198.17C2134.84 1198.74 2134.19 1199.48 2133.73 1200.4C2133.28 1201.32 2133.05 1202.31 2133.05 1203.36V1205.05C2133.05 1206.49 2133.3 1207.72 2133.79 1208.72C2134.3 1209.71 2135 1210.47 2135.89 1210.99C2136.79 1211.51 2137.83 1211.76 2139.01 1211.76C2139.78 1211.76 2140.48 1211.66 2141.1 1211.44C2141.73 1211.22 2142.27 1210.88 2142.73 1210.45C2143.19 1210 2143.54 1209.44 2143.79 1208.78L2146.62 1209.58C2146.32 1210.54 2145.82 1211.38 2145.12 1212.11C2144.41 1212.83 2143.54 1213.4 2142.51 1213.8C2141.47 1214.2 2140.31 1214.4 2139.01 1214.4ZM2154.31 1188.55V1214H2151.38V1188.55H2154.31ZM2159.69 1214V1194.91H2162.62V1214H2159.69ZM2161.18 1191.73C2160.61 1191.73 2160.11 1191.53 2159.7 1191.14C2159.29 1190.75 2159.09 1190.29 2159.09 1189.74C2159.09 1189.19 2159.29 1188.72 2159.7 1188.33C2160.11 1187.94 2160.61 1187.75 2161.18 1187.75C2161.75 1187.75 2162.24 1187.94 2162.64 1188.33C2163.06 1188.72 2163.27 1189.19 2163.27 1189.74C2163.27 1190.29 2163.06 1190.75 2162.64 1191.14C2162.24 1191.53 2161.75 1191.73 2161.18 1191.73ZM2183.6 1194.91L2176.54 1214H2173.56L2166.5 1194.91H2169.68L2174.95 1210.12H2175.15L2180.42 1194.91H2183.6ZM2194.8 1214.4C2192.96 1214.4 2191.37 1213.99 2190.04 1213.18C2188.71 1212.36 2187.69 1211.22 2186.97 1209.75C2186.25 1208.27 2185.9 1206.56 2185.9 1204.6C2185.9 1202.65 2186.25 1200.92 2186.97 1199.43C2187.69 1197.93 2188.69 1196.77 2189.97 1195.93C2191.27 1195.08 2192.77 1194.66 2194.5 1194.66C2195.49 1194.66 2196.47 1194.83 2197.44 1195.16C2198.41 1195.49 2199.29 1196.03 2200.09 1196.77C2200.89 1197.51 2201.52 1198.49 2201.99 1199.71C2202.46 1200.92 2202.7 1202.42 2202.7 1204.21V1205.45H2187.98V1202.91H2199.72C2199.72 1201.84 2199.5 1200.87 2199.07 1200.03C2198.65 1199.18 2198.04 1198.52 2197.26 1198.03C2196.48 1197.54 2195.56 1197.3 2194.5 1197.3C2193.33 1197.3 2192.32 1197.59 2191.46 1198.17C2190.62 1198.74 2189.97 1199.48 2189.51 1200.4C2189.06 1201.32 2188.83 1202.31 2188.83 1203.36V1205.05C2188.83 1206.49 2189.08 1207.72 2189.58 1208.72C2190.08 1209.71 2190.78 1210.47 2191.68 1210.99C2192.57 1211.51 2193.61 1211.76 2194.8 1211.76C2195.57 1211.76 2196.26 1211.66 2196.88 1211.44C2197.51 1211.22 2198.06 1210.88 2198.51 1210.45C2198.97 1210 2199.32 1209.44 2199.57 1208.78L2202.4 1209.58C2202.1 1210.54 2201.6 1211.38 2200.9 1212.11C2200.19 1212.83 2199.32 1213.4 2198.29 1213.8C2197.25 1214.2 2196.09 1214.4 2194.8 1214.4ZM2207.16 1214V1194.91H2210V1197.79H2210.19C2210.54 1196.85 2211.17 1196.08 2212.08 1195.49C2213 1194.9 2214.02 1194.61 2215.17 1194.61C2215.38 1194.61 2215.65 1194.61 2215.97 1194.62C2216.3 1194.63 2216.54 1194.64 2216.71 1194.66V1197.64C2216.61 1197.62 2216.38 1197.58 2216.02 1197.53C2215.68 1197.47 2215.31 1197.44 2214.92 1197.44C2213.99 1197.44 2213.16 1197.64 2212.43 1198.03C2211.71 1198.41 2211.14 1198.94 2210.72 1199.62C2210.3 1200.29 2210.1 1201.06 2210.1 1201.92V1214H2207.16ZM2237.78 1214.4C2236.06 1214.4 2234.55 1213.99 2233.25 1213.17C2231.95 1212.35 2230.94 1211.2 2230.21 1209.72C2229.49 1208.25 2229.13 1206.53 2229.13 1204.55C2229.13 1202.57 2229.49 1200.83 2230.21 1199.35C2230.94 1197.86 2231.95 1196.71 2233.25 1195.89C2234.55 1195.07 2236.06 1194.66 2237.78 1194.66C2239.51 1194.66 2241.02 1195.07 2242.31 1195.89C2243.61 1196.71 2244.62 1197.86 2245.34 1199.35C2246.07 1200.83 2246.43 1202.57 2246.43 1204.55C2246.43 1206.53 2246.07 1208.25 2245.34 1209.72C2244.62 1211.2 2243.61 1212.35 2242.31 1213.17C2241.02 1213.99 2239.51 1214.4 2237.78 1214.4ZM2237.78 1211.76C2239.09 1211.76 2240.17 1211.43 2241.02 1210.76C2241.86 1210.08 2242.49 1209.2 2242.89 1208.11C2243.3 1207.01 2243.5 1205.83 2243.5 1204.55C2243.5 1203.28 2243.3 1202.09 2242.89 1200.99C2242.49 1199.88 2241.86 1198.99 2241.02 1198.31C2240.17 1197.64 2239.09 1197.3 2237.78 1197.3C2236.47 1197.3 2235.4 1197.64 2234.55 1198.31C2233.71 1198.99 2233.08 1199.88 2232.68 1200.99C2232.27 1202.09 2232.07 1203.28 2232.07 1204.55C2232.07 1205.83 2232.27 1207.01 2232.68 1208.11C2233.08 1209.2 2233.71 1210.08 2234.55 1210.76C2235.4 1211.43 2236.47 1211.76 2237.78 1211.76ZM2253.85 1202.52V1214H2250.91V1194.91H2253.75V1197.89H2253.99C2254.44 1196.92 2255.12 1196.14 2256.03 1195.56C2256.94 1194.96 2258.12 1194.66 2259.56 1194.66C2260.86 1194.66 2261.99 1194.93 2262.96 1195.46C2263.93 1195.98 2264.68 1196.77 2265.22 1197.84C2265.76 1198.9 2266.03 1200.25 2266.03 1201.87V1214H2263.09V1202.07C2263.09 1200.57 2262.7 1199.4 2261.92 1198.56C2261.15 1197.72 2260.08 1197.3 2258.72 1197.3C2257.78 1197.3 2256.94 1197.5 2256.21 1197.9C2255.48 1198.31 2254.9 1198.9 2254.48 1199.68C2254.06 1200.46 2253.85 1201.41 2253.85 1202.52ZM1921.3 1248.19V1236.91H1924.23V1256H1921.3V1252.77H1921.1C1920.65 1253.74 1919.96 1254.56 1919.01 1255.24C1918.07 1255.91 1916.88 1256.25 1915.43 1256.25C1914.24 1256.25 1913.18 1255.99 1912.25 1255.47C1911.32 1254.94 1910.59 1254.14 1910.06 1253.08C1909.53 1252.01 1909.27 1250.66 1909.27 1249.04V1236.91H1912.2V1248.84C1912.2 1250.23 1912.59 1251.34 1913.37 1252.17C1914.16 1253 1915.16 1253.41 1916.38 1253.41C1917.11 1253.41 1917.85 1253.23 1918.6 1252.86C1919.37 1252.48 1920 1251.91 1920.52 1251.14C1921.04 1250.37 1921.3 1249.39 1921.3 1248.19ZM1932.54 1244.52V1256H1929.61V1236.91H1932.44V1239.89H1932.69C1933.14 1238.92 1933.82 1238.14 1934.73 1237.56C1935.64 1236.96 1936.81 1236.66 1938.26 1236.66C1939.55 1236.66 1940.68 1236.93 1941.65 1237.46C1942.62 1237.98 1943.37 1238.77 1943.91 1239.84C1944.45 1240.9 1944.72 1242.25 1944.72 1243.87V1256H1941.79V1244.07C1941.79 1242.57 1941.4 1241.4 1940.62 1240.56C1939.84 1239.72 1938.77 1239.3 1937.41 1239.3C1936.48 1239.3 1935.64 1239.5 1934.9 1239.9C1934.17 1240.31 1933.6 1240.9 1933.17 1241.68C1932.75 1242.46 1932.54 1243.41 1932.54 1244.52ZM1950.08 1256V1236.91H1953.01V1256H1950.08ZM1951.57 1233.73C1951 1233.73 1950.51 1233.53 1950.09 1233.14C1949.69 1232.75 1949.48 1232.29 1949.48 1231.74C1949.48 1231.19 1949.69 1230.72 1950.09 1230.33C1950.51 1229.94 1951 1229.75 1951.57 1229.75C1952.14 1229.75 1952.63 1229.94 1953.04 1230.33C1953.45 1230.72 1953.66 1231.19 1953.66 1231.74C1953.66 1232.29 1953.45 1232.75 1953.04 1233.14C1952.63 1233.53 1952.14 1233.73 1951.57 1233.73ZM1971.41 1263.16V1253.07H1971.16C1970.95 1253.41 1970.64 1253.85 1970.24 1254.38C1969.84 1254.91 1969.28 1255.37 1968.54 1255.79C1967.8 1256.19 1966.82 1256.4 1965.59 1256.4C1964 1256.4 1962.6 1256 1961.38 1255.19C1960.16 1254.38 1959.21 1253.24 1958.52 1251.76C1957.83 1250.28 1957.49 1248.53 1957.49 1246.5C1957.49 1244.5 1957.83 1242.76 1958.52 1241.28C1959.21 1239.81 1960.17 1238.67 1961.39 1237.87C1962.62 1237.06 1964.04 1236.66 1965.64 1236.66C1966.89 1236.66 1967.87 1236.87 1968.59 1237.28C1969.32 1237.69 1969.87 1238.15 1970.26 1238.67C1970.64 1239.19 1970.95 1239.61 1971.16 1239.94H1971.51V1236.91H1974.34V1263.16H1971.41ZM1965.99 1253.76C1967.17 1253.76 1968.16 1253.46 1968.97 1252.84C1969.79 1252.22 1970.4 1251.36 1970.83 1250.27C1971.25 1249.17 1971.46 1247.9 1971.46 1246.45C1971.46 1245.03 1971.25 1243.78 1970.84 1242.71C1970.42 1241.64 1969.81 1240.8 1969 1240.2C1968.19 1239.6 1967.19 1239.3 1965.99 1239.3C1964.75 1239.3 1963.71 1239.61 1962.88 1240.25C1962.06 1240.88 1961.45 1241.74 1961.03 1242.83C1960.63 1243.9 1960.42 1245.11 1960.42 1246.45C1960.42 1247.81 1960.63 1249.05 1961.05 1250.16C1961.47 1251.26 1962.09 1252.14 1962.91 1252.79C1963.74 1253.44 1964.77 1253.76 1965.99 1253.76ZM1991.74 1248.19V1236.91H1994.68V1256H1991.74V1252.77H1991.55C1991.1 1253.74 1990.4 1254.56 1989.46 1255.24C1988.51 1255.91 1987.32 1256.25 1985.88 1256.25C1984.69 1256.25 1983.62 1255.99 1982.7 1255.47C1981.77 1254.94 1981.04 1254.14 1980.51 1253.08C1979.98 1252.01 1979.71 1250.66 1979.71 1249.04V1236.91H1982.65V1248.84C1982.65 1250.23 1983.04 1251.34 1983.82 1252.17C1984.6 1253 1985.6 1253.41 1986.82 1253.41C1987.55 1253.41 1988.29 1253.23 1989.05 1252.86C1989.81 1252.48 1990.45 1251.91 1990.96 1251.14C1991.48 1250.37 1991.74 1249.39 1991.74 1248.19ZM2008.05 1256.4C2006.22 1256.4 2004.63 1255.99 2003.29 1255.18C2001.97 1254.36 2000.95 1253.22 2000.22 1251.75C1999.51 1250.27 1999.16 1248.56 1999.16 1246.6C1999.16 1244.65 1999.51 1242.92 2000.22 1241.43C2000.95 1239.93 2001.95 1238.77 2003.23 1237.93C2004.52 1237.08 2006.03 1236.66 2007.76 1236.66C2008.75 1236.66 2009.73 1236.83 2010.7 1237.16C2011.67 1237.49 2012.55 1238.03 2013.35 1238.77C2014.14 1239.51 2014.78 1240.49 2015.25 1241.71C2015.72 1242.92 2015.96 1244.42 2015.96 1246.21V1247.45H2001.24V1244.91H2012.98C2012.98 1243.84 2012.76 1242.87 2012.33 1242.03C2011.91 1241.18 2011.3 1240.52 2010.52 1240.03C2009.74 1239.54 2008.82 1239.3 2007.76 1239.3C2006.59 1239.3 2005.58 1239.59 2004.72 1240.17C2003.88 1240.74 2003.23 1241.48 2002.77 1242.4C2002.32 1243.32 2002.09 1244.31 2002.09 1245.36V1247.05C2002.09 1248.49 2002.34 1249.72 2002.83 1250.72C2003.34 1251.71 2004.04 1252.47 2004.93 1252.99C2005.83 1253.51 2006.87 1253.76 2008.05 1253.76C2008.83 1253.76 2009.52 1253.66 2010.14 1253.44C2010.77 1253.22 2011.32 1252.88 2011.77 1252.45C2012.23 1252 2012.58 1251.44 2012.83 1250.78L2015.66 1251.58C2015.36 1252.54 2014.86 1253.38 2014.16 1254.11C2013.45 1254.83 2012.58 1255.4 2011.55 1255.8C2010.51 1256.2 2009.35 1256.4 2008.05 1256.4ZM2030.27 1263.16V1236.91H2033.1V1239.94H2033.45C2033.66 1239.61 2033.96 1239.19 2034.34 1238.67C2034.73 1238.15 2035.29 1237.69 2036.01 1237.28C2036.74 1236.87 2037.72 1236.66 2038.97 1236.66C2040.57 1236.66 2041.99 1237.06 2043.22 1237.87C2044.44 1238.67 2045.4 1239.81 2046.09 1241.28C2046.78 1242.76 2047.12 1244.5 2047.12 1246.5C2047.12 1248.53 2046.78 1250.28 2046.09 1251.76C2045.4 1253.24 2044.45 1254.38 2043.23 1255.19C2042.01 1256 2040.61 1256.4 2039.02 1256.4C2037.79 1256.4 2036.81 1256.19 2036.07 1255.79C2035.33 1255.37 2034.76 1254.91 2034.37 1254.38C2033.97 1253.85 2033.66 1253.41 2033.45 1253.07H2033.2V1263.16H2030.27ZM2033.15 1246.45C2033.15 1247.9 2033.36 1249.17 2033.78 1250.27C2034.21 1251.36 2034.82 1252.22 2035.63 1252.84C2036.45 1253.46 2037.44 1253.76 2038.62 1253.76C2039.84 1253.76 2040.87 1253.44 2041.69 1252.79C2042.52 1252.14 2043.14 1251.26 2043.55 1250.16C2043.97 1249.05 2044.19 1247.81 2044.19 1246.45C2044.19 1245.11 2043.98 1243.9 2043.56 1242.83C2043.16 1241.74 2042.54 1240.88 2041.71 1240.25C2040.89 1239.61 2039.86 1239.3 2038.62 1239.3C2037.42 1239.3 2036.42 1239.6 2035.61 1240.2C2034.8 1240.8 2034.18 1241.64 2033.77 1242.71C2033.36 1243.78 2033.15 1245.03 2033.15 1246.45ZM2051.59 1256V1236.91H2054.43V1239.79H2054.63C2054.97 1238.85 2055.6 1238.08 2056.52 1237.49C2057.43 1236.9 2058.45 1236.61 2059.6 1236.61C2059.81 1236.61 2060.08 1236.61 2060.41 1236.62C2060.73 1236.63 2060.97 1236.64 2061.14 1236.66V1239.64C2061.04 1239.62 2060.81 1239.58 2060.46 1239.53C2060.11 1239.47 2059.74 1239.44 2059.35 1239.44C2058.42 1239.44 2057.59 1239.64 2056.86 1240.03C2056.14 1240.41 2055.57 1240.94 2055.15 1241.62C2054.73 1242.29 2054.53 1243.06 2054.53 1243.92V1256H2051.59ZM2071.79 1256.4C2070.07 1256.4 2068.55 1255.99 2067.25 1255.17C2065.96 1254.35 2064.95 1253.2 2064.22 1251.72C2063.5 1250.25 2063.14 1248.53 2063.14 1246.55C2063.14 1244.57 2063.5 1242.83 2064.22 1241.35C2064.95 1239.86 2065.96 1238.71 2067.25 1237.89C2068.55 1237.07 2070.07 1236.66 2071.79 1236.66C2073.51 1236.66 2075.02 1237.07 2076.31 1237.89C2077.62 1238.71 2078.63 1239.86 2079.35 1241.35C2080.08 1242.83 2080.44 1244.57 2080.44 1246.55C2080.44 1248.53 2080.08 1250.25 2079.35 1251.72C2078.63 1253.2 2077.62 1254.35 2076.31 1255.17C2075.02 1255.99 2073.51 1256.4 2071.79 1256.4ZM2071.79 1253.76C2073.1 1253.76 2074.18 1253.43 2075.02 1252.76C2075.87 1252.08 2076.49 1251.2 2076.9 1250.11C2077.3 1249.01 2077.51 1247.83 2077.51 1246.55C2077.51 1245.28 2077.3 1244.09 2076.9 1242.99C2076.49 1241.88 2075.87 1240.99 2075.02 1240.31C2074.18 1239.64 2073.1 1239.3 2071.79 1239.3C2070.48 1239.3 2069.4 1239.64 2068.56 1240.31C2067.71 1240.99 2067.09 1241.88 2066.68 1242.99C2066.28 1244.09 2066.07 1245.28 2066.07 1246.55C2066.07 1247.83 2066.28 1249.01 2066.68 1250.11C2067.09 1251.2 2067.71 1252.08 2068.56 1252.76C2069.4 1253.43 2070.48 1253.76 2071.79 1253.76ZM2084.92 1263.16V1236.91H2087.75V1239.94H2088.1C2088.32 1239.61 2088.61 1239.19 2089 1238.67C2089.38 1238.15 2089.94 1237.69 2090.66 1237.28C2091.39 1236.87 2092.38 1236.66 2093.62 1236.66C2095.23 1236.66 2096.64 1237.06 2097.87 1237.87C2099.1 1238.67 2100.05 1239.81 2100.74 1241.28C2101.43 1242.76 2101.77 1244.5 2101.77 1246.5C2101.77 1248.53 2101.43 1250.28 2100.74 1251.76C2100.05 1253.24 2099.1 1254.38 2097.88 1255.19C2096.66 1256 2095.26 1256.4 2093.67 1256.4C2092.44 1256.4 2091.46 1256.19 2090.72 1255.79C2089.99 1255.37 2089.42 1254.91 2089.02 1254.38C2088.62 1253.85 2088.32 1253.41 2088.1 1253.07H2087.85V1263.16H2084.92ZM2087.8 1246.45C2087.8 1247.9 2088.01 1249.17 2088.44 1250.27C2088.86 1251.36 2089.48 1252.22 2090.29 1252.84C2091.1 1253.46 2092.09 1253.76 2093.27 1253.76C2094.5 1253.76 2095.52 1253.44 2096.34 1252.79C2097.17 1252.14 2097.79 1251.26 2098.21 1250.16C2098.63 1249.05 2098.84 1247.81 2098.84 1246.45C2098.84 1245.11 2098.63 1243.9 2098.22 1242.83C2097.81 1241.74 2097.19 1240.88 2096.37 1240.25C2095.55 1239.61 2094.51 1239.3 2093.27 1239.3C2092.08 1239.3 2091.08 1239.6 2090.26 1240.2C2089.45 1240.8 2088.84 1241.64 2088.42 1242.71C2088.01 1243.78 2087.8 1245.03 2087.8 1246.45ZM2114 1256.4C2112.28 1256.4 2110.77 1255.99 2109.47 1255.17C2108.17 1254.35 2107.16 1253.2 2106.43 1251.72C2105.71 1250.25 2105.35 1248.53 2105.35 1246.55C2105.35 1244.57 2105.71 1242.83 2106.43 1241.35C2107.16 1239.86 2108.17 1238.71 2109.47 1237.89C2110.77 1237.07 2112.28 1236.66 2114 1236.66C2115.73 1236.66 2117.23 1237.07 2118.53 1237.89C2119.83 1238.71 2120.84 1239.86 2121.56 1241.35C2122.29 1242.83 2122.65 1244.57 2122.65 1246.55C2122.65 1248.53 2122.29 1250.25 2121.56 1251.72C2120.84 1253.2 2119.83 1254.35 2118.53 1255.17C2117.23 1255.99 2115.73 1256.4 2114 1256.4ZM2114 1253.76C2115.31 1253.76 2116.39 1253.43 2117.23 1252.76C2118.08 1252.08 2118.7 1251.2 2119.11 1250.11C2119.52 1249.01 2119.72 1247.83 2119.72 1246.55C2119.72 1245.28 2119.52 1244.09 2119.11 1242.99C2118.7 1241.88 2118.08 1240.99 2117.23 1240.31C2116.39 1239.64 2115.31 1239.3 2114 1239.3C2112.69 1239.3 2111.62 1239.64 2110.77 1240.31C2109.93 1240.99 2109.3 1241.88 2108.89 1242.99C2108.49 1244.09 2108.29 1245.28 2108.29 1246.55C2108.29 1247.83 2108.49 1249.01 2108.89 1250.11C2109.3 1251.2 2109.93 1252.08 2110.77 1252.76C2111.62 1253.43 2112.69 1253.76 2114 1253.76ZM2140.65 1241.18L2138.02 1241.93C2137.85 1241.49 2137.61 1241.06 2137.28 1240.65C2136.97 1240.23 2136.54 1239.88 2135.99 1239.61C2135.45 1239.33 2134.75 1239.2 2133.89 1239.2C2132.72 1239.2 2131.75 1239.47 2130.97 1240C2130.2 1240.53 2129.82 1241.21 2129.82 1242.03C2129.82 1242.76 2130.08 1243.33 2130.61 1243.76C2131.14 1244.18 2131.97 1244.53 2133.1 1244.81L2135.93 1245.51C2137.64 1245.92 2138.91 1246.56 2139.75 1247.41C2140.58 1248.26 2141 1249.35 2141 1250.68C2141 1251.77 2140.69 1252.75 2140.06 1253.61C2139.44 1254.48 2138.57 1255.15 2137.45 1255.65C2136.33 1256.15 2135.03 1256.4 2133.54 1256.4C2131.6 1256.4 2129.98 1255.98 2128.71 1255.13C2127.43 1254.28 2126.63 1253.05 2126.29 1251.43L2129.07 1250.73C2129.33 1251.76 2129.84 1252.53 2130.57 1253.04C2131.32 1253.56 2132.29 1253.81 2133.49 1253.81C2134.86 1253.81 2135.95 1253.52 2136.75 1252.94C2137.56 1252.35 2137.97 1251.65 2137.97 1250.83C2137.97 1250.17 2137.74 1249.61 2137.27 1249.16C2136.81 1248.71 2136.1 1248.37 2135.13 1248.14L2131.95 1247.4C2130.2 1246.98 2128.92 1246.34 2128.1 1245.47C2127.29 1244.59 2126.88 1243.5 2126.88 1242.18C2126.88 1241.1 2127.18 1240.15 2127.79 1239.32C2128.4 1238.49 2129.24 1237.84 2130.29 1237.37C2131.35 1236.9 2132.55 1236.66 2133.89 1236.66C2135.78 1236.66 2137.26 1237.07 2138.34 1237.9C2139.43 1238.73 2140.2 1239.83 2140.65 1241.18ZM2145.42 1256V1236.91H2148.35V1256H2145.42ZM2146.91 1233.73C2146.34 1233.73 2145.84 1233.53 2145.43 1233.14C2145.02 1232.75 2144.82 1232.29 2144.82 1231.74C2144.82 1231.19 2145.02 1230.72 2145.43 1230.33C2145.84 1229.94 2146.34 1229.75 2146.91 1229.75C2147.48 1229.75 2147.97 1229.94 2148.37 1230.33C2148.79 1230.72 2149 1231.19 2149 1231.74C2149 1232.29 2148.79 1232.75 2148.37 1233.14C2147.97 1233.53 2147.48 1233.73 2146.91 1233.73ZM2162.02 1236.91V1239.39H2152.13V1236.91H2162.02ZM2155.01 1232.34H2157.95V1250.53C2157.95 1251.36 2158.07 1251.98 2158.31 1252.4C2158.56 1252.8 2158.87 1253.08 2159.25 1253.22C2159.64 1253.35 2160.05 1253.41 2160.48 1253.41C2160.81 1253.41 2161.07 1253.4 2161.28 1253.37C2161.49 1253.32 2161.65 1253.29 2161.78 1253.27L2162.37 1255.9C2162.17 1255.98 2161.9 1256.05 2161.54 1256.12C2161.18 1256.21 2160.73 1256.25 2160.19 1256.25C2159.36 1256.25 2158.54 1256.07 2157.75 1255.71C2156.96 1255.36 2156.31 1254.82 2155.79 1254.09C2155.27 1253.36 2155.01 1252.44 2155.01 1251.33V1232.34ZM2166.44 1256V1236.91H2169.37V1256H2166.44ZM2167.93 1233.73C2167.36 1233.73 2166.86 1233.53 2166.45 1233.14C2166.04 1232.75 2165.84 1232.29 2165.84 1231.74C2165.84 1231.19 2166.04 1230.72 2166.45 1230.33C2166.86 1229.94 2167.36 1229.75 2167.93 1229.75C2168.5 1229.75 2168.99 1229.94 2169.4 1230.33C2169.81 1230.72 2170.02 1231.19 2170.02 1231.74C2170.02 1232.29 2169.81 1232.75 2169.4 1233.14C2168.99 1233.53 2168.5 1233.73 2167.93 1233.73ZM2182.5 1256.4C2180.77 1256.4 2179.26 1255.99 2177.96 1255.17C2176.67 1254.35 2175.66 1253.2 2174.93 1251.72C2174.21 1250.25 2173.85 1248.53 2173.85 1246.55C2173.85 1244.57 2174.21 1242.83 2174.93 1241.35C2175.66 1239.86 2176.67 1238.71 2177.96 1237.89C2179.26 1237.07 2180.77 1236.66 2182.5 1236.66C2184.22 1236.66 2185.73 1237.07 2187.02 1237.89C2188.32 1238.71 2189.33 1239.86 2190.06 1241.35C2190.78 1242.83 2191.15 1244.57 2191.15 1246.55C2191.15 1248.53 2190.78 1250.25 2190.06 1251.72C2189.33 1253.2 2188.32 1254.35 2187.02 1255.17C2185.73 1255.99 2184.22 1256.4 2182.5 1256.4ZM2182.5 1253.76C2183.81 1253.76 2184.88 1253.43 2185.73 1252.76C2186.58 1252.08 2187.2 1251.2 2187.61 1250.11C2188.01 1249.01 2188.22 1247.83 2188.22 1246.55C2188.22 1245.28 2188.01 1244.09 2187.61 1242.99C2187.2 1241.88 2186.58 1240.99 2185.73 1240.31C2184.88 1239.64 2183.81 1239.3 2182.5 1239.3C2181.19 1239.3 2180.11 1239.64 2179.27 1240.31C2178.42 1240.99 2177.8 1241.88 2177.39 1242.99C2176.98 1244.09 2176.78 1245.28 2176.78 1246.55C2176.78 1247.83 2176.98 1249.01 2177.39 1250.11C2177.8 1251.2 2178.42 1252.08 2179.27 1252.76C2180.11 1253.43 2181.19 1253.76 2182.5 1253.76ZM2198.56 1244.52V1256H2195.63V1236.91H2198.46V1239.89H2198.71C2199.16 1238.92 2199.84 1238.14 2200.75 1237.56C2201.66 1236.96 2202.84 1236.66 2204.28 1236.66C2205.57 1236.66 2206.7 1236.93 2207.67 1237.46C2208.64 1237.98 2209.39 1238.77 2209.93 1239.84C2210.47 1240.9 2210.74 1242.25 2210.74 1243.87V1256H2207.81V1244.07C2207.81 1242.57 2207.42 1241.4 2206.64 1240.56C2205.86 1239.72 2204.79 1239.3 2203.43 1239.3C2202.5 1239.3 2201.66 1239.5 2200.92 1239.9C2200.19 1240.31 2199.62 1240.9 2199.19 1241.68C2198.77 1242.46 2198.56 1243.41 2198.56 1244.52Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g\r\n id=\"ImplementChangesPathway\"\r\n className=\"map-btn\"\r\n onClick={ClickHandler(\"ImplementChangesPathway\")}\r\n >\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 4\"\r\n x=\"934\"\r\n y=\"1067\"\r\n width=\"572\"\r\n height=\"333\"\r\n rx=\"50\"\r\n fill=\"#396F9D\"\r\n />\r\n <path\r\n d=\"M1125.5 1105.18V1135H1121.89V1105.18H1125.5ZM1132.28 1135V1112.64H1135.6V1116.13H1135.89C1136.35 1114.94 1137.11 1114.01 1138.14 1113.35C1139.18 1112.68 1140.43 1112.35 1141.89 1112.35C1143.36 1112.35 1144.59 1112.68 1145.57 1113.35C1146.56 1114.01 1147.33 1114.94 1147.88 1116.13H1148.12C1148.69 1114.98 1149.55 1114.06 1150.69 1113.38C1151.84 1112.69 1153.21 1112.35 1154.81 1112.35C1156.81 1112.35 1158.45 1112.97 1159.72 1114.22C1160.99 1115.47 1161.63 1117.4 1161.63 1120.03V1135H1158.19V1120.03C1158.19 1118.38 1157.74 1117.2 1156.84 1116.49C1155.94 1115.79 1154.87 1115.43 1153.65 1115.43C1152.08 1115.43 1150.86 1115.91 1150 1116.86C1149.13 1117.8 1148.7 1118.99 1148.7 1120.44V1135H1145.21V1119.68C1145.21 1118.41 1144.79 1117.39 1143.97 1116.61C1143.14 1115.82 1142.08 1115.43 1140.78 1115.43C1139.89 1115.43 1139.05 1115.67 1138.27 1116.15C1137.51 1116.62 1136.89 1117.28 1136.41 1118.13C1135.95 1118.96 1135.71 1119.93 1135.71 1121.02V1135H1132.28ZM1167.91 1143.39V1112.64H1171.23V1116.19H1171.64C1171.89 1115.8 1172.24 1115.31 1172.69 1114.7C1173.14 1114.09 1173.79 1113.55 1174.64 1113.07C1175.49 1112.59 1176.65 1112.35 1178.1 1112.35C1179.99 1112.35 1181.65 1112.82 1183.08 1113.76C1184.52 1114.7 1185.64 1116.03 1186.45 1117.76C1187.25 1119.49 1187.65 1121.53 1187.65 1123.88C1187.65 1126.24 1187.25 1128.3 1186.45 1130.04C1185.64 1131.76 1184.52 1133.1 1183.1 1134.05C1181.67 1135 1180.02 1135.47 1178.16 1135.47C1176.72 1135.47 1175.57 1135.23 1174.71 1134.75C1173.85 1134.27 1173.18 1133.72 1172.72 1133.11C1172.25 1132.49 1171.89 1131.97 1171.64 1131.56H1171.35V1143.39H1167.91ZM1171.29 1123.82C1171.29 1125.51 1171.54 1127 1172.03 1128.29C1172.53 1129.57 1173.25 1130.57 1174.2 1131.3C1175.15 1132.02 1176.32 1132.38 1177.7 1132.38C1179.13 1132.38 1180.33 1132 1181.29 1131.24C1182.26 1130.48 1182.99 1129.45 1183.48 1128.16C1183.97 1126.86 1184.22 1125.41 1184.22 1123.82C1184.22 1122.25 1183.98 1120.83 1183.49 1119.57C1183.01 1118.3 1182.29 1117.29 1181.32 1116.55C1180.36 1115.81 1179.15 1115.43 1177.7 1115.43C1176.3 1115.43 1175.12 1115.79 1174.17 1116.49C1173.22 1117.19 1172.5 1118.17 1172.02 1119.44C1171.53 1120.69 1171.29 1122.15 1171.29 1123.82ZM1196.33 1105.18V1135H1192.9V1105.18H1196.33ZM1212 1135.47C1209.85 1135.47 1207.99 1134.99 1206.42 1134.04C1204.87 1133.08 1203.67 1131.74 1202.83 1130.02C1201.99 1128.29 1201.58 1126.28 1201.58 1123.99C1201.58 1121.7 1201.99 1119.68 1202.83 1117.94C1203.67 1116.18 1204.85 1114.81 1206.35 1113.83C1207.87 1112.84 1209.63 1112.35 1211.65 1112.35C1212.82 1112.35 1213.97 1112.54 1215.1 1112.93C1216.24 1113.32 1217.27 1113.95 1218.2 1114.82C1219.14 1115.68 1219.88 1116.83 1220.43 1118.26C1220.98 1119.68 1221.26 1121.44 1221.26 1123.53V1124.98H1204.02V1122.01H1217.77C1217.77 1120.75 1217.51 1119.62 1217.01 1118.63C1216.51 1117.64 1215.81 1116.86 1214.88 1116.29C1213.97 1115.72 1212.89 1115.43 1211.65 1115.43C1210.28 1115.43 1209.1 1115.77 1208.1 1116.45C1207.11 1117.12 1206.35 1117.99 1205.81 1119.07C1205.28 1120.15 1205.01 1121.3 1205.01 1122.54V1124.52C1205.01 1126.21 1205.3 1127.64 1205.89 1128.81C1206.48 1129.98 1207.3 1130.87 1208.35 1131.48C1209.4 1132.08 1210.61 1132.38 1212 1132.38C1212.9 1132.38 1213.72 1132.25 1214.45 1132C1215.19 1131.74 1215.82 1131.35 1216.35 1130.84C1216.89 1130.31 1217.3 1129.66 1217.59 1128.88L1220.91 1129.82C1220.56 1130.94 1219.98 1131.93 1219.15 1132.79C1218.33 1133.63 1217.31 1134.29 1216.09 1134.77C1214.88 1135.23 1213.52 1135.47 1212 1135.47ZM1226.49 1135V1112.64H1229.81V1116.13H1230.1C1230.56 1114.94 1231.32 1114.01 1232.36 1113.35C1233.39 1112.68 1234.64 1112.35 1236.1 1112.35C1237.57 1112.35 1238.8 1112.68 1239.78 1113.35C1240.77 1114.01 1241.54 1114.94 1242.1 1116.13H1242.33C1242.9 1114.98 1243.76 1114.06 1244.91 1113.38C1246.05 1112.69 1247.42 1112.35 1249.03 1112.35C1251.03 1112.35 1252.66 1112.97 1253.93 1114.22C1255.2 1115.47 1255.84 1117.4 1255.84 1120.03V1135H1252.4V1120.03C1252.4 1118.38 1251.95 1117.2 1251.05 1116.49C1250.15 1115.79 1249.08 1115.43 1247.86 1115.43C1246.29 1115.43 1245.07 1115.91 1244.21 1116.86C1243.34 1117.8 1242.91 1118.99 1242.91 1120.44V1135H1239.42V1119.68C1239.42 1118.41 1239 1117.39 1238.18 1116.61C1237.35 1115.82 1236.29 1115.43 1234.99 1115.43C1234.1 1115.43 1233.26 1115.67 1232.49 1116.15C1231.72 1116.62 1231.1 1117.28 1230.62 1118.13C1230.16 1118.96 1229.92 1119.93 1229.92 1121.02V1135H1226.49ZM1271.5 1135.47C1269.34 1135.47 1267.49 1134.99 1265.92 1134.04C1264.37 1133.08 1263.17 1131.74 1262.33 1130.02C1261.49 1128.29 1261.07 1126.28 1261.07 1123.99C1261.07 1121.7 1261.49 1119.68 1262.33 1117.94C1263.17 1116.18 1264.35 1114.81 1265.85 1113.83C1267.36 1112.84 1269.13 1112.35 1271.15 1112.35C1272.31 1112.35 1273.46 1112.54 1274.6 1112.93C1275.74 1113.32 1276.77 1113.95 1277.7 1114.82C1278.63 1115.68 1279.38 1116.83 1279.93 1118.26C1280.48 1119.68 1280.76 1121.44 1280.76 1123.53V1124.98H1263.52V1122.01H1277.26C1277.26 1120.75 1277.01 1119.62 1276.51 1118.63C1276.01 1117.64 1275.3 1116.86 1274.38 1116.29C1273.47 1115.72 1272.39 1115.43 1271.15 1115.43C1269.78 1115.43 1268.6 1115.77 1267.6 1116.45C1266.61 1117.12 1265.85 1117.99 1265.31 1119.07C1264.78 1120.15 1264.51 1121.3 1264.51 1122.54V1124.52C1264.51 1126.21 1264.8 1127.64 1265.38 1128.81C1265.98 1129.98 1266.8 1130.87 1267.84 1131.48C1268.89 1132.08 1270.11 1132.38 1271.5 1132.38C1272.4 1132.38 1273.22 1132.25 1273.95 1132C1274.68 1131.74 1275.32 1131.35 1275.85 1130.84C1276.39 1130.31 1276.8 1129.66 1277.09 1128.88L1280.41 1129.82C1280.06 1130.94 1279.47 1131.93 1278.65 1132.79C1277.82 1133.63 1276.8 1134.29 1275.59 1134.77C1274.38 1135.23 1273.01 1135.47 1271.5 1135.47ZM1289.42 1121.55V1135H1285.99V1112.64H1289.31V1116.13H1289.6C1290.12 1115 1290.92 1114.08 1291.98 1113.39C1293.05 1112.69 1294.43 1112.35 1296.12 1112.35C1297.63 1112.35 1298.96 1112.66 1300.09 1113.28C1301.23 1113.89 1302.11 1114.82 1302.74 1116.07C1303.38 1117.31 1303.69 1118.89 1303.69 1120.79V1135H1300.25V1121.02C1300.25 1119.27 1299.8 1117.9 1298.89 1116.92C1297.97 1115.93 1296.72 1115.43 1295.13 1115.43C1294.03 1115.43 1293.05 1115.67 1292.19 1116.15C1291.33 1116.62 1290.66 1117.31 1290.16 1118.23C1289.67 1119.14 1289.42 1120.25 1289.42 1121.55ZM1319.7 1112.64V1115.55H1308.11V1112.64H1319.7ZM1311.48 1107.28H1314.92V1128.59C1314.92 1129.56 1315.06 1130.29 1315.34 1130.78C1315.63 1131.25 1316 1131.57 1316.45 1131.74C1316.9 1131.89 1317.39 1131.97 1317.89 1131.97C1318.27 1131.97 1318.58 1131.95 1318.82 1131.91C1319.06 1131.86 1319.26 1131.83 1319.4 1131.8L1320.1 1134.88C1319.87 1134.97 1319.54 1135.06 1319.13 1135.15C1318.71 1135.24 1318.18 1135.29 1317.54 1135.29C1316.57 1135.29 1315.62 1135.08 1314.69 1134.67C1313.76 1134.25 1313 1133.61 1312.39 1132.76C1311.78 1131.9 1311.48 1130.83 1311.48 1129.53V1107.28Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M1118.28 1143.15H1321.73V1145.95H1118.28V1143.15Z\" fill=\"black\" />\r\n <path\r\n id=\"What changes should be prioritized? How will you monitor alignment?\"\r\n d=\"M1023.4 1214L1016.44 1188.55H1019.57L1024.89 1209.28H1025.14L1030.56 1188.55H1034.04L1039.46 1209.28H1039.7L1045.02 1188.55H1048.16L1041.2 1214H1038.01L1032.4 1193.72H1032.2L1026.58 1214H1023.4ZM1054.53 1202.52V1214H1051.6V1188.55H1054.53V1197.89H1054.78C1055.23 1196.91 1055.9 1196.12 1056.79 1195.54C1057.7 1194.95 1058.9 1194.66 1060.4 1194.66C1061.7 1194.66 1062.84 1194.92 1063.82 1195.44C1064.79 1195.96 1065.55 1196.75 1066.09 1197.82C1066.64 1198.88 1066.91 1200.23 1066.91 1201.87V1214H1063.98V1202.07C1063.98 1200.55 1063.58 1199.38 1062.8 1198.55C1062.02 1197.71 1060.94 1197.3 1059.55 1197.3C1058.59 1197.3 1057.73 1197.5 1056.97 1197.9C1056.21 1198.31 1055.62 1198.9 1055.18 1199.68C1054.75 1200.46 1054.53 1201.41 1054.53 1202.52ZM1077.89 1214.45C1076.69 1214.45 1075.59 1214.22 1074.6 1213.76C1073.62 1213.3 1072.83 1212.63 1072.25 1211.76C1071.67 1210.88 1071.38 1209.82 1071.38 1208.58C1071.38 1207.49 1071.6 1206.6 1072.03 1205.92C1072.46 1205.23 1073.04 1204.69 1073.76 1204.31C1074.48 1203.92 1075.27 1203.63 1076.14 1203.44C1077.02 1203.24 1077.9 1203.08 1078.79 1202.96C1079.95 1202.81 1080.89 1202.7 1081.61 1202.63C1082.34 1202.54 1082.87 1202.41 1083.2 1202.22C1083.54 1202.03 1083.71 1201.7 1083.71 1201.22V1201.12C1083.71 1199.9 1083.38 1198.94 1082.7 1198.26C1082.04 1197.59 1081.04 1197.25 1079.68 1197.25C1078.28 1197.25 1077.19 1197.55 1076.39 1198.17C1075.6 1198.78 1075.04 1199.43 1074.71 1200.13L1071.93 1199.13C1072.43 1197.97 1073.09 1197.07 1073.92 1196.43C1074.75 1195.77 1075.67 1195.32 1076.65 1195.06C1077.65 1194.79 1078.62 1194.66 1079.59 1194.66C1080.2 1194.66 1080.9 1194.74 1081.7 1194.88C1082.5 1195.03 1083.28 1195.32 1084.02 1195.77C1084.78 1196.21 1085.4 1196.89 1085.9 1197.79C1086.4 1198.7 1086.64 1199.91 1086.64 1201.42V1214H1083.71V1211.41H1083.56C1083.36 1211.83 1083.03 1212.27 1082.57 1212.74C1082.1 1213.22 1081.49 1213.62 1080.72 1213.95C1079.95 1214.28 1079.01 1214.45 1077.89 1214.45ZM1078.34 1211.81C1079.5 1211.81 1080.48 1211.58 1081.28 1211.13C1082.08 1210.67 1082.68 1210.08 1083.09 1209.36C1083.5 1208.64 1083.71 1207.88 1083.71 1207.09V1204.4C1083.59 1204.55 1083.31 1204.69 1082.89 1204.81C1082.48 1204.93 1082 1205.03 1081.45 1205.13C1080.91 1205.21 1080.38 1205.28 1079.87 1205.35C1079.37 1205.41 1078.96 1205.46 1078.64 1205.5C1077.88 1205.6 1077.17 1205.76 1076.5 1205.98C1075.85 1206.2 1075.32 1206.53 1074.91 1206.97C1074.51 1207.4 1074.32 1207.98 1074.32 1208.73C1074.32 1209.75 1074.69 1210.52 1075.45 1211.04C1076.21 1211.56 1077.17 1211.81 1078.34 1211.81ZM1100.3 1194.91V1197.39H1090.41V1194.91H1100.3ZM1093.29 1190.34H1096.22V1208.53C1096.22 1209.36 1096.34 1209.98 1096.58 1210.4C1096.83 1210.8 1097.15 1211.08 1097.53 1211.22C1097.92 1211.35 1098.33 1211.41 1098.76 1211.41C1099.08 1211.41 1099.35 1211.4 1099.56 1211.37C1099.76 1211.32 1099.93 1211.29 1100.05 1211.27L1100.65 1213.9C1100.45 1213.98 1100.17 1214.05 1099.82 1214.12C1099.46 1214.21 1099.01 1214.25 1098.46 1214.25C1097.63 1214.25 1096.82 1214.07 1096.03 1213.71C1095.24 1213.36 1094.58 1212.82 1094.06 1212.09C1093.55 1211.36 1093.29 1210.44 1093.29 1209.33V1190.34ZM1122.31 1214.4C1120.52 1214.4 1118.98 1213.98 1117.69 1213.13C1116.4 1212.28 1115.4 1211.12 1114.71 1209.64C1114.01 1208.15 1113.66 1206.46 1113.66 1204.55C1113.66 1202.62 1114.02 1200.9 1114.73 1199.42C1115.45 1197.93 1116.45 1196.77 1117.74 1195.93C1119.03 1195.08 1120.54 1194.66 1122.26 1194.66C1123.61 1194.66 1124.82 1194.91 1125.89 1195.41C1126.97 1195.9 1127.85 1196.6 1128.54 1197.49C1129.23 1198.39 1129.65 1199.43 1129.82 1200.63H1126.89C1126.66 1199.76 1126.17 1198.99 1125.4 1198.31C1124.63 1197.64 1123.61 1197.3 1122.31 1197.3C1121.17 1197.3 1120.17 1197.59 1119.31 1198.19C1118.45 1198.78 1117.78 1199.61 1117.3 1200.69C1116.83 1201.76 1116.6 1203.01 1116.6 1204.45C1116.6 1205.93 1116.83 1207.21 1117.29 1208.31C1117.76 1209.4 1118.43 1210.25 1119.28 1210.86C1120.14 1211.46 1121.15 1211.76 1122.31 1211.76C1123.08 1211.76 1123.77 1211.63 1124.39 1211.37C1125.01 1211.1 1125.54 1210.72 1125.97 1210.22C1126.4 1209.72 1126.7 1209.13 1126.89 1208.43H1129.82C1129.65 1209.56 1129.24 1210.57 1128.59 1211.48C1127.94 1212.37 1127.09 1213.08 1126.02 1213.61C1124.96 1214.14 1123.72 1214.4 1122.31 1214.4ZM1137.04 1202.52V1214H1134.11V1188.55H1137.04V1197.89H1137.29C1137.74 1196.91 1138.41 1196.12 1139.3 1195.54C1140.21 1194.95 1141.41 1194.66 1142.91 1194.66C1144.21 1194.66 1145.35 1194.92 1146.33 1195.44C1147.3 1195.96 1148.06 1196.75 1148.6 1197.82C1149.15 1198.88 1149.42 1200.23 1149.42 1201.87V1214H1146.49V1202.07C1146.49 1200.55 1146.09 1199.38 1145.31 1198.55C1144.53 1197.71 1143.45 1197.3 1142.06 1197.3C1141.1 1197.3 1140.24 1197.5 1139.48 1197.9C1138.72 1198.31 1138.13 1198.9 1137.69 1199.68C1137.26 1200.46 1137.04 1201.41 1137.04 1202.52ZM1160.4 1214.45C1159.19 1214.45 1158.1 1214.22 1157.11 1213.76C1156.12 1213.3 1155.34 1212.63 1154.76 1211.76C1154.18 1210.88 1153.89 1209.82 1153.89 1208.58C1153.89 1207.49 1154.11 1206.6 1154.54 1205.92C1154.97 1205.23 1155.54 1204.69 1156.27 1204.31C1156.99 1203.92 1157.78 1203.63 1158.65 1203.44C1159.53 1203.24 1160.41 1203.08 1161.3 1202.96C1162.46 1202.81 1163.4 1202.7 1164.12 1202.63C1164.85 1202.54 1165.38 1202.41 1165.71 1202.22C1166.05 1202.03 1166.22 1201.7 1166.22 1201.22V1201.12C1166.22 1199.9 1165.89 1198.94 1165.21 1198.26C1164.55 1197.59 1163.54 1197.25 1162.19 1197.25C1160.79 1197.25 1159.7 1197.55 1158.9 1198.17C1158.11 1198.78 1157.55 1199.43 1157.22 1200.13L1154.44 1199.13C1154.94 1197.97 1155.6 1197.07 1156.43 1196.43C1157.26 1195.77 1158.18 1195.32 1159.16 1195.06C1160.16 1194.79 1161.13 1194.66 1162.09 1194.66C1162.71 1194.66 1163.41 1194.74 1164.21 1194.88C1165.01 1195.03 1165.79 1195.32 1166.53 1195.77C1167.29 1196.21 1167.91 1196.89 1168.41 1197.79C1168.91 1198.7 1169.15 1199.91 1169.15 1201.42V1214H1166.22V1211.41H1166.07C1165.87 1211.83 1165.54 1212.27 1165.08 1212.74C1164.61 1213.22 1164 1213.62 1163.23 1213.95C1162.46 1214.28 1161.51 1214.45 1160.4 1214.45ZM1160.85 1211.81C1162.01 1211.81 1162.99 1211.58 1163.79 1211.13C1164.59 1210.67 1165.19 1210.08 1165.6 1209.36C1166.01 1208.64 1166.22 1207.88 1166.22 1207.09V1204.4C1166.1 1204.55 1165.82 1204.69 1165.4 1204.81C1164.99 1204.93 1164.51 1205.03 1163.96 1205.13C1163.42 1205.21 1162.89 1205.28 1162.38 1205.35C1161.88 1205.41 1161.47 1205.46 1161.15 1205.5C1160.39 1205.6 1159.68 1205.76 1159.01 1205.98C1158.36 1206.2 1157.83 1206.53 1157.42 1206.97C1157.02 1207.4 1156.83 1207.98 1156.83 1208.73C1156.83 1209.75 1157.2 1210.52 1157.96 1211.04C1158.72 1211.56 1159.68 1211.81 1160.85 1211.81ZM1177.44 1202.52V1214H1174.51V1194.91H1177.34V1197.89H1177.59C1178.04 1196.92 1178.72 1196.14 1179.63 1195.56C1180.54 1194.96 1181.72 1194.66 1183.16 1194.66C1184.45 1194.66 1185.58 1194.93 1186.55 1195.46C1187.52 1195.98 1188.28 1196.77 1188.81 1197.84C1189.35 1198.9 1189.62 1200.25 1189.62 1201.87V1214H1186.69V1202.07C1186.69 1200.57 1186.3 1199.4 1185.52 1198.56C1184.74 1197.72 1183.67 1197.3 1182.31 1197.3C1181.38 1197.3 1180.54 1197.5 1179.8 1197.9C1179.07 1198.31 1178.5 1198.9 1178.08 1199.68C1177.65 1200.46 1177.44 1201.41 1177.44 1202.52ZM1202.69 1221.56C1201.27 1221.56 1200.05 1221.37 1199.03 1221.01C1198.01 1220.65 1197.17 1220.18 1196.49 1219.59C1195.81 1219.01 1195.28 1218.39 1194.88 1217.73L1197.22 1216.09C1197.48 1216.44 1197.82 1216.83 1198.23 1217.28C1198.63 1217.74 1199.19 1218.13 1199.89 1218.46C1200.6 1218.8 1201.54 1218.97 1202.69 1218.97C1204.23 1218.97 1205.5 1218.6 1206.5 1217.85C1207.51 1217.11 1208.01 1215.94 1208.01 1214.35V1210.47H1207.76C1207.54 1210.82 1207.24 1211.25 1206.84 1211.76C1206.45 1212.27 1205.89 1212.72 1205.15 1213.12C1204.42 1213.51 1203.43 1213.7 1202.19 1213.7C1200.65 1213.7 1199.27 1213.34 1198.04 1212.61C1196.82 1211.88 1195.86 1210.82 1195.14 1209.43C1194.44 1208.03 1194.09 1206.34 1194.09 1204.36C1194.09 1202.4 1194.43 1200.7 1195.12 1199.25C1195.81 1197.79 1196.76 1196.66 1197.99 1195.87C1199.22 1195.06 1200.63 1194.66 1202.24 1194.66C1203.48 1194.66 1204.47 1194.87 1205.2 1195.28C1205.94 1195.69 1206.5 1196.15 1206.89 1196.67C1207.29 1197.19 1207.59 1197.61 1207.81 1197.94H1208.11V1194.91H1210.94V1214.55C1210.94 1216.19 1210.57 1217.52 1209.82 1218.55C1209.08 1219.58 1208.09 1220.34 1206.84 1220.82C1205.6 1221.31 1204.21 1221.56 1202.69 1221.56ZM1202.59 1211.07C1203.77 1211.07 1204.76 1210.8 1205.57 1210.26C1206.38 1209.72 1207 1208.95 1207.42 1207.93C1207.85 1206.92 1208.06 1205.71 1208.06 1204.31C1208.06 1202.93 1207.85 1201.72 1207.44 1200.66C1207.02 1199.61 1206.41 1198.79 1205.6 1198.19C1204.78 1197.59 1203.78 1197.3 1202.59 1197.3C1201.35 1197.3 1200.31 1197.61 1199.48 1198.24C1198.66 1198.87 1198.04 1199.71 1197.63 1200.78C1197.22 1201.84 1197.02 1203.01 1197.02 1204.31C1197.02 1205.63 1197.23 1206.8 1197.64 1207.82C1198.06 1208.83 1198.69 1209.63 1199.51 1210.21C1200.33 1210.78 1201.36 1211.07 1202.59 1211.07ZM1224.31 1214.4C1222.47 1214.4 1220.89 1213.99 1219.55 1213.18C1218.23 1212.36 1217.21 1211.22 1216.48 1209.75C1215.77 1208.27 1215.42 1206.56 1215.42 1204.6C1215.42 1202.65 1215.77 1200.92 1216.48 1199.43C1217.21 1197.93 1218.21 1196.77 1219.49 1195.93C1220.78 1195.08 1222.29 1194.66 1224.02 1194.66C1225.01 1194.66 1225.99 1194.83 1226.96 1195.16C1227.93 1195.49 1228.81 1196.03 1229.61 1196.77C1230.4 1197.51 1231.04 1198.49 1231.51 1199.71C1231.98 1200.92 1232.22 1202.42 1232.22 1204.21V1205.45H1217.5V1202.91H1229.24C1229.24 1201.84 1229.02 1200.87 1228.59 1200.03C1228.17 1199.18 1227.56 1198.52 1226.78 1198.03C1226 1197.54 1225.08 1197.3 1224.02 1197.3C1222.85 1197.3 1221.84 1197.59 1220.98 1198.17C1220.14 1198.74 1219.49 1199.48 1219.03 1200.4C1218.58 1201.32 1218.35 1202.31 1218.35 1203.36V1205.05C1218.35 1206.49 1218.6 1207.72 1219.09 1208.72C1219.6 1209.71 1220.3 1210.47 1221.19 1210.99C1222.09 1211.51 1223.13 1211.76 1224.31 1211.76C1225.09 1211.76 1225.78 1211.66 1226.4 1211.44C1227.03 1211.22 1227.57 1210.88 1228.03 1210.45C1228.49 1210 1228.84 1209.44 1229.09 1208.78L1231.92 1209.58C1231.62 1210.54 1231.12 1211.38 1230.42 1212.11C1229.71 1212.83 1228.84 1213.4 1227.81 1213.8C1226.77 1214.2 1225.61 1214.4 1224.31 1214.4ZM1250.2 1199.18L1247.57 1199.93C1247.4 1199.49 1247.16 1199.06 1246.84 1198.65C1246.52 1198.23 1246.09 1197.88 1245.54 1197.61C1245 1197.33 1244.3 1197.2 1243.44 1197.2C1242.27 1197.2 1241.3 1197.47 1240.52 1198C1239.75 1198.53 1239.37 1199.21 1239.37 1200.03C1239.37 1200.76 1239.63 1201.33 1240.16 1201.76C1240.69 1202.18 1241.52 1202.53 1242.65 1202.81L1245.48 1203.51C1247.19 1203.92 1248.46 1204.56 1249.3 1205.41C1250.13 1206.26 1250.55 1207.35 1250.55 1208.68C1250.55 1209.77 1250.24 1210.75 1249.61 1211.61C1248.99 1212.48 1248.12 1213.15 1247 1213.65C1245.88 1214.15 1244.58 1214.4 1243.09 1214.4C1241.15 1214.4 1239.54 1213.98 1238.26 1213.13C1236.98 1212.28 1236.18 1211.05 1235.84 1209.43L1238.62 1208.73C1238.89 1209.76 1239.39 1210.53 1240.12 1211.04C1240.87 1211.56 1241.84 1211.81 1243.04 1211.81C1244.41 1211.81 1245.5 1211.52 1246.3 1210.94C1247.11 1210.35 1247.52 1209.65 1247.52 1208.83C1247.52 1208.17 1247.29 1207.61 1246.82 1207.16C1246.36 1206.71 1245.65 1206.37 1244.69 1206.14L1241.5 1205.4C1239.76 1204.98 1238.47 1204.34 1237.65 1203.47C1236.84 1202.59 1236.43 1201.5 1236.43 1200.18C1236.43 1199.1 1236.74 1198.15 1237.34 1197.32C1237.95 1196.49 1238.79 1195.84 1239.84 1195.37C1240.9 1194.9 1242.1 1194.66 1243.44 1194.66C1245.33 1194.66 1246.82 1195.07 1247.89 1195.9C1248.98 1196.73 1249.75 1197.83 1250.2 1199.18ZM1278.33 1199.18L1275.7 1199.93C1275.53 1199.49 1275.29 1199.06 1274.97 1198.65C1274.65 1198.23 1274.22 1197.88 1273.67 1197.61C1273.13 1197.33 1272.43 1197.2 1271.57 1197.2C1270.4 1197.2 1269.43 1197.47 1268.65 1198C1267.88 1198.53 1267.5 1199.21 1267.5 1200.03C1267.5 1200.76 1267.76 1201.33 1268.29 1201.76C1268.82 1202.18 1269.65 1202.53 1270.78 1202.81L1273.61 1203.51C1275.32 1203.92 1276.59 1204.56 1277.43 1205.41C1278.26 1206.26 1278.68 1207.35 1278.68 1208.68C1278.68 1209.77 1278.37 1210.75 1277.74 1211.61C1277.12 1212.48 1276.25 1213.15 1275.13 1213.65C1274.01 1214.15 1272.71 1214.4 1271.22 1214.4C1269.28 1214.4 1267.67 1213.98 1266.39 1213.13C1265.11 1212.28 1264.31 1211.05 1263.97 1209.43L1266.75 1208.73C1267.02 1209.76 1267.52 1210.53 1268.25 1211.04C1269 1211.56 1269.97 1211.81 1271.17 1211.81C1272.54 1211.81 1273.63 1211.52 1274.43 1210.94C1275.24 1210.35 1275.65 1209.65 1275.65 1208.83C1275.65 1208.17 1275.42 1207.61 1274.95 1207.16C1274.49 1206.71 1273.78 1206.37 1272.82 1206.14L1269.63 1205.4C1267.89 1204.98 1266.6 1204.34 1265.78 1203.47C1264.97 1202.59 1264.56 1201.5 1264.56 1200.18C1264.56 1199.1 1264.86 1198.15 1265.47 1197.32C1266.08 1196.49 1266.92 1195.84 1267.97 1195.37C1269.03 1194.9 1270.23 1194.66 1271.57 1194.66C1273.46 1194.66 1274.94 1195.07 1276.02 1195.9C1277.11 1196.73 1277.88 1197.83 1278.33 1199.18ZM1286.03 1202.52V1214H1283.1V1188.55H1286.03V1197.89H1286.28C1286.73 1196.91 1287.4 1196.12 1288.29 1195.54C1289.2 1194.95 1290.4 1194.66 1291.9 1194.66C1293.2 1194.66 1294.34 1194.92 1295.31 1195.44C1296.29 1195.96 1297.05 1196.75 1297.59 1197.82C1298.14 1198.88 1298.41 1200.23 1298.41 1201.87V1214H1295.48V1202.07C1295.48 1200.55 1295.08 1199.38 1294.3 1198.55C1293.52 1197.71 1292.44 1197.3 1291.05 1197.3C1290.09 1197.3 1289.23 1197.5 1288.47 1197.9C1287.71 1198.31 1287.12 1198.9 1286.68 1199.68C1286.25 1200.46 1286.03 1201.41 1286.03 1202.52ZM1311.53 1214.4C1309.81 1214.4 1308.3 1213.99 1307 1213.17C1305.7 1212.35 1304.69 1211.2 1303.96 1209.72C1303.24 1208.25 1302.88 1206.53 1302.88 1204.55C1302.88 1202.57 1303.24 1200.83 1303.96 1199.35C1304.69 1197.86 1305.7 1196.71 1307 1195.89C1308.3 1195.07 1309.81 1194.66 1311.53 1194.66C1313.26 1194.66 1314.76 1195.07 1316.06 1195.89C1317.36 1196.71 1318.37 1197.86 1319.09 1199.35C1319.82 1200.83 1320.18 1202.57 1320.18 1204.55C1320.18 1206.53 1319.82 1208.25 1319.09 1209.72C1318.37 1211.2 1317.36 1212.35 1316.06 1213.17C1314.76 1213.99 1313.26 1214.4 1311.53 1214.4ZM1311.53 1211.76C1312.84 1211.76 1313.92 1211.43 1314.76 1210.76C1315.61 1210.08 1316.23 1209.2 1316.64 1208.11C1317.05 1207.01 1317.25 1205.83 1317.25 1204.55C1317.25 1203.28 1317.05 1202.09 1316.64 1200.99C1316.23 1199.88 1315.61 1198.99 1314.76 1198.31C1313.92 1197.64 1312.84 1197.3 1311.53 1197.3C1310.22 1197.3 1309.15 1197.64 1308.3 1198.31C1307.45 1198.99 1306.83 1199.88 1306.42 1200.99C1306.02 1202.09 1305.81 1203.28 1305.81 1204.55C1305.81 1205.83 1306.02 1207.01 1306.42 1208.11C1306.83 1209.2 1307.45 1210.08 1308.3 1210.76C1309.15 1211.43 1310.22 1211.76 1311.53 1211.76ZM1336.69 1206.19V1194.91H1339.62V1214H1336.69V1210.77H1336.49C1336.04 1211.74 1335.35 1212.56 1334.4 1213.24C1333.46 1213.91 1332.27 1214.25 1330.82 1214.25C1329.63 1214.25 1328.57 1213.99 1327.64 1213.47C1326.71 1212.94 1325.99 1212.14 1325.46 1211.08C1324.92 1210.01 1324.66 1208.66 1324.66 1207.04V1194.91H1327.59V1206.84C1327.59 1208.23 1327.98 1209.34 1328.76 1210.17C1329.55 1211 1330.55 1211.41 1331.77 1211.41C1332.5 1211.41 1333.24 1211.23 1333.99 1210.86C1334.76 1210.48 1335.39 1209.91 1335.91 1209.14C1336.43 1208.37 1336.69 1207.39 1336.69 1206.19ZM1347.93 1188.55V1214H1345V1188.55H1347.93ZM1360.51 1214.4C1358.92 1214.4 1357.52 1214 1356.3 1213.19C1355.08 1212.38 1354.13 1211.24 1353.44 1209.76C1352.75 1208.28 1352.41 1206.53 1352.41 1204.5C1352.41 1202.5 1352.75 1200.76 1353.44 1199.28C1354.13 1197.81 1355.08 1196.67 1356.31 1195.87C1357.54 1195.06 1358.95 1194.66 1360.56 1194.66C1361.8 1194.66 1362.79 1194.87 1363.51 1195.28C1364.24 1195.69 1364.79 1196.15 1365.17 1196.67C1365.56 1197.19 1365.86 1197.61 1366.08 1197.94H1366.33V1188.55H1369.26V1214H1366.43V1211.07H1366.08C1365.86 1211.41 1365.56 1211.85 1365.16 1212.38C1364.76 1212.91 1364.19 1213.37 1363.46 1213.79C1362.72 1214.19 1361.74 1214.4 1360.51 1214.4ZM1360.91 1211.76C1362.09 1211.76 1363.08 1211.46 1363.89 1210.84C1364.7 1210.22 1365.32 1209.36 1365.74 1208.27C1366.17 1207.17 1366.38 1205.9 1366.38 1204.45C1366.38 1203.03 1366.17 1201.78 1365.76 1200.71C1365.34 1199.64 1364.73 1198.8 1363.92 1198.2C1363.1 1197.6 1362.1 1197.3 1360.91 1197.3C1359.67 1197.3 1358.63 1197.61 1357.8 1198.25C1356.98 1198.88 1356.36 1199.74 1355.95 1200.83C1355.54 1201.9 1355.34 1203.11 1355.34 1204.45C1355.34 1205.81 1355.55 1207.05 1355.96 1208.16C1356.38 1209.26 1357.01 1210.14 1357.83 1210.79C1358.66 1211.44 1359.68 1211.76 1360.91 1211.76ZM1385.28 1214V1188.55H1388.22V1197.94H1388.46C1388.68 1197.61 1388.98 1197.19 1389.36 1196.67C1389.75 1196.15 1390.3 1195.69 1391.02 1195.28C1391.75 1194.87 1392.74 1194.66 1393.98 1194.66C1395.59 1194.66 1397.01 1195.06 1398.23 1195.87C1399.46 1196.67 1400.42 1197.81 1401.1 1199.28C1401.79 1200.76 1402.14 1202.5 1402.14 1204.5C1402.14 1206.53 1401.79 1208.28 1401.1 1209.76C1400.42 1211.24 1399.46 1212.38 1398.25 1213.19C1397.03 1214 1395.62 1214.4 1394.03 1214.4C1392.81 1214.4 1391.82 1214.19 1391.09 1213.79C1390.35 1213.37 1389.78 1212.91 1389.38 1212.38C1388.99 1211.85 1388.68 1211.41 1388.46 1211.07H1388.12V1214H1385.28ZM1388.17 1204.45C1388.17 1205.9 1388.38 1207.17 1388.8 1208.27C1389.22 1209.36 1389.84 1210.22 1390.65 1210.84C1391.46 1211.46 1392.46 1211.76 1393.63 1211.76C1394.86 1211.76 1395.88 1211.44 1396.7 1210.79C1397.53 1210.14 1398.15 1209.26 1398.57 1208.16C1398.99 1207.05 1399.2 1205.81 1399.2 1204.45C1399.2 1203.11 1399 1201.9 1398.58 1200.83C1398.18 1199.74 1397.56 1198.88 1396.73 1198.25C1395.91 1197.61 1394.88 1197.3 1393.63 1197.3C1392.44 1197.3 1391.44 1197.6 1390.63 1198.2C1389.81 1198.8 1389.2 1199.64 1388.79 1200.71C1388.37 1201.78 1388.17 1203.03 1388.17 1204.45ZM1414.63 1214.4C1412.79 1214.4 1411.2 1213.99 1409.87 1213.18C1408.54 1212.36 1407.52 1211.22 1406.8 1209.75C1406.08 1208.27 1405.73 1206.56 1405.73 1204.6C1405.73 1202.65 1406.08 1200.92 1406.8 1199.43C1407.52 1197.93 1408.52 1196.77 1409.8 1195.93C1411.1 1195.08 1412.61 1194.66 1414.33 1194.66C1415.32 1194.66 1416.3 1194.83 1417.27 1195.16C1418.24 1195.49 1419.13 1196.03 1419.92 1196.77C1420.72 1197.51 1421.35 1198.49 1421.82 1199.71C1422.3 1200.92 1422.53 1202.42 1422.53 1204.21V1205.45H1407.82V1202.91H1419.55C1419.55 1201.84 1419.33 1200.87 1418.9 1200.03C1418.48 1199.18 1417.88 1198.52 1417.09 1198.03C1416.31 1197.54 1415.39 1197.3 1414.33 1197.3C1413.16 1197.3 1412.15 1197.59 1411.3 1198.17C1410.45 1198.74 1409.8 1199.48 1409.34 1200.4C1408.89 1201.32 1408.66 1202.31 1408.66 1203.36V1205.05C1408.66 1206.49 1408.91 1207.72 1409.41 1208.72C1409.91 1209.71 1410.61 1210.47 1411.51 1210.99C1412.4 1211.51 1413.44 1211.76 1414.63 1211.76C1415.4 1211.76 1416.09 1211.66 1416.71 1211.44C1417.34 1211.22 1417.89 1210.88 1418.34 1210.45C1418.8 1210 1419.15 1209.44 1419.4 1208.78L1422.23 1209.58C1421.94 1210.54 1421.43 1211.38 1420.73 1212.11C1420.03 1212.83 1419.16 1213.4 1418.12 1213.8C1417.08 1214.2 1415.92 1214.4 1414.63 1214.4ZM1021.88 1263.16V1236.91H1024.71V1239.94H1025.06C1025.28 1239.61 1025.57 1239.19 1025.96 1238.67C1026.35 1238.15 1026.9 1237.69 1027.62 1237.28C1028.35 1236.87 1029.34 1236.66 1030.58 1236.66C1032.19 1236.66 1033.6 1237.06 1034.83 1237.87C1036.06 1238.67 1037.01 1239.81 1037.7 1241.28C1038.39 1242.76 1038.73 1244.5 1038.73 1246.5C1038.73 1248.53 1038.39 1250.28 1037.7 1251.76C1037.01 1253.24 1036.06 1254.38 1034.84 1255.19C1033.62 1256 1032.22 1256.4 1030.63 1256.4C1029.4 1256.4 1028.42 1256.19 1027.68 1255.79C1026.95 1255.37 1026.38 1254.91 1025.98 1254.38C1025.58 1253.85 1025.28 1253.41 1025.06 1253.07H1024.81V1263.16H1021.88ZM1024.76 1246.45C1024.76 1247.9 1024.97 1249.17 1025.4 1250.27C1025.82 1251.36 1026.44 1252.22 1027.25 1252.84C1028.06 1253.46 1029.05 1253.76 1030.23 1253.76C1031.46 1253.76 1032.48 1253.44 1033.3 1252.79C1034.13 1252.14 1034.75 1251.26 1035.17 1250.16C1035.59 1249.05 1035.8 1247.81 1035.8 1246.45C1035.8 1245.11 1035.59 1243.9 1035.18 1242.83C1034.77 1241.74 1034.15 1240.88 1033.33 1240.25C1032.51 1239.61 1031.47 1239.3 1030.23 1239.3C1029.04 1239.3 1028.04 1239.6 1027.22 1240.2C1026.41 1240.8 1025.8 1241.64 1025.38 1242.71C1024.97 1243.78 1024.76 1245.03 1024.76 1246.45ZM1043.21 1256V1236.91H1046.04V1239.79H1046.24C1046.59 1238.85 1047.22 1238.08 1048.13 1237.49C1049.04 1236.9 1050.07 1236.61 1051.21 1236.61C1051.43 1236.61 1051.7 1236.61 1052.02 1236.62C1052.34 1236.63 1052.59 1236.64 1052.75 1236.66V1239.64C1052.65 1239.62 1052.43 1239.58 1052.07 1239.53C1051.72 1239.47 1051.35 1239.44 1050.96 1239.44C1050.03 1239.44 1049.21 1239.64 1048.48 1240.03C1047.76 1240.41 1047.18 1240.94 1046.76 1241.62C1046.35 1242.29 1046.14 1243.06 1046.14 1243.92V1256H1043.21ZM1056.23 1256V1236.91H1059.16V1256H1056.23ZM1057.72 1233.73C1057.15 1233.73 1056.66 1233.53 1056.24 1233.14C1055.84 1232.75 1055.63 1232.29 1055.63 1231.74C1055.63 1231.19 1055.84 1230.72 1056.24 1230.33C1056.66 1229.94 1057.15 1229.75 1057.72 1229.75C1058.29 1229.75 1058.78 1229.94 1059.19 1230.33C1059.6 1230.72 1059.81 1231.19 1059.81 1231.74C1059.81 1232.29 1059.6 1232.75 1059.19 1233.14C1058.78 1233.53 1058.29 1233.73 1057.72 1233.73ZM1072.29 1256.4C1070.57 1256.4 1069.06 1255.99 1067.75 1255.17C1066.46 1254.35 1065.45 1253.2 1064.72 1251.72C1064 1250.25 1063.64 1248.53 1063.64 1246.55C1063.64 1244.57 1064 1242.83 1064.72 1241.35C1065.45 1239.86 1066.46 1238.71 1067.75 1237.89C1069.06 1237.07 1070.57 1236.66 1072.29 1236.66C1074.01 1236.66 1075.52 1237.07 1076.82 1237.89C1078.12 1238.71 1079.13 1239.86 1079.85 1241.35C1080.58 1242.83 1080.94 1244.57 1080.94 1246.55C1080.94 1248.53 1080.58 1250.25 1079.85 1251.72C1079.13 1253.2 1078.12 1254.35 1076.82 1255.17C1075.52 1255.99 1074.01 1256.4 1072.29 1256.4ZM1072.29 1253.76C1073.6 1253.76 1074.68 1253.43 1075.52 1252.76C1076.37 1252.08 1076.99 1251.2 1077.4 1250.11C1077.81 1249.01 1078.01 1247.83 1078.01 1246.55C1078.01 1245.28 1077.81 1244.09 1077.4 1242.99C1076.99 1241.88 1076.37 1240.99 1075.52 1240.31C1074.68 1239.64 1073.6 1239.3 1072.29 1239.3C1070.98 1239.3 1069.9 1239.64 1069.06 1240.31C1068.21 1240.99 1067.59 1241.88 1067.18 1242.99C1066.78 1244.09 1066.57 1245.28 1066.57 1246.55C1066.57 1247.83 1066.78 1249.01 1067.18 1250.11C1067.59 1251.2 1068.21 1252.08 1069.06 1252.76C1069.9 1253.43 1070.98 1253.76 1072.29 1253.76ZM1085.42 1256V1236.91H1088.25V1239.79H1088.45C1088.8 1238.85 1089.43 1238.08 1090.34 1237.49C1091.25 1236.9 1092.28 1236.61 1093.42 1236.61C1093.64 1236.61 1093.91 1236.61 1094.23 1236.62C1094.55 1236.63 1094.8 1236.64 1094.96 1236.66V1239.64C1094.87 1239.62 1094.64 1239.58 1094.28 1239.53C1093.93 1239.47 1093.56 1239.44 1093.17 1239.44C1092.25 1239.44 1091.42 1239.64 1090.69 1240.03C1089.97 1240.41 1089.4 1240.94 1088.97 1241.62C1088.56 1242.29 1088.35 1243.06 1088.35 1243.92V1256H1085.42ZM1098.44 1256V1236.91H1101.37V1256H1098.44ZM1099.93 1233.73C1099.36 1233.73 1098.87 1233.53 1098.45 1233.14C1098.05 1232.75 1097.84 1232.29 1097.84 1231.74C1097.84 1231.19 1098.05 1230.72 1098.45 1230.33C1098.87 1229.94 1099.36 1229.75 1099.93 1229.75C1100.5 1229.75 1100.99 1229.94 1101.4 1230.33C1101.81 1230.72 1102.02 1231.19 1102.02 1231.74C1102.02 1232.29 1101.81 1232.75 1101.4 1233.14C1100.99 1233.53 1100.5 1233.73 1099.93 1233.73ZM1115.05 1236.91V1239.39H1105.16V1236.91H1115.05ZM1108.04 1232.34H1110.97V1250.53C1110.97 1251.36 1111.09 1251.98 1111.33 1252.4C1111.58 1252.8 1111.9 1253.08 1112.28 1253.22C1112.67 1253.35 1113.08 1253.41 1113.51 1253.41C1113.83 1253.41 1114.1 1253.4 1114.3 1253.37C1114.51 1253.32 1114.68 1253.29 1114.8 1253.27L1115.4 1255.9C1115.2 1255.98 1114.92 1256.05 1114.56 1256.12C1114.21 1256.21 1113.76 1256.25 1113.21 1256.25C1112.38 1256.25 1111.57 1256.07 1110.77 1255.71C1109.99 1255.36 1109.33 1254.82 1108.81 1254.09C1108.3 1253.36 1108.04 1252.44 1108.04 1251.33V1232.34ZM1119.46 1256V1236.91H1122.4V1256H1119.46ZM1120.95 1233.73C1120.38 1233.73 1119.89 1233.53 1119.47 1233.14C1119.07 1232.75 1118.87 1232.29 1118.87 1231.74C1118.87 1231.19 1119.07 1230.72 1119.47 1230.33C1119.89 1229.94 1120.38 1229.75 1120.95 1229.75C1121.53 1229.75 1122.01 1229.94 1122.42 1230.33C1122.83 1230.72 1123.04 1231.19 1123.04 1231.74C1123.04 1232.29 1122.83 1232.75 1122.42 1233.14C1122.01 1233.53 1121.53 1233.73 1120.95 1233.73ZM1127.22 1256V1253.76L1138.06 1239.84V1239.64H1127.57V1236.91H1141.84V1239.25L1131.3 1253.07V1253.27H1142.19V1256H1127.22ZM1154.16 1256.4C1152.32 1256.4 1150.73 1255.99 1149.4 1255.18C1148.07 1254.36 1147.05 1253.22 1146.33 1251.75C1145.62 1250.27 1145.26 1248.56 1145.26 1246.6C1145.26 1244.65 1145.62 1242.92 1146.33 1241.43C1147.05 1239.93 1148.05 1238.77 1149.34 1237.93C1150.63 1237.08 1152.14 1236.66 1153.86 1236.66C1154.86 1236.66 1155.84 1236.83 1156.81 1237.16C1157.78 1237.49 1158.66 1238.03 1159.46 1238.77C1160.25 1239.51 1160.88 1240.49 1161.36 1241.71C1161.83 1242.92 1162.07 1244.42 1162.07 1246.21V1247.45H1147.35V1244.91H1159.08C1159.08 1243.84 1158.87 1242.87 1158.44 1242.03C1158.01 1241.18 1157.41 1240.52 1156.62 1240.03C1155.84 1239.54 1154.92 1239.3 1153.86 1239.3C1152.69 1239.3 1151.68 1239.59 1150.83 1240.17C1149.98 1240.74 1149.33 1241.48 1148.88 1242.4C1148.42 1243.32 1148.19 1244.31 1148.19 1245.36V1247.05C1148.19 1248.49 1148.44 1249.72 1148.94 1250.72C1149.45 1251.71 1150.15 1252.47 1151.04 1252.99C1151.94 1253.51 1152.98 1253.76 1154.16 1253.76C1154.93 1253.76 1155.63 1253.66 1156.25 1253.44C1156.88 1253.22 1157.42 1252.88 1157.88 1252.45C1158.33 1252 1158.68 1251.44 1158.93 1250.78L1161.77 1251.58C1161.47 1252.54 1160.97 1253.38 1160.26 1254.11C1159.56 1254.83 1158.69 1255.4 1157.65 1255.8C1156.62 1256.2 1155.45 1256.4 1154.16 1256.4ZM1173.74 1256.4C1172.15 1256.4 1170.74 1256 1169.52 1255.19C1168.3 1254.38 1167.35 1253.24 1166.66 1251.76C1165.98 1250.28 1165.63 1248.53 1165.63 1246.5C1165.63 1244.5 1165.98 1242.76 1166.66 1241.28C1167.35 1239.81 1168.31 1238.67 1169.54 1237.87C1170.76 1237.06 1172.18 1236.66 1173.79 1236.66C1175.03 1236.66 1176.01 1236.87 1176.73 1237.28C1177.46 1237.69 1178.02 1238.15 1178.4 1238.67C1178.79 1239.19 1179.09 1239.61 1179.3 1239.94H1179.55V1230.55H1182.49V1256H1179.65V1253.07H1179.3C1179.09 1253.41 1178.78 1253.85 1178.38 1254.38C1177.99 1254.91 1177.42 1255.37 1176.68 1255.79C1175.94 1256.19 1174.96 1256.4 1173.74 1256.4ZM1174.13 1253.76C1175.31 1253.76 1176.3 1253.46 1177.12 1252.84C1177.93 1252.22 1178.55 1251.36 1178.97 1250.27C1179.39 1249.17 1179.6 1247.9 1179.6 1246.45C1179.6 1245.03 1179.4 1243.78 1178.98 1242.71C1178.57 1241.64 1177.95 1240.8 1177.14 1240.2C1176.33 1239.6 1175.33 1239.3 1174.13 1239.3C1172.89 1239.3 1171.86 1239.61 1171.03 1240.25C1170.21 1240.88 1169.59 1241.74 1169.17 1242.83C1168.77 1243.9 1168.57 1245.11 1168.57 1246.45C1168.57 1247.81 1168.77 1249.05 1169.19 1250.16C1169.61 1251.26 1170.23 1252.14 1171.05 1252.79C1171.88 1253.44 1172.91 1253.76 1174.13 1253.76ZM1192.09 1248.84V1248.69C1192.11 1247.11 1192.28 1245.85 1192.59 1244.91C1192.91 1243.98 1193.35 1243.22 1193.93 1242.64C1194.51 1242.06 1195.21 1241.52 1196.02 1241.04C1196.51 1240.74 1196.95 1240.39 1197.34 1239.98C1197.73 1239.56 1198.03 1239.09 1198.26 1238.55C1198.49 1238.01 1198.61 1237.41 1198.61 1236.76C1198.61 1235.95 1198.42 1235.24 1198.03 1234.65C1197.65 1234.05 1197.14 1233.59 1196.51 1233.27C1195.87 1232.94 1195.16 1232.78 1194.38 1232.78C1193.7 1232.78 1193.05 1232.92 1192.42 1233.21C1191.79 1233.49 1191.26 1233.93 1190.84 1234.54C1190.42 1235.14 1190.17 1235.93 1190.11 1236.91H1186.97C1187.04 1235.5 1187.4 1234.29 1188.07 1233.29C1188.74 1232.29 1189.62 1231.52 1190.71 1230.99C1191.82 1230.46 1193.04 1230.2 1194.38 1230.2C1195.84 1230.2 1197.11 1230.49 1198.18 1231.07C1199.27 1231.65 1200.11 1232.44 1200.69 1233.45C1201.29 1234.46 1201.59 1235.62 1201.59 1236.91C1201.59 1237.82 1201.45 1238.65 1201.17 1239.38C1200.89 1240.12 1200.5 1240.78 1199.97 1241.36C1199.46 1241.94 1198.84 1242.45 1198.11 1242.9C1197.38 1243.36 1196.8 1243.84 1196.36 1244.34C1195.92 1244.84 1195.6 1245.43 1195.4 1246.12C1195.2 1246.81 1195.09 1247.66 1195.08 1248.69V1248.84H1192.09ZM1193.68 1256.2C1193.07 1256.2 1192.55 1255.98 1192.11 1255.54C1191.67 1255.1 1191.45 1254.57 1191.45 1253.96C1191.45 1253.35 1191.67 1252.82 1192.11 1252.38C1192.55 1251.94 1193.07 1251.72 1193.68 1251.72C1194.3 1251.72 1194.82 1251.94 1195.26 1252.38C1195.7 1252.82 1195.92 1253.35 1195.92 1253.96C1195.92 1254.37 1195.82 1254.74 1195.61 1255.08C1195.41 1255.42 1195.14 1255.69 1194.8 1255.9C1194.47 1256.1 1194.1 1256.2 1193.68 1256.2ZM1216.25 1256V1230.55H1219.33V1241.88H1232.9V1230.55H1235.98V1256H1232.9V1244.62H1219.33V1256H1216.25ZM1249.51 1256.4C1247.79 1256.4 1246.28 1255.99 1244.98 1255.17C1243.68 1254.35 1242.67 1253.2 1241.94 1251.72C1241.22 1250.25 1240.86 1248.53 1240.86 1246.55C1240.86 1244.57 1241.22 1242.83 1241.94 1241.35C1242.67 1239.86 1243.68 1238.71 1244.98 1237.89C1246.28 1237.07 1247.79 1236.66 1249.51 1236.66C1251.24 1236.66 1252.74 1237.07 1254.04 1237.89C1255.34 1238.71 1256.35 1239.86 1257.07 1241.35C1257.8 1242.83 1258.16 1244.57 1258.16 1246.55C1258.16 1248.53 1257.8 1250.25 1257.07 1251.72C1256.35 1253.2 1255.34 1254.35 1254.04 1255.17C1252.74 1255.99 1251.24 1256.4 1249.51 1256.4ZM1249.51 1253.76C1250.82 1253.76 1251.9 1253.43 1252.74 1252.76C1253.59 1252.08 1254.21 1251.2 1254.62 1250.11C1255.03 1249.01 1255.23 1247.83 1255.23 1246.55C1255.23 1245.28 1255.03 1244.09 1254.62 1242.99C1254.21 1241.88 1253.59 1240.99 1252.74 1240.31C1251.9 1239.64 1250.82 1239.3 1249.51 1239.3C1248.2 1239.3 1247.13 1239.64 1246.28 1240.31C1245.44 1240.99 1244.81 1241.88 1244.4 1242.99C1244 1244.09 1243.8 1245.28 1243.8 1246.55C1243.8 1247.83 1244 1249.01 1244.4 1250.11C1244.81 1251.2 1245.44 1252.08 1246.28 1252.76C1247.13 1253.43 1248.2 1253.76 1249.51 1253.76ZM1266.32 1256L1260.5 1236.91H1263.58L1267.71 1251.53H1267.91L1271.98 1236.91H1275.12L1279.14 1251.48H1279.34L1283.47 1236.91H1286.55L1280.73 1256H1277.85L1273.67 1241.33H1273.38L1269.2 1256H1266.32ZM1304.6 1256L1298.78 1236.91H1301.86L1305.99 1251.53H1306.19L1310.27 1236.91H1313.4L1317.42 1251.48H1317.62L1321.75 1236.91H1324.83L1319.02 1256H1316.13L1311.96 1241.33H1311.66L1307.48 1256H1304.6ZM1328.71 1256V1236.91H1331.64V1256H1328.71ZM1330.2 1233.73C1329.63 1233.73 1329.14 1233.53 1328.72 1233.14C1328.32 1232.75 1328.11 1232.29 1328.11 1231.74C1328.11 1231.19 1328.32 1230.72 1328.72 1230.33C1329.14 1229.94 1329.63 1229.75 1330.2 1229.75C1330.77 1229.75 1331.26 1229.94 1331.67 1230.33C1332.08 1230.72 1332.29 1231.19 1332.29 1231.74C1332.29 1232.29 1332.08 1232.75 1331.67 1233.14C1331.26 1233.53 1330.77 1233.73 1330.2 1233.73ZM1339.95 1230.55V1256H1337.02V1230.55H1339.95ZM1348.25 1230.55V1256H1345.32V1230.55H1348.25ZM1365.36 1263.16C1364.86 1263.16 1364.42 1263.12 1364.03 1263.03C1363.64 1262.96 1363.37 1262.89 1363.22 1262.81L1363.97 1260.23C1364.68 1260.41 1365.31 1260.47 1365.86 1260.42C1366.4 1260.38 1366.89 1260.13 1367.31 1259.69C1367.74 1259.26 1368.14 1258.56 1368.49 1257.59L1369.04 1256.1L1361.98 1236.91H1365.16L1370.43 1252.12H1370.63L1375.9 1236.91H1379.08L1370.98 1258.78C1370.61 1259.77 1370.16 1260.59 1369.62 1261.23C1369.08 1261.89 1368.46 1262.37 1367.75 1262.69C1367.04 1263 1366.25 1263.16 1365.36 1263.16ZM1390.03 1256.4C1388.3 1256.4 1386.79 1255.99 1385.49 1255.17C1384.2 1254.35 1383.19 1253.2 1382.46 1251.72C1381.74 1250.25 1381.37 1248.53 1381.37 1246.55C1381.37 1244.57 1381.74 1242.83 1382.46 1241.35C1383.19 1239.86 1384.2 1238.71 1385.49 1237.89C1386.79 1237.07 1388.3 1236.66 1390.03 1236.66C1391.75 1236.66 1393.26 1237.07 1394.55 1237.89C1395.85 1238.71 1396.86 1239.86 1397.58 1241.35C1398.31 1242.83 1398.68 1244.57 1398.68 1246.55C1398.68 1248.53 1398.31 1250.25 1397.58 1251.72C1396.86 1253.2 1395.85 1254.35 1394.55 1255.17C1393.26 1255.99 1391.75 1256.4 1390.03 1256.4ZM1390.03 1253.76C1391.33 1253.76 1392.41 1253.43 1393.26 1252.76C1394.1 1252.08 1394.73 1251.2 1395.13 1250.11C1395.54 1249.01 1395.74 1247.83 1395.74 1246.55C1395.74 1245.28 1395.54 1244.09 1395.13 1242.99C1394.73 1241.88 1394.1 1240.99 1393.26 1240.31C1392.41 1239.64 1391.33 1239.3 1390.03 1239.3C1388.72 1239.3 1387.64 1239.64 1386.79 1240.31C1385.95 1240.99 1385.32 1241.88 1384.92 1242.99C1384.51 1244.09 1384.31 1245.28 1384.31 1246.55C1384.31 1247.83 1384.51 1249.01 1384.92 1250.11C1385.32 1251.2 1385.95 1252.08 1386.79 1252.76C1387.64 1253.43 1388.72 1253.76 1390.03 1253.76ZM1415.18 1248.19V1236.91H1418.12V1256H1415.18V1252.77H1414.99C1414.54 1253.74 1413.84 1254.56 1412.9 1255.24C1411.95 1255.91 1410.76 1256.25 1409.32 1256.25C1408.12 1256.25 1407.06 1255.99 1406.14 1255.47C1405.21 1254.94 1404.48 1254.14 1403.95 1253.08C1403.42 1252.01 1403.15 1250.66 1403.15 1249.04V1236.91H1406.09V1248.84C1406.09 1250.23 1406.48 1251.34 1407.25 1252.17C1408.04 1253 1409.04 1253.41 1410.26 1253.41C1410.99 1253.41 1411.73 1253.23 1412.49 1252.86C1413.25 1252.48 1413.89 1251.91 1414.4 1251.14C1414.92 1250.37 1415.18 1249.39 1415.18 1248.19ZM1064.59 1298V1278.91H1067.42V1281.89H1067.67C1068.07 1280.87 1068.71 1280.08 1069.6 1279.52C1070.48 1278.95 1071.55 1278.66 1072.79 1278.66C1074.05 1278.66 1075.1 1278.95 1075.93 1279.52C1076.78 1280.08 1077.44 1280.87 1077.91 1281.89H1078.11C1078.6 1280.91 1079.33 1280.12 1080.31 1279.54C1081.29 1278.95 1082.46 1278.66 1083.83 1278.66C1085.53 1278.66 1086.93 1279.19 1088.02 1280.26C1089.1 1281.32 1089.64 1282.98 1089.64 1285.22V1298H1086.71V1285.22C1086.71 1283.81 1086.32 1282.81 1085.55 1282.2C1084.78 1281.6 1083.88 1281.3 1082.83 1281.3C1081.49 1281.3 1080.45 1281.7 1079.71 1282.51C1078.98 1283.32 1078.61 1284.34 1078.61 1285.57V1298H1075.62V1284.92C1075.62 1283.84 1075.27 1282.97 1074.57 1282.3C1073.86 1281.63 1072.96 1281.3 1071.85 1281.3C1071.08 1281.3 1070.37 1281.5 1069.71 1281.9C1069.05 1282.31 1068.52 1282.87 1068.12 1283.59C1067.72 1284.31 1067.52 1285.13 1067.52 1286.07V1298H1064.59ZM1102.76 1298.4C1101.04 1298.4 1099.53 1297.99 1098.23 1297.17C1096.93 1296.35 1095.92 1295.2 1095.19 1293.72C1094.47 1292.25 1094.11 1290.53 1094.11 1288.55C1094.11 1286.57 1094.47 1284.83 1095.19 1283.35C1095.92 1281.86 1096.93 1280.71 1098.23 1279.89C1099.53 1279.07 1101.04 1278.66 1102.76 1278.66C1104.49 1278.66 1105.99 1279.07 1107.29 1279.89C1108.59 1280.71 1109.6 1281.86 1110.32 1283.35C1111.05 1284.83 1111.41 1286.57 1111.41 1288.55C1111.41 1290.53 1111.05 1292.25 1110.32 1293.72C1109.6 1295.2 1108.59 1296.35 1107.29 1297.17C1105.99 1297.99 1104.49 1298.4 1102.76 1298.4ZM1102.76 1295.76C1104.07 1295.76 1105.15 1295.43 1105.99 1294.76C1106.84 1294.08 1107.46 1293.2 1107.87 1292.11C1108.28 1291.01 1108.48 1289.83 1108.48 1288.55C1108.48 1287.28 1108.28 1286.09 1107.87 1284.99C1107.46 1283.88 1106.84 1282.99 1105.99 1282.31C1105.15 1281.64 1104.07 1281.3 1102.76 1281.3C1101.45 1281.3 1100.38 1281.64 1099.53 1282.31C1098.69 1282.99 1098.06 1283.88 1097.65 1284.99C1097.25 1286.09 1097.04 1287.28 1097.04 1288.55C1097.04 1289.83 1097.25 1291.01 1097.65 1292.11C1098.06 1293.2 1098.69 1294.08 1099.53 1294.76C1100.38 1295.43 1101.45 1295.76 1102.76 1295.76ZM1118.82 1286.52V1298H1115.89V1278.91H1118.72V1281.89H1118.97C1119.42 1280.92 1120.1 1280.14 1121.01 1279.56C1121.92 1278.96 1123.1 1278.66 1124.54 1278.66C1125.83 1278.66 1126.96 1278.93 1127.93 1279.46C1128.9 1279.98 1129.66 1280.77 1130.2 1281.84C1130.73 1282.9 1131 1284.25 1131 1285.87V1298H1128.07V1286.07C1128.07 1284.57 1127.68 1283.4 1126.9 1282.56C1126.12 1281.72 1125.05 1281.3 1123.7 1281.3C1122.76 1281.3 1121.92 1281.5 1121.18 1281.9C1120.46 1282.31 1119.88 1282.9 1119.46 1283.68C1119.03 1284.46 1118.82 1285.41 1118.82 1286.52ZM1136.36 1298V1278.91H1139.3V1298H1136.36ZM1137.86 1275.73C1137.28 1275.73 1136.79 1275.53 1136.38 1275.14C1135.97 1274.75 1135.77 1274.29 1135.77 1273.74C1135.77 1273.19 1135.97 1272.72 1136.38 1272.33C1136.79 1271.94 1137.28 1271.75 1137.86 1271.75C1138.43 1271.75 1138.92 1271.94 1139.32 1272.33C1139.74 1272.72 1139.94 1273.19 1139.94 1273.74C1139.94 1274.29 1139.74 1274.75 1139.32 1275.14C1138.92 1275.53 1138.43 1275.73 1137.86 1275.73ZM1152.97 1278.91V1281.39H1143.08V1278.91H1152.97ZM1145.96 1274.34H1148.9V1292.53C1148.9 1293.36 1149.02 1293.98 1149.26 1294.4C1149.5 1294.8 1149.82 1295.08 1150.2 1295.22C1150.59 1295.35 1151 1295.41 1151.43 1295.41C1151.75 1295.41 1152.02 1295.4 1152.23 1295.37C1152.43 1295.32 1152.6 1295.29 1152.72 1295.27L1153.32 1297.9C1153.12 1297.98 1152.84 1298.05 1152.49 1298.12C1152.13 1298.21 1151.68 1298.25 1151.13 1298.25C1150.3 1298.25 1149.49 1298.07 1148.7 1297.71C1147.91 1297.36 1147.25 1296.82 1146.73 1296.09C1146.22 1295.36 1145.96 1294.44 1145.96 1293.33V1274.34ZM1164.93 1298.4C1163.21 1298.4 1161.7 1297.99 1160.4 1297.17C1159.11 1296.35 1158.09 1295.2 1157.37 1293.72C1156.64 1292.25 1156.28 1290.53 1156.28 1288.55C1156.28 1286.57 1156.64 1284.83 1157.37 1283.35C1158.09 1281.86 1159.11 1280.71 1160.4 1279.89C1161.7 1279.07 1163.21 1278.66 1164.93 1278.66C1166.66 1278.66 1168.17 1279.07 1169.46 1279.89C1170.76 1280.71 1171.77 1281.86 1172.49 1283.35C1173.22 1284.83 1173.59 1286.57 1173.59 1288.55C1173.59 1290.53 1173.22 1292.25 1172.49 1293.72C1171.77 1295.2 1170.76 1296.35 1169.46 1297.17C1168.17 1297.99 1166.66 1298.4 1164.93 1298.4ZM1164.93 1295.76C1166.24 1295.76 1167.32 1295.43 1168.17 1294.76C1169.01 1294.08 1169.64 1293.2 1170.04 1292.11C1170.45 1291.01 1170.65 1289.83 1170.65 1288.55C1170.65 1287.28 1170.45 1286.09 1170.04 1284.99C1169.64 1283.88 1169.01 1282.99 1168.17 1282.31C1167.32 1281.64 1166.24 1281.3 1164.93 1281.3C1163.63 1281.3 1162.55 1281.64 1161.7 1282.31C1160.86 1282.99 1160.23 1283.88 1159.83 1284.99C1159.42 1286.09 1159.22 1287.28 1159.22 1288.55C1159.22 1289.83 1159.42 1291.01 1159.83 1292.11C1160.23 1293.2 1160.86 1294.08 1161.7 1294.76C1162.55 1295.43 1163.63 1295.76 1164.93 1295.76ZM1178.06 1298V1278.91H1180.9V1281.79H1181.1C1181.44 1280.85 1182.07 1280.08 1182.98 1279.49C1183.9 1278.9 1184.92 1278.61 1186.07 1278.61C1186.28 1278.61 1186.55 1278.61 1186.88 1278.62C1187.2 1278.63 1187.44 1278.64 1187.61 1278.66V1281.64C1187.51 1281.62 1187.28 1281.58 1186.92 1281.53C1186.58 1281.47 1186.21 1281.44 1185.82 1281.44C1184.89 1281.44 1184.06 1281.64 1183.33 1282.03C1182.61 1282.41 1182.04 1282.94 1181.62 1283.62C1181.2 1284.29 1181 1285.06 1181 1285.92V1298H1178.06ZM1206.55 1298.45C1205.34 1298.45 1204.24 1298.22 1203.25 1297.76C1202.27 1297.3 1201.48 1296.63 1200.9 1295.76C1200.32 1294.88 1200.03 1293.82 1200.03 1292.58C1200.03 1291.49 1200.25 1290.6 1200.68 1289.92C1201.11 1289.23 1201.69 1288.69 1202.41 1288.31C1203.13 1287.92 1203.92 1287.63 1204.79 1287.44C1205.67 1287.24 1206.56 1287.08 1207.44 1286.96C1208.6 1286.81 1209.54 1286.7 1210.26 1286.63C1210.99 1286.54 1211.52 1286.41 1211.85 1286.22C1212.19 1286.03 1212.36 1285.7 1212.36 1285.22V1285.12C1212.36 1283.9 1212.03 1282.94 1211.36 1282.26C1210.69 1281.59 1209.69 1281.25 1208.34 1281.25C1206.94 1281.25 1205.84 1281.55 1205.04 1282.17C1204.25 1282.78 1203.69 1283.43 1203.37 1284.13L1200.58 1283.13C1201.08 1281.97 1201.74 1281.07 1202.57 1280.43C1203.41 1279.77 1204.32 1279.32 1205.3 1279.06C1206.3 1278.79 1207.28 1278.66 1208.24 1278.66C1208.85 1278.66 1209.55 1278.74 1210.35 1278.88C1211.15 1279.03 1211.93 1279.32 1212.67 1279.77C1213.43 1280.21 1214.05 1280.89 1214.55 1281.79C1215.05 1282.7 1215.3 1283.91 1215.3 1285.42V1298H1212.36V1295.41H1212.21C1212.02 1295.83 1211.68 1296.27 1211.22 1296.74C1210.76 1297.22 1210.14 1297.62 1209.37 1297.95C1208.6 1298.28 1207.66 1298.45 1206.55 1298.45ZM1206.99 1295.81C1208.15 1295.81 1209.13 1295.58 1209.93 1295.13C1210.73 1294.67 1211.34 1294.08 1211.74 1293.36C1212.16 1292.64 1212.36 1291.88 1212.36 1291.09V1288.4C1212.24 1288.55 1211.97 1288.69 1211.54 1288.81C1211.13 1288.93 1210.65 1289.03 1210.1 1289.13C1209.56 1289.21 1209.04 1289.28 1208.52 1289.35C1208.02 1289.41 1207.61 1289.46 1207.29 1289.5C1206.53 1289.6 1205.82 1289.76 1205.16 1289.98C1204.5 1290.2 1203.97 1290.53 1203.56 1290.97C1203.17 1291.4 1202.97 1291.98 1202.97 1292.73C1202.97 1293.75 1203.34 1294.52 1204.1 1295.04C1204.86 1295.56 1205.83 1295.81 1206.99 1295.81ZM1223.58 1272.55V1298H1220.65V1272.55H1223.58ZM1228.96 1298V1278.91H1231.89V1298H1228.96ZM1230.45 1275.73C1229.88 1275.73 1229.38 1275.53 1228.97 1275.14C1228.56 1274.75 1228.36 1274.29 1228.36 1273.74C1228.36 1273.19 1228.56 1272.72 1228.97 1272.33C1229.38 1271.94 1229.88 1271.75 1230.45 1271.75C1231.02 1271.75 1231.51 1271.94 1231.91 1272.33C1232.33 1272.72 1232.54 1273.19 1232.54 1273.74C1232.54 1274.29 1232.33 1274.75 1231.91 1275.14C1231.51 1275.53 1231.02 1275.73 1230.45 1275.73ZM1244.97 1305.56C1243.55 1305.56 1242.33 1305.37 1241.31 1305.01C1240.29 1304.65 1239.45 1304.18 1238.77 1303.59C1238.1 1303.01 1237.56 1302.39 1237.16 1301.73L1239.5 1300.09C1239.76 1300.44 1240.1 1300.83 1240.51 1301.28C1240.91 1301.74 1241.47 1302.13 1242.17 1302.46C1242.88 1302.8 1243.82 1302.97 1244.97 1302.97C1246.51 1302.97 1247.78 1302.6 1248.78 1301.85C1249.79 1301.11 1250.29 1299.94 1250.29 1298.35V1294.47H1250.04C1249.82 1294.82 1249.52 1295.25 1249.12 1295.76C1248.73 1296.27 1248.17 1296.72 1247.43 1297.12C1246.7 1297.51 1245.71 1297.7 1244.47 1297.7C1242.93 1297.7 1241.55 1297.34 1240.32 1296.61C1239.1 1295.88 1238.14 1294.82 1237.42 1293.43C1236.72 1292.03 1236.37 1290.34 1236.37 1288.36C1236.37 1286.4 1236.71 1284.7 1237.4 1283.25C1238.09 1281.79 1239.04 1280.66 1240.27 1279.87C1241.5 1279.06 1242.91 1278.66 1244.52 1278.66C1245.76 1278.66 1246.75 1278.87 1247.48 1279.28C1248.22 1279.69 1248.78 1280.15 1249.17 1280.67C1249.57 1281.19 1249.87 1281.61 1250.09 1281.94H1250.39V1278.91H1253.22V1298.55C1253.22 1300.19 1252.85 1301.52 1252.1 1302.55C1251.37 1303.58 1250.37 1304.34 1249.12 1304.82C1247.88 1305.31 1246.49 1305.56 1244.97 1305.56ZM1244.87 1295.07C1246.05 1295.07 1247.04 1294.8 1247.85 1294.26C1248.66 1293.72 1249.28 1292.95 1249.7 1291.93C1250.13 1290.92 1250.34 1289.71 1250.34 1288.31C1250.34 1286.93 1250.13 1285.72 1249.72 1284.66C1249.3 1283.61 1248.69 1282.79 1247.88 1282.19C1247.06 1281.59 1246.06 1281.3 1244.87 1281.3C1243.63 1281.3 1242.59 1281.61 1241.76 1282.24C1240.94 1282.87 1240.32 1283.71 1239.91 1284.78C1239.5 1285.84 1239.3 1287.01 1239.3 1288.31C1239.3 1289.63 1239.51 1290.8 1239.92 1291.82C1240.34 1292.83 1240.97 1293.63 1241.79 1294.21C1242.62 1294.78 1243.64 1295.07 1244.87 1295.07ZM1261.52 1286.52V1298H1258.59V1278.91H1261.42V1281.89H1261.67C1262.12 1280.92 1262.8 1280.14 1263.71 1279.56C1264.62 1278.96 1265.8 1278.66 1267.24 1278.66C1268.53 1278.66 1269.66 1278.93 1270.63 1279.46C1271.6 1279.98 1272.36 1280.77 1272.9 1281.84C1273.43 1282.9 1273.7 1284.25 1273.7 1285.87V1298H1270.77V1286.07C1270.77 1284.57 1270.38 1283.4 1269.6 1282.56C1268.82 1281.72 1267.75 1281.3 1266.4 1281.3C1265.46 1281.3 1264.62 1281.5 1263.89 1281.9C1263.16 1282.31 1262.58 1282.9 1262.16 1283.68C1261.73 1284.46 1261.52 1285.41 1261.52 1286.52ZM1279.06 1298V1278.91H1281.9V1281.89H1282.15C1282.54 1280.87 1283.19 1280.08 1284.07 1279.52C1284.96 1278.95 1286.02 1278.66 1287.27 1278.66C1288.53 1278.66 1289.57 1278.95 1290.41 1279.52C1291.26 1280.08 1291.92 1280.87 1292.39 1281.89H1292.59C1293.08 1280.91 1293.81 1280.12 1294.79 1279.54C1295.76 1278.95 1296.94 1278.66 1298.3 1278.66C1300.01 1278.66 1301.41 1279.19 1302.49 1280.26C1303.58 1281.32 1304.12 1282.98 1304.12 1285.22V1298H1301.19V1285.22C1301.19 1283.81 1300.8 1282.81 1300.03 1282.2C1299.26 1281.6 1298.35 1281.3 1297.31 1281.3C1295.97 1281.3 1294.93 1281.7 1294.19 1282.51C1293.45 1283.32 1293.08 1284.34 1293.08 1285.57V1298H1290.1V1284.92C1290.1 1283.84 1289.75 1282.97 1289.04 1282.3C1288.34 1281.63 1287.43 1281.3 1286.32 1281.3C1285.56 1281.3 1284.85 1281.5 1284.18 1281.9C1283.53 1282.31 1283 1282.87 1282.59 1283.59C1282.2 1284.31 1282 1285.13 1282 1286.07V1298H1279.06ZM1317.49 1298.4C1315.65 1298.4 1314.06 1297.99 1312.73 1297.18C1311.4 1296.36 1310.38 1295.22 1309.66 1293.75C1308.95 1292.27 1308.59 1290.56 1308.59 1288.6C1308.59 1286.65 1308.95 1284.92 1309.66 1283.43C1310.38 1281.93 1311.38 1280.77 1312.67 1279.93C1313.96 1279.08 1315.47 1278.66 1317.19 1278.66C1318.18 1278.66 1319.17 1278.83 1320.14 1279.16C1321.11 1279.49 1321.99 1280.03 1322.78 1280.77C1323.58 1281.51 1324.21 1282.49 1324.68 1283.71C1325.16 1284.92 1325.39 1286.42 1325.39 1288.21V1289.45H1310.68V1286.91H1322.41C1322.41 1285.84 1322.19 1284.87 1321.76 1284.03C1321.34 1283.18 1320.74 1282.52 1319.95 1282.03C1319.17 1281.54 1318.25 1281.3 1317.19 1281.3C1316.02 1281.3 1315.01 1281.59 1314.16 1282.17C1313.31 1282.74 1312.66 1283.48 1312.21 1284.4C1311.75 1285.32 1311.52 1286.31 1311.52 1287.36V1289.05C1311.52 1290.49 1311.77 1291.72 1312.27 1292.72C1312.77 1293.71 1313.47 1294.47 1314.37 1294.99C1315.26 1295.51 1316.3 1295.76 1317.49 1295.76C1318.26 1295.76 1318.95 1295.66 1319.58 1295.44C1320.21 1295.22 1320.75 1294.88 1321.2 1294.45C1321.66 1294 1322.01 1293.44 1322.26 1292.78L1325.09 1293.58C1324.8 1294.54 1324.3 1295.38 1323.59 1296.11C1322.89 1296.83 1322.02 1297.4 1320.98 1297.8C1319.95 1298.2 1318.78 1298.4 1317.49 1298.4ZM1332.79 1286.52V1298H1329.86V1278.91H1332.69V1281.89H1332.94C1333.38 1280.92 1334.06 1280.14 1334.98 1279.56C1335.89 1278.96 1337.06 1278.66 1338.51 1278.66C1339.8 1278.66 1340.93 1278.93 1341.9 1279.46C1342.87 1279.98 1343.62 1280.77 1344.16 1281.84C1344.7 1282.9 1344.97 1284.25 1344.97 1285.87V1298H1342.04V1286.07C1342.04 1284.57 1341.65 1283.4 1340.87 1282.56C1340.09 1281.72 1339.02 1281.3 1337.66 1281.3C1336.72 1281.3 1335.89 1281.5 1335.15 1281.9C1334.42 1282.31 1333.84 1282.9 1333.42 1283.68C1333 1284.46 1332.79 1285.41 1332.79 1286.52ZM1358.63 1278.91V1281.39H1348.74V1278.91H1358.63ZM1351.62 1274.34H1354.55V1292.53C1354.55 1293.36 1354.67 1293.98 1354.91 1294.4C1355.16 1294.8 1355.48 1295.08 1355.86 1295.22C1356.25 1295.35 1356.66 1295.41 1357.09 1295.41C1357.41 1295.41 1357.68 1295.4 1357.89 1295.37C1358.09 1295.32 1358.26 1295.29 1358.38 1295.27L1358.98 1297.9C1358.78 1297.98 1358.5 1298.05 1358.15 1298.12C1357.79 1298.21 1357.34 1298.25 1356.79 1298.25C1355.96 1298.25 1355.15 1298.07 1354.36 1297.71C1353.57 1297.36 1352.91 1296.82 1352.39 1296.09C1351.88 1295.36 1351.62 1294.44 1351.62 1293.33V1274.34ZM1366.87 1290.84V1290.69C1366.89 1289.11 1367.05 1287.85 1367.37 1286.91C1367.68 1285.98 1368.13 1285.22 1368.71 1284.64C1369.29 1284.06 1369.99 1283.52 1370.8 1283.04C1371.29 1282.74 1371.73 1282.39 1372.12 1281.98C1372.51 1281.56 1372.81 1281.09 1373.04 1280.55C1373.27 1280.01 1373.38 1279.41 1373.38 1278.76C1373.38 1277.95 1373.19 1277.24 1372.81 1276.65C1372.43 1276.05 1371.92 1275.59 1371.28 1275.27C1370.65 1274.94 1369.94 1274.78 1369.16 1274.78C1368.48 1274.78 1367.82 1274.92 1367.19 1275.21C1366.57 1275.49 1366.04 1275.93 1365.62 1276.54C1365.19 1277.14 1364.95 1277.93 1364.88 1278.91H1361.75C1361.82 1277.5 1362.18 1276.29 1362.84 1275.29C1363.52 1274.29 1364.4 1273.52 1365.49 1272.99C1366.59 1272.46 1367.82 1272.2 1369.16 1272.2C1370.62 1272.2 1371.88 1272.49 1372.96 1273.07C1374.05 1273.65 1374.88 1274.44 1375.47 1275.45C1376.07 1276.46 1376.37 1277.62 1376.37 1278.91C1376.37 1279.82 1376.23 1280.65 1375.94 1281.38C1375.67 1282.12 1375.27 1282.78 1374.75 1283.36C1374.24 1283.94 1373.62 1284.45 1372.89 1284.9C1372.16 1285.36 1371.57 1285.84 1371.13 1286.34C1370.7 1286.84 1370.38 1287.43 1370.18 1288.12C1369.98 1288.81 1369.87 1289.66 1369.85 1290.69V1290.84H1366.87ZM1368.46 1298.2C1367.85 1298.2 1367.32 1297.98 1366.88 1297.54C1366.44 1297.1 1366.23 1296.57 1366.23 1295.96C1366.23 1295.35 1366.44 1294.82 1366.88 1294.38C1367.32 1293.94 1367.85 1293.72 1368.46 1293.72C1369.08 1293.72 1369.6 1293.94 1370.04 1294.38C1370.48 1294.82 1370.7 1295.35 1370.7 1295.96C1370.7 1296.37 1370.6 1296.74 1370.39 1297.08C1370.19 1297.42 1369.92 1297.69 1369.58 1297.9C1369.25 1298.1 1368.88 1298.2 1368.46 1298.2Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g\r\n id=\"ExistingRAndCPathway\"\r\n className=\"map-btn\"\r\n onClick={ClickHandler(\"ExistingRAndCPathway\")}\r\n >\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 3\"\r\n x=\"95\"\r\n y=\"467\"\r\n width=\"572\"\r\n height=\"333\"\r\n rx=\"50\"\r\n fill=\"#396F9D\"\r\n />\r\n <path\r\n d=\"M262.011 535V505.182H280.007V508.385H265.622V518.46H279.075V521.663H265.622V531.797H280.24V535H262.011ZM288.612 512.636L293.97 521.78L299.328 512.636H303.288L296.066 523.818L303.288 535H299.328L293.97 526.322L288.612 535H284.651L291.757 523.818L284.651 512.636H288.612ZM308.191 535V512.636H311.627V535H308.191ZM309.938 508.909C309.268 508.909 308.691 508.681 308.205 508.225C307.73 507.769 307.492 507.22 307.492 506.58C307.492 505.939 307.73 505.391 308.205 504.934C308.691 504.478 309.268 504.25 309.938 504.25C310.608 504.25 311.18 504.478 311.656 504.934C312.141 505.391 312.384 505.939 312.384 506.58C312.384 507.22 312.141 507.769 311.656 508.225C311.18 508.681 310.608 508.909 309.938 508.909ZM333.761 517.645L330.675 518.518C330.48 518.004 330.194 517.504 329.816 517.019C329.447 516.524 328.942 516.116 328.301 515.796C327.661 515.475 326.84 515.315 325.841 515.315C324.472 515.315 323.332 515.631 322.419 516.262C321.517 516.883 321.065 517.674 321.065 518.635C321.065 519.489 321.376 520.164 321.997 520.659C322.618 521.154 323.589 521.566 324.909 521.896L328.229 522.712C330.228 523.197 331.718 523.94 332.698 524.939C333.679 525.929 334.169 527.206 334.169 528.768C334.169 530.05 333.8 531.195 333.062 532.205C332.334 533.214 331.315 534.01 330.005 534.592C328.694 535.175 327.171 535.466 325.433 535.466C323.152 535.466 321.264 534.971 319.769 533.981C318.275 532.991 317.328 531.545 316.93 529.642L320.192 528.827C320.502 530.03 321.089 530.933 321.953 531.535C322.827 532.137 323.967 532.438 325.375 532.438C326.976 532.438 328.248 532.098 329.189 531.418C330.141 530.729 330.616 529.904 330.616 528.943C330.616 528.167 330.345 527.516 329.801 526.992C329.257 526.458 328.423 526.06 327.297 525.798L323.569 524.925C321.521 524.439 320.017 523.687 319.056 522.668C318.105 521.639 317.629 520.353 317.629 518.81C317.629 517.548 317.983 516.432 318.692 515.461C319.41 514.49 320.386 513.728 321.618 513.175C322.861 512.622 324.268 512.345 325.841 512.345C328.054 512.345 329.791 512.83 331.053 513.801C332.325 514.772 333.227 516.053 333.761 517.645ZM349.067 512.636V515.548H337.478V512.636H349.067ZM340.855 507.278H344.291V528.594C344.291 529.564 344.432 530.292 344.714 530.778C345.005 531.253 345.374 531.574 345.82 531.739C346.276 531.894 346.757 531.972 347.262 531.972C347.64 531.972 347.951 531.952 348.193 531.913C348.436 531.865 348.63 531.826 348.776 531.797L349.475 534.884C349.242 534.971 348.917 535.058 348.499 535.146C348.082 535.243 347.553 535.291 346.912 535.291C345.942 535.291 344.99 535.083 344.059 534.665C343.136 534.248 342.37 533.612 341.758 532.758C341.156 531.904 340.855 530.826 340.855 529.526V507.278ZM354.236 535V512.636H357.672V535H354.236ZM355.983 508.909C355.313 508.909 354.736 508.681 354.25 508.225C353.775 507.769 353.537 507.22 353.537 506.58C353.537 505.939 353.775 505.391 354.25 504.934C354.736 504.478 355.313 504.25 355.983 504.25C356.653 504.25 357.225 504.478 357.701 504.934C358.186 505.391 358.429 505.939 358.429 506.58C358.429 507.22 358.186 507.769 357.701 508.225C357.225 508.681 356.653 508.909 355.983 508.909ZM367.401 521.547V535H363.965V512.636H367.285V516.131H367.576C368.1 514.995 368.896 514.083 369.964 513.393C371.031 512.695 372.41 512.345 374.099 512.345C375.613 512.345 376.938 512.656 378.074 513.277C379.209 513.888 380.092 514.82 380.723 516.072C381.354 517.315 381.67 518.887 381.67 520.79V535H378.234V521.023C378.234 519.266 377.777 517.897 376.865 516.917C375.953 515.927 374.701 515.432 373.109 515.432C372.012 515.432 371.031 515.67 370.168 516.145C369.313 516.621 368.639 517.315 368.144 518.227C367.649 519.14 367.401 520.246 367.401 521.547ZM396.976 543.852C395.316 543.852 393.889 543.639 392.695 543.212C391.501 542.794 390.506 542.241 389.71 541.552C388.924 540.872 388.298 540.144 387.832 539.368L390.569 537.446C390.88 537.854 391.273 538.32 391.749 538.844C392.224 539.378 392.875 539.839 393.7 540.227C394.534 540.625 395.626 540.824 396.976 540.824C398.781 540.824 400.271 540.387 401.445 539.513C402.62 538.64 403.207 537.271 403.207 535.408V530.865H402.916C402.664 531.273 402.304 531.777 401.839 532.379C401.382 532.971 400.722 533.5 399.858 533.966C399.004 534.422 397.849 534.651 396.393 534.651C394.588 534.651 392.967 534.223 391.53 533.369C390.103 532.515 388.973 531.273 388.138 529.642C387.313 528.011 386.9 526.031 386.9 523.702C386.9 521.411 387.303 519.416 388.109 517.718C388.914 516.009 390.035 514.689 391.472 513.757C392.909 512.816 394.568 512.345 396.451 512.345C397.907 512.345 399.062 512.588 399.917 513.073C400.781 513.549 401.441 514.092 401.897 514.704C402.363 515.306 402.722 515.801 402.974 516.189H403.324V512.636H406.643V535.641C406.643 537.562 406.206 539.125 405.333 540.329C404.469 541.542 403.304 542.43 401.839 542.993C400.383 543.566 398.762 543.852 396.976 543.852ZM396.859 531.564C398.237 531.564 399.402 531.248 400.353 530.618C401.305 529.987 402.028 529.079 402.523 527.895C403.018 526.711 403.265 525.294 403.265 523.643C403.265 522.032 403.023 520.61 402.537 519.377C402.052 518.145 401.334 517.179 400.383 516.48C399.431 515.781 398.257 515.432 396.859 515.432C395.403 515.432 394.19 515.801 393.219 516.538C392.258 517.276 391.535 518.266 391.05 519.509C390.574 520.751 390.336 522.129 390.336 523.643C390.336 525.196 390.579 526.57 391.064 527.764C391.559 528.948 392.287 529.88 393.248 530.559C394.219 531.229 395.423 531.564 396.859 531.564ZM424.93 535V505.182H435.005C437.335 505.182 439.247 505.58 440.742 506.376C442.237 507.162 443.343 508.244 444.062 509.623C444.78 511.001 445.139 512.568 445.139 514.325C445.139 516.082 444.78 517.64 444.062 518.999C443.343 520.358 442.242 521.426 440.756 522.202C439.271 522.969 437.374 523.352 435.064 523.352H426.91V520.091H434.947C436.539 520.091 437.82 519.858 438.791 519.392C439.771 518.926 440.48 518.266 440.917 517.412C441.363 516.548 441.586 515.519 441.586 514.325C441.586 513.131 441.363 512.088 440.917 511.195C440.47 510.302 439.757 509.613 438.776 509.127C437.796 508.632 436.5 508.385 434.889 508.385H428.541V535H424.93ZM438.966 521.605L446.304 535H442.111L434.889 521.605H438.966ZM459.134 535.408C457.174 535.408 455.485 535.049 454.068 534.33C452.651 533.612 451.559 532.627 450.792 531.375C450.025 530.123 449.642 528.691 449.642 527.08C449.642 525.837 449.904 524.735 450.428 523.775C450.962 522.804 451.694 521.906 452.626 521.081C453.568 520.246 454.65 519.411 455.873 518.577L460.183 515.374C461.027 514.82 461.702 514.228 462.206 513.597C462.721 512.966 462.978 512.141 462.978 511.122C462.978 510.365 462.643 509.632 461.974 508.924C461.314 508.215 460.445 507.861 459.367 507.861C458.61 507.861 457.941 508.055 457.358 508.443C456.785 508.822 456.334 509.307 456.004 509.899C455.684 510.482 455.524 511.083 455.524 511.705C455.524 512.403 455.713 513.112 456.091 513.83C456.48 514.539 456.97 515.267 457.562 516.014C458.164 516.752 458.785 517.509 459.426 518.286L473.112 535H468.977L457.678 521.372C456.63 520.11 455.679 518.965 454.825 517.936C453.971 516.907 453.291 515.893 452.786 514.893C452.282 513.893 452.029 512.811 452.029 511.646C452.029 510.307 452.325 509.132 452.917 508.123C453.519 507.104 454.359 506.313 455.436 505.75C456.523 505.177 457.795 504.891 459.251 504.891C460.746 504.891 462.032 505.182 463.109 505.764C464.187 506.337 465.017 507.099 465.599 508.05C466.181 508.992 466.472 510.016 466.472 511.122C466.472 512.549 466.118 513.787 465.41 514.835C464.701 515.883 463.735 516.859 462.512 517.761L456.572 522.188C455.232 523.178 454.325 524.138 453.849 525.07C453.374 526.002 453.136 526.672 453.136 527.08C453.136 528.011 453.378 528.88 453.864 529.686C454.349 530.491 455.033 531.142 455.917 531.637C456.8 532.132 457.834 532.379 459.018 532.379C460.144 532.379 461.241 532.141 462.308 531.666C463.376 531.181 464.342 530.482 465.206 529.569C466.079 528.657 466.769 527.56 467.273 526.279C467.788 524.998 468.045 523.556 468.045 521.955H471.365C471.365 523.935 471.136 525.551 470.68 526.803C470.224 528.055 469.71 529.035 469.137 529.744C468.564 530.453 468.103 530.982 467.754 531.331C467.637 531.477 467.53 531.622 467.433 531.768C467.336 531.913 467.23 532.059 467.113 532.205C466.152 533.282 464.939 534.088 463.473 534.621C462.008 535.146 460.561 535.408 459.134 535.408ZM501.376 514.5H497.765C497.551 513.461 497.178 512.549 496.644 511.763C496.12 510.977 495.479 510.317 494.722 509.783C493.974 509.239 493.145 508.831 492.232 508.56C491.32 508.288 490.369 508.152 489.378 508.152C487.573 508.152 485.938 508.608 484.472 509.521C483.016 510.433 481.856 511.777 480.992 513.554C480.138 515.33 479.711 517.509 479.711 520.091C479.711 522.673 480.138 524.852 480.992 526.628C481.856 528.404 483.016 529.749 484.472 530.661C485.938 531.574 487.573 532.03 489.378 532.03C490.369 532.03 491.32 531.894 492.232 531.622C493.145 531.35 493.974 530.948 494.722 530.414C495.479 529.87 496.12 529.205 496.644 528.419C497.178 527.623 497.551 526.711 497.765 525.682H501.376C501.104 527.206 500.609 528.569 499.891 529.773C499.172 530.977 498.279 532.001 497.212 532.845C496.144 533.68 494.945 534.316 493.615 534.752C492.295 535.189 490.883 535.408 489.378 535.408C486.835 535.408 484.574 534.786 482.594 533.544C480.614 532.302 479.056 530.535 477.92 528.244C476.784 525.954 476.217 523.236 476.217 520.091C476.217 516.946 476.784 514.228 477.92 511.938C479.056 509.647 480.614 507.88 482.594 506.638C484.574 505.395 486.835 504.774 489.378 504.774C490.883 504.774 492.295 504.993 493.615 505.429C494.945 505.866 496.144 506.507 497.212 507.351C498.279 508.186 499.172 509.205 499.891 510.409C500.609 511.603 501.104 512.966 501.376 514.5Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M258.4 543.153H503.589V545.949H258.4V543.153Z\" fill=\"black\" />\r\n <path\r\n id=\"What resources & capabilities currently exist in the business?\"\r\n d=\"M243.015 614L236.055 588.545H239.187L244.507 609.277H244.755L250.174 588.545H253.654L259.073 609.277H259.322L264.641 588.545H267.774L260.813 614H257.632L252.014 593.716H251.815L246.197 614H243.015ZM274.15 602.516V614H271.216V588.545H274.15V597.892H274.398C274.846 596.906 275.517 596.123 276.412 595.543C277.315 594.955 278.516 594.661 280.016 594.661C281.317 594.661 282.456 594.922 283.434 595.444C284.412 595.957 285.17 596.749 285.709 597.817C286.255 598.878 286.529 600.229 286.529 601.869V614H283.596V602.068C283.596 600.552 283.202 599.379 282.415 598.551C281.636 597.714 280.555 597.295 279.171 597.295C278.21 597.295 277.348 597.498 276.586 597.904C275.832 598.31 275.235 598.903 274.796 599.682C274.365 600.461 274.15 601.405 274.15 602.516ZM297.513 614.447C296.303 614.447 295.205 614.22 294.219 613.764C293.233 613.3 292.45 612.633 291.87 611.763C291.29 610.884 291 609.824 291 608.581C291 607.487 291.216 606.601 291.647 605.921C292.077 605.233 292.653 604.695 293.374 604.305C294.095 603.916 294.89 603.626 295.761 603.435C296.639 603.237 297.521 603.079 298.408 602.963C299.568 602.814 300.508 602.702 301.229 602.627C301.958 602.545 302.489 602.408 302.82 602.217C303.16 602.027 303.33 601.695 303.33 601.223V601.124C303.33 599.897 302.994 598.944 302.323 598.265C301.66 597.585 300.653 597.246 299.303 597.246C297.902 597.246 296.805 597.552 296.009 598.165C295.214 598.779 294.654 599.433 294.331 600.129L291.547 599.135C292.044 597.975 292.707 597.072 293.536 596.425C294.373 595.771 295.284 595.315 296.27 595.058C297.264 594.793 298.242 594.661 299.203 594.661C299.817 594.661 300.521 594.735 301.316 594.884C302.12 595.025 302.895 595.319 303.64 595.767C304.395 596.214 305.02 596.889 305.517 597.793C306.014 598.696 306.263 599.906 306.263 601.422V614H303.33V611.415H303.181C302.982 611.829 302.65 612.272 302.186 612.745C301.722 613.217 301.105 613.619 300.334 613.95C299.564 614.282 298.623 614.447 297.513 614.447ZM297.96 611.812C299.12 611.812 300.098 611.585 300.894 611.129C301.697 610.673 302.302 610.085 302.708 609.364C303.123 608.643 303.33 607.885 303.33 607.089V604.405C303.205 604.554 302.932 604.691 302.509 604.815C302.095 604.931 301.615 605.035 301.068 605.126C300.529 605.209 300.003 605.283 299.489 605.349C298.984 605.407 298.574 605.457 298.259 605.499C297.496 605.598 296.784 605.76 296.121 605.983C295.466 606.199 294.936 606.526 294.53 606.965C294.132 607.396 293.933 607.984 293.933 608.73C293.933 609.749 294.31 610.52 295.064 611.042C295.827 611.556 296.792 611.812 297.96 611.812ZM319.919 594.909V597.395H310.026V594.909H319.919ZM312.909 590.335H315.843V608.531C315.843 609.36 315.963 609.981 316.203 610.396C316.452 610.802 316.767 611.075 317.148 611.216C317.537 611.348 317.947 611.415 318.378 611.415C318.701 611.415 318.966 611.398 319.174 611.365C319.381 611.324 319.546 611.29 319.671 611.266L320.267 613.901C320.068 613.975 319.791 614.05 319.435 614.124C319.078 614.207 318.627 614.249 318.08 614.249C317.251 614.249 316.439 614.07 315.644 613.714C314.857 613.358 314.202 612.815 313.68 612.086C313.166 611.357 312.909 610.437 312.909 609.327V590.335ZM334.175 614V594.909H337.009V597.793H337.208C337.556 596.848 338.186 596.082 339.097 595.493C340.009 594.905 341.036 594.611 342.18 594.611C342.395 594.611 342.664 594.615 342.988 594.623C343.311 594.632 343.555 594.644 343.721 594.661V597.643C343.621 597.619 343.394 597.581 343.037 597.532C342.689 597.474 342.321 597.445 341.931 597.445C341.003 597.445 340.174 597.639 339.445 598.029C338.724 598.41 338.153 598.94 337.73 599.62C337.316 600.291 337.109 601.057 337.109 601.919V614H334.175ZM354.621 614.398C352.782 614.398 351.195 613.992 349.861 613.18C348.535 612.359 347.512 611.216 346.791 609.749C346.078 608.274 345.722 606.559 345.722 604.604C345.722 602.648 346.078 600.925 346.791 599.433C347.512 597.933 348.514 596.765 349.799 595.928C351.091 595.083 352.599 594.661 354.323 594.661C355.317 594.661 356.299 594.826 357.268 595.158C358.238 595.489 359.12 596.028 359.916 596.773C360.711 597.511 361.345 598.489 361.817 599.707C362.29 600.925 362.526 602.424 362.526 604.206V605.449H347.81V602.913H359.543C359.543 601.836 359.327 600.875 358.897 600.03C358.474 599.185 357.869 598.518 357.082 598.029C356.303 597.54 355.383 597.295 354.323 597.295C353.154 597.295 352.144 597.585 351.29 598.165C350.445 598.737 349.794 599.483 349.339 600.403C348.883 601.322 348.655 602.308 348.655 603.361V605.051C348.655 606.493 348.904 607.715 349.401 608.718C349.906 609.712 350.606 610.47 351.501 610.992C352.396 611.506 353.436 611.763 354.621 611.763C355.392 611.763 356.088 611.655 356.709 611.44C357.339 611.216 357.882 610.884 358.337 610.445C358.793 609.998 359.145 609.443 359.394 608.78L362.228 609.575C361.929 610.536 361.428 611.382 360.724 612.111C360.019 612.832 359.149 613.395 358.114 613.801C357.078 614.199 355.914 614.398 354.621 614.398ZM380.511 599.185L377.876 599.93C377.71 599.491 377.466 599.065 377.142 598.65C376.827 598.228 376.397 597.88 375.85 597.606C375.303 597.333 374.603 597.196 373.749 597.196C372.581 597.196 371.607 597.465 370.828 598.004C370.058 598.534 369.673 599.21 369.673 600.03C369.673 600.759 369.938 601.335 370.468 601.757C370.998 602.18 371.827 602.532 372.954 602.814L375.788 603.51C377.495 603.924 378.766 604.558 379.603 605.412C380.44 606.257 380.859 607.346 380.859 608.68C380.859 609.774 380.544 610.752 379.914 611.614C379.293 612.475 378.423 613.155 377.304 613.652C376.185 614.149 374.884 614.398 373.401 614.398C371.454 614.398 369.842 613.975 368.566 613.13C367.29 612.285 366.482 611.05 366.143 609.426L368.927 608.73C369.192 609.758 369.693 610.528 370.431 611.042C371.176 611.556 372.15 611.812 373.352 611.812C374.719 611.812 375.804 611.522 376.608 610.942C377.42 610.354 377.826 609.65 377.826 608.83C377.826 608.167 377.594 607.612 377.13 607.164C376.666 606.708 375.953 606.369 374.992 606.145L371.81 605.399C370.062 604.985 368.778 604.343 367.957 603.473C367.145 602.594 366.739 601.496 366.739 600.179C366.739 599.102 367.042 598.149 367.647 597.32C368.26 596.492 369.093 595.841 370.145 595.369C371.205 594.897 372.407 594.661 373.749 594.661C375.638 594.661 377.122 595.075 378.199 595.903C379.284 596.732 380.055 597.826 380.511 599.185ZM393.03 614.398C391.306 614.398 389.794 613.988 388.493 613.167C387.201 612.347 386.19 611.199 385.46 609.724C384.74 608.25 384.379 606.526 384.379 604.554C384.379 602.565 384.74 600.829 385.46 599.346C386.19 597.863 387.201 596.711 388.493 595.891C389.794 595.071 391.306 594.661 393.03 594.661C394.753 594.661 396.261 595.071 397.554 595.891C398.855 596.711 399.866 597.863 400.587 599.346C401.316 600.829 401.68 602.565 401.68 604.554C401.68 606.526 401.316 608.25 400.587 609.724C399.866 611.199 398.855 612.347 397.554 613.167C396.261 613.988 394.753 614.398 393.03 614.398ZM393.03 611.763C394.339 611.763 395.416 611.427 396.261 610.756C397.106 610.085 397.732 609.202 398.138 608.109C398.544 607.015 398.747 605.83 398.747 604.554C398.747 603.278 398.544 602.089 398.138 600.987C397.732 599.885 397.106 598.994 396.261 598.315C395.416 597.635 394.339 597.295 393.03 597.295C391.721 597.295 390.643 597.635 389.798 598.315C388.953 598.994 388.327 599.885 387.921 600.987C387.515 602.089 387.312 603.278 387.312 604.554C387.312 605.83 387.515 607.015 387.921 608.109C388.327 609.202 388.953 610.085 389.798 610.756C390.643 611.427 391.721 611.763 393.03 611.763ZM418.189 606.195V594.909H421.122V614H418.189V610.768H417.99C417.543 611.738 416.847 612.562 415.902 613.242C414.958 613.913 413.764 614.249 412.323 614.249C411.129 614.249 410.069 613.988 409.141 613.466C408.213 612.935 407.484 612.14 406.953 611.079C406.423 610.01 406.158 608.664 406.158 607.04V594.909H409.091V606.841C409.091 608.233 409.48 609.343 410.259 610.172C411.047 611 412.049 611.415 413.267 611.415C413.996 611.415 414.738 611.228 415.492 610.855C416.254 610.483 416.892 609.911 417.406 609.14C417.928 608.37 418.189 607.388 418.189 606.195ZM426.495 614V594.909H429.329V597.793H429.527C429.875 596.848 430.505 596.082 431.417 595.493C432.328 594.905 433.356 594.611 434.499 594.611C434.714 594.611 434.984 594.615 435.307 594.623C435.63 594.632 435.874 594.644 436.04 594.661V597.643C435.941 597.619 435.713 597.581 435.357 597.532C435.009 597.474 434.64 597.445 434.25 597.445C433.322 597.445 432.494 597.639 431.765 598.029C431.044 598.41 430.472 598.94 430.049 599.62C429.635 600.291 429.428 601.057 429.428 601.919V614H426.495ZM446.692 614.398C444.902 614.398 443.361 613.975 442.068 613.13C440.776 612.285 439.781 611.121 439.085 609.637C438.389 608.154 438.041 606.46 438.041 604.554C438.041 602.615 438.398 600.904 439.11 599.421C439.831 597.929 440.834 596.765 442.118 595.928C443.411 595.083 444.919 594.661 446.642 594.661C447.984 594.661 449.194 594.909 450.271 595.406C451.349 595.903 452.231 596.599 452.919 597.494C453.606 598.389 454.033 599.433 454.199 600.626H451.266C451.042 599.756 450.545 598.986 449.774 598.315C449.012 597.635 447.984 597.295 446.692 597.295C445.548 597.295 444.546 597.594 443.684 598.19C442.831 598.779 442.164 599.611 441.683 600.689C441.211 601.757 440.974 603.013 440.974 604.455C440.974 605.929 441.206 607.214 441.67 608.308C442.143 609.401 442.806 610.251 443.659 610.855C444.521 611.46 445.532 611.763 446.692 611.763C447.454 611.763 448.146 611.63 448.767 611.365C449.389 611.1 449.915 610.719 450.346 610.222C450.777 609.724 451.083 609.128 451.266 608.432H454.199C454.033 609.559 453.623 610.574 452.968 611.477C452.322 612.372 451.465 613.084 450.396 613.615C449.335 614.137 448.1 614.398 446.692 614.398ZM466.491 614.398C464.652 614.398 463.065 613.992 461.731 613.18C460.405 612.359 459.382 611.216 458.661 609.749C457.948 608.274 457.592 606.559 457.592 604.604C457.592 602.648 457.948 600.925 458.661 599.433C459.382 597.933 460.384 596.765 461.669 595.928C462.961 595.083 464.469 594.661 466.193 594.661C467.187 594.661 468.169 594.826 469.139 595.158C470.108 595.489 470.99 596.028 471.786 596.773C472.581 597.511 473.215 598.489 473.688 599.707C474.16 600.925 474.396 602.424 474.396 604.206V605.449H459.68V602.913H471.413C471.413 601.836 471.198 600.875 470.767 600.03C470.344 599.185 469.739 598.518 468.952 598.029C468.173 597.54 467.253 597.295 466.193 597.295C465.025 597.295 464.014 597.585 463.16 598.165C462.315 598.737 461.665 599.483 461.209 600.403C460.753 601.322 460.525 602.308 460.525 603.361V605.051C460.525 606.493 460.774 607.715 461.271 608.718C461.776 609.712 462.477 610.47 463.371 610.992C464.266 611.506 465.306 611.763 466.491 611.763C467.262 611.763 467.958 611.655 468.579 611.44C469.209 611.216 469.752 610.884 470.207 610.445C470.663 609.998 471.015 609.443 471.264 608.78L474.098 609.575C473.799 610.536 473.298 611.382 472.594 612.111C471.889 612.832 471.019 613.395 469.984 613.801C468.948 614.199 467.784 614.398 466.491 614.398ZM492.381 599.185L489.746 599.93C489.58 599.491 489.336 599.065 489.012 598.65C488.698 598.228 488.267 597.88 487.72 597.606C487.173 597.333 486.473 597.196 485.619 597.196C484.451 597.196 483.477 597.465 482.699 598.004C481.928 598.534 481.543 599.21 481.543 600.03C481.543 600.759 481.808 601.335 482.338 601.757C482.868 602.18 483.697 602.532 484.824 602.814L487.658 603.51C489.365 603.924 490.637 604.558 491.473 605.412C492.31 606.257 492.729 607.346 492.729 608.68C492.729 609.774 492.414 610.752 491.784 611.614C491.163 612.475 490.293 613.155 489.174 613.652C488.055 614.149 486.755 614.398 485.271 614.398C483.324 614.398 481.713 613.975 480.436 613.13C479.16 612.285 478.353 611.05 478.013 609.426L480.797 608.73C481.062 609.758 481.563 610.528 482.301 611.042C483.047 611.556 484.02 611.812 485.222 611.812C486.589 611.812 487.674 611.522 488.478 610.942C489.29 610.354 489.696 609.65 489.696 608.83C489.696 608.167 489.464 607.612 489 607.164C488.536 606.708 487.823 606.369 486.862 606.145L483.68 605.399C481.932 604.985 480.648 604.343 479.827 603.473C479.015 602.594 478.609 601.496 478.609 600.179C478.609 599.102 478.912 598.149 479.517 597.32C480.13 596.492 480.963 595.841 482.015 595.369C483.076 594.897 484.277 594.661 485.619 594.661C487.509 594.661 488.992 595.075 490.069 595.903C491.154 596.732 491.925 597.826 492.381 599.185ZM514.197 614.348C512.523 614.348 511.081 614.041 509.871 613.428C508.662 612.815 507.729 611.974 507.075 610.905C506.42 609.836 506.093 608.614 506.093 607.239C506.093 606.178 506.317 605.238 506.764 604.417C507.22 603.589 507.845 602.822 508.641 602.118C509.445 601.405 510.369 600.693 511.413 599.98L515.092 597.246C515.812 596.773 516.388 596.268 516.819 595.729C517.258 595.191 517.478 594.487 517.478 593.616C517.478 592.97 517.192 592.345 516.62 591.74C516.057 591.135 515.315 590.832 514.396 590.832C513.749 590.832 513.178 590.998 512.68 591.33C512.191 591.653 511.806 592.067 511.524 592.572C511.251 593.07 511.114 593.583 511.114 594.114C511.114 594.71 511.276 595.315 511.599 595.928C511.93 596.533 512.349 597.155 512.854 597.793C513.368 598.422 513.898 599.069 514.445 599.732L526.129 614H522.599L512.954 602.366C512.059 601.289 511.247 600.312 510.518 599.433C509.789 598.555 509.209 597.689 508.778 596.836C508.347 595.982 508.131 595.058 508.131 594.064C508.131 592.92 508.384 591.918 508.89 591.056C509.403 590.186 510.12 589.511 511.04 589.03C511.968 588.541 513.053 588.297 514.296 588.297C515.572 588.297 516.67 588.545 517.59 589.043C518.51 589.531 519.218 590.182 519.715 590.994C520.212 591.798 520.461 592.672 520.461 593.616C520.461 594.835 520.158 595.891 519.554 596.786C518.949 597.681 518.124 598.513 517.08 599.284L512.009 603.062C510.866 603.908 510.091 604.728 509.685 605.523C509.279 606.319 509.076 606.891 509.076 607.239C509.076 608.034 509.283 608.776 509.697 609.463C510.112 610.151 510.696 610.706 511.45 611.129C512.204 611.551 513.086 611.763 514.097 611.763C515.058 611.763 515.995 611.56 516.906 611.154C517.818 610.739 518.642 610.143 519.38 609.364C520.125 608.585 520.714 607.649 521.144 606.555C521.584 605.461 521.803 604.231 521.803 602.864H524.637C524.637 604.554 524.442 605.934 524.053 607.002C523.663 608.071 523.224 608.908 522.735 609.513C522.247 610.118 521.853 610.57 521.555 610.868C521.455 610.992 521.364 611.116 521.281 611.241C521.198 611.365 521.107 611.489 521.008 611.614C520.187 612.533 519.152 613.221 517.901 613.677C516.649 614.124 515.415 614.348 514.197 614.348ZM175.681 656.398C173.891 656.398 172.35 655.975 171.057 655.13C169.765 654.285 168.771 653.121 168.075 651.637C167.379 650.154 167.03 648.46 167.03 646.554C167.03 644.615 167.387 642.904 168.099 641.421C168.82 639.929 169.823 638.765 171.107 637.928C172.4 637.083 173.908 636.661 175.631 636.661C176.974 636.661 178.183 636.909 179.261 637.406C180.338 637.903 181.22 638.599 181.908 639.494C182.596 640.389 183.022 641.433 183.188 642.626H180.255C180.031 641.756 179.534 640.986 178.763 640.315C178.001 639.635 176.974 639.295 175.681 639.295C174.538 639.295 173.535 639.594 172.673 640.19C171.82 640.779 171.153 641.611 170.672 642.689C170.2 643.757 169.964 645.013 169.964 646.455C169.964 647.929 170.196 649.214 170.66 650.308C171.132 651.401 171.795 652.251 172.648 652.855C173.51 653.46 174.521 653.763 175.681 653.763C176.443 653.763 177.135 653.63 177.757 653.365C178.378 653.1 178.904 652.719 179.335 652.222C179.766 651.724 180.073 651.128 180.255 650.432H183.188C183.022 651.559 182.612 652.574 181.958 653.477C181.311 654.372 180.454 655.084 179.385 655.615C178.324 656.137 177.09 656.398 175.681 656.398ZM193.094 656.447C191.884 656.447 190.786 656.22 189.8 655.764C188.814 655.3 188.031 654.633 187.451 653.763C186.871 652.884 186.581 651.824 186.581 650.581C186.581 649.487 186.797 648.601 187.228 647.921C187.658 647.233 188.234 646.695 188.955 646.305C189.676 645.916 190.472 645.626 191.342 645.435C192.22 645.237 193.102 645.079 193.989 644.963C195.149 644.814 196.089 644.702 196.81 644.627C197.539 644.545 198.07 644.408 198.401 644.217C198.741 644.027 198.911 643.695 198.911 643.223V643.124C198.911 641.897 198.575 640.944 197.904 640.265C197.241 639.585 196.234 639.246 194.884 639.246C193.484 639.246 192.386 639.552 191.59 640.165C190.795 640.779 190.235 641.433 189.912 642.129L187.128 641.135C187.625 639.975 188.288 639.072 189.117 638.425C189.954 637.771 190.865 637.315 191.851 637.058C192.845 636.793 193.823 636.661 194.784 636.661C195.398 636.661 196.102 636.735 196.897 636.884C197.701 637.025 198.476 637.319 199.222 637.767C199.976 638.214 200.601 638.889 201.098 639.793C201.595 640.696 201.844 641.906 201.844 643.422V656H198.911V653.415H198.762C198.563 653.829 198.231 654.272 197.767 654.745C197.303 655.217 196.686 655.619 195.915 655.95C195.145 656.282 194.204 656.447 193.094 656.447ZM193.542 653.812C194.702 653.812 195.679 653.585 196.475 653.129C197.278 652.673 197.883 652.085 198.289 651.364C198.704 650.643 198.911 649.885 198.911 649.089V646.405C198.787 646.554 198.513 646.691 198.091 646.815C197.676 646.931 197.196 647.035 196.649 647.126C196.11 647.209 195.584 647.283 195.07 647.349C194.565 647.407 194.155 647.457 193.84 647.499C193.077 647.598 192.365 647.76 191.702 647.983C191.047 648.199 190.517 648.526 190.111 648.965C189.713 649.396 189.515 649.984 189.515 650.73C189.515 651.749 189.892 652.52 190.646 653.042C191.408 653.556 192.373 653.812 193.542 653.812ZM207.198 663.159V636.909H210.032V639.942H210.38C210.595 639.61 210.893 639.188 211.275 638.674C211.664 638.152 212.219 637.688 212.94 637.282C213.669 636.868 214.655 636.661 215.898 636.661C217.506 636.661 218.923 637.062 220.149 637.866C221.375 638.67 222.332 639.809 223.02 641.284C223.708 642.759 224.052 644.499 224.052 646.504C224.052 648.526 223.708 650.279 223.02 651.762C222.332 653.237 221.379 654.38 220.161 655.192C218.943 655.996 217.539 656.398 215.948 656.398C214.722 656.398 213.74 656.195 213.002 655.789C212.265 655.374 211.697 654.906 211.299 654.384C210.902 653.854 210.595 653.415 210.38 653.067H210.131V663.159H207.198ZM210.081 646.455C210.081 647.896 210.293 649.168 210.715 650.27C211.138 651.364 211.755 652.222 212.567 652.843C213.379 653.456 214.374 653.763 215.55 653.763C216.776 653.763 217.8 653.44 218.62 652.793C219.449 652.139 220.07 651.26 220.484 650.158C220.907 649.048 221.118 647.813 221.118 646.455C221.118 645.112 220.911 643.902 220.497 642.825C220.091 641.74 219.474 640.882 218.645 640.252C217.825 639.614 216.793 639.295 215.55 639.295C214.357 639.295 213.354 639.598 212.542 640.203C211.73 640.799 211.117 641.636 210.703 642.713C210.289 643.782 210.081 645.029 210.081 646.455ZM234.144 656.447C232.934 656.447 231.836 656.22 230.85 655.764C229.864 655.3 229.081 654.633 228.501 653.763C227.921 652.884 227.631 651.824 227.631 650.581C227.631 649.487 227.847 648.601 228.277 647.921C228.708 647.233 229.284 646.695 230.005 646.305C230.726 645.916 231.521 645.626 232.391 645.435C233.27 645.237 234.152 645.079 235.039 644.963C236.199 644.814 237.139 644.702 237.86 644.627C238.589 644.545 239.12 644.408 239.451 644.217C239.791 644.027 239.961 643.695 239.961 643.223V643.124C239.961 641.897 239.625 640.944 238.954 640.265C238.291 639.585 237.284 639.246 235.934 639.246C234.533 639.246 233.435 639.552 232.64 640.165C231.845 640.779 231.285 641.433 230.962 642.129L228.178 641.135C228.675 639.975 229.338 639.072 230.167 638.425C231.003 637.771 231.915 637.315 232.901 637.058C233.895 636.793 234.873 636.661 235.834 636.661C236.447 636.661 237.152 636.735 237.947 636.884C238.751 637.025 239.526 637.319 240.271 637.767C241.025 638.214 241.651 638.889 242.148 639.793C242.645 640.696 242.894 641.906 242.894 643.422V656H239.961V653.415H239.811C239.613 653.829 239.281 654.272 238.817 654.745C238.353 655.217 237.736 655.619 236.965 655.95C236.195 656.282 235.254 656.447 234.144 656.447ZM234.591 653.812C235.751 653.812 236.729 653.585 237.525 653.129C238.328 652.673 238.933 652.085 239.339 651.364C239.753 650.643 239.961 649.885 239.961 649.089V646.405C239.836 646.554 239.563 646.691 239.14 646.815C238.726 646.931 238.245 647.035 237.699 647.126C237.16 647.209 236.634 647.283 236.12 647.349C235.615 647.407 235.204 647.457 234.89 647.499C234.127 647.598 233.415 647.76 232.752 647.983C232.097 648.199 231.567 648.526 231.161 648.965C230.763 649.396 230.564 649.984 230.564 650.73C230.564 651.749 230.941 652.52 231.695 653.042C232.458 653.556 233.423 653.812 234.591 653.812ZM248.645 656V630.545H251.579V639.942H251.827C252.043 639.61 252.341 639.188 252.722 638.674C253.112 638.152 253.667 637.688 254.388 637.282C255.117 636.868 256.103 636.661 257.346 636.661C258.953 636.661 260.37 637.062 261.596 637.866C262.823 638.67 263.78 639.809 264.467 641.284C265.155 642.759 265.499 644.499 265.499 646.504C265.499 648.526 265.155 650.279 264.467 651.762C263.78 653.237 262.827 654.38 261.609 655.192C260.391 655.996 258.986 656.398 257.395 656.398C256.169 656.398 255.187 656.195 254.45 655.789C253.712 655.374 253.145 654.906 252.747 654.384C252.349 653.854 252.043 653.415 251.827 653.067H251.479V656H248.645ZM251.529 646.455C251.529 647.896 251.74 649.168 252.163 650.27C252.585 651.364 253.203 652.222 254.015 652.843C254.827 653.456 255.821 653.763 256.998 653.763C258.224 653.763 259.247 653.44 260.068 652.793C260.896 652.139 261.518 651.26 261.932 650.158C262.355 649.048 262.566 647.813 262.566 646.455C262.566 645.112 262.359 643.902 261.944 642.825C261.538 641.74 260.921 640.882 260.092 640.252C259.272 639.614 258.241 639.295 256.998 639.295C255.804 639.295 254.802 639.598 253.99 640.203C253.178 640.799 252.565 641.636 252.15 642.713C251.736 643.782 251.529 645.029 251.529 646.455ZM269.986 656V636.909H272.919V656H269.986ZM271.477 633.727C270.906 633.727 270.413 633.533 269.998 633.143C269.592 632.754 269.389 632.286 269.389 631.739C269.389 631.192 269.592 630.724 269.998 630.334C270.413 629.945 270.906 629.75 271.477 629.75C272.049 629.75 272.538 629.945 272.944 630.334C273.358 630.724 273.565 631.192 273.565 631.739C273.565 632.286 273.358 632.754 272.944 633.143C272.538 633.533 272.049 633.727 271.477 633.727ZM281.225 630.545V656H278.292V630.545H281.225ZM286.597 656V636.909H289.53V656H286.597ZM288.089 633.727C287.517 633.727 287.024 633.533 286.61 633.143C286.204 632.754 286.001 632.286 286.001 631.739C286.001 631.192 286.204 630.724 286.61 630.334C287.024 629.945 287.517 629.75 288.089 629.75C288.66 629.75 289.149 629.945 289.555 630.334C289.97 630.724 290.177 631.192 290.177 631.739C290.177 632.286 289.97 632.754 289.555 633.143C289.149 633.533 288.66 633.727 288.089 633.727ZM303.205 636.909V639.395H293.312V636.909H303.205ZM296.196 632.335H299.129V650.531C299.129 651.36 299.249 651.981 299.489 652.396C299.738 652.802 300.053 653.075 300.434 653.216C300.823 653.348 301.233 653.415 301.664 653.415C301.987 653.415 302.253 653.398 302.46 653.365C302.667 653.324 302.833 653.29 302.957 653.266L303.553 655.901C303.355 655.975 303.077 656.05 302.721 656.124C302.364 656.207 301.913 656.249 301.366 656.249C300.537 656.249 299.725 656.07 298.93 655.714C298.143 655.358 297.488 654.815 296.966 654.086C296.452 653.357 296.196 652.437 296.196 651.327V632.335ZM307.618 656V636.909H310.551V656H307.618ZM309.109 633.727C308.538 633.727 308.044 633.533 307.63 633.143C307.224 632.754 307.021 632.286 307.021 631.739C307.021 631.192 307.224 630.724 307.63 630.334C308.044 629.945 308.538 629.75 309.109 629.75C309.681 629.75 310.17 629.945 310.576 630.334C310.99 630.724 311.197 631.192 311.197 631.739C311.197 632.286 310.99 632.754 310.576 633.143C310.17 633.533 309.681 633.727 309.109 633.727ZM323.928 656.398C322.088 656.398 320.501 655.992 319.167 655.18C317.842 654.359 316.818 653.216 316.097 651.749C315.385 650.274 315.029 648.559 315.029 646.604C315.029 644.648 315.385 642.925 316.097 641.433C316.818 639.933 317.821 638.765 319.105 637.928C320.398 637.083 321.906 636.661 323.629 636.661C324.624 636.661 325.606 636.826 326.575 637.158C327.545 637.489 328.427 638.028 329.222 638.773C330.018 639.511 330.652 640.489 331.124 641.707C331.596 642.925 331.833 644.424 331.833 646.206V647.449H317.117V644.913H328.85C328.85 643.836 328.634 642.875 328.203 642.03C327.781 641.185 327.176 640.518 326.389 640.029C325.61 639.54 324.69 639.295 323.629 639.295C322.461 639.295 321.45 639.585 320.597 640.165C319.752 640.737 319.101 641.483 318.645 642.403C318.19 643.322 317.962 644.308 317.962 645.361V647.051C317.962 648.493 318.21 649.715 318.708 650.718C319.213 651.712 319.913 652.47 320.808 652.992C321.703 653.506 322.743 653.763 323.928 653.763C324.698 653.763 325.394 653.655 326.016 653.44C326.645 653.216 327.188 652.884 327.644 652.445C328.1 651.998 328.452 651.443 328.7 650.78L331.534 651.575C331.236 652.536 330.735 653.382 330.03 654.111C329.326 654.832 328.456 655.395 327.42 655.801C326.384 656.199 325.22 656.398 323.928 656.398ZM349.817 641.185L347.182 641.93C347.017 641.491 346.772 641.065 346.449 640.65C346.134 640.228 345.703 639.88 345.156 639.606C344.61 639.333 343.909 639.196 343.056 639.196C341.888 639.196 340.914 639.465 340.135 640.004C339.364 640.534 338.979 641.21 338.979 642.03C338.979 642.759 339.244 643.335 339.775 643.757C340.305 644.18 341.134 644.532 342.26 644.814L345.094 645.51C346.801 645.924 348.073 646.558 348.91 647.412C349.747 648.257 350.165 649.346 350.165 650.68C350.165 651.774 349.85 652.752 349.221 653.614C348.599 654.475 347.729 655.155 346.611 655.652C345.492 656.149 344.191 656.398 342.708 656.398C340.761 656.398 339.149 655.975 337.873 655.13C336.597 654.285 335.789 653.05 335.449 651.426L338.233 650.73C338.499 651.758 339 652.528 339.737 653.042C340.483 653.556 341.457 653.812 342.658 653.812C344.025 653.812 345.111 653.522 345.915 652.942C346.727 652.354 347.133 651.65 347.133 650.83C347.133 650.167 346.901 649.612 346.437 649.164C345.973 648.708 345.26 648.369 344.299 648.145L341.117 647.399C339.369 646.985 338.084 646.343 337.264 645.473C336.452 644.594 336.046 643.496 336.046 642.179C336.046 641.102 336.348 640.149 336.953 639.32C337.566 638.492 338.399 637.841 339.451 637.369C340.512 636.897 341.714 636.661 343.056 636.661C344.945 636.661 346.428 637.075 347.505 637.903C348.591 638.732 349.362 639.826 349.817 641.185ZM372.18 656.398C370.39 656.398 368.849 655.975 367.557 655.13C366.264 654.285 365.27 653.121 364.574 651.637C363.878 650.154 363.53 648.46 363.53 646.554C363.53 644.615 363.886 642.904 364.598 641.421C365.319 639.929 366.322 638.765 367.606 637.928C368.899 637.083 370.407 636.661 372.13 636.661C373.473 636.661 374.682 636.909 375.76 637.406C376.837 637.903 377.719 638.599 378.407 639.494C379.095 640.389 379.521 641.433 379.687 642.626H376.754C376.53 641.756 376.033 640.986 375.262 640.315C374.5 639.635 373.473 639.295 372.18 639.295C371.037 639.295 370.034 639.594 369.172 640.19C368.319 640.779 367.652 641.611 367.171 642.689C366.699 643.757 366.463 645.013 366.463 646.455C366.463 647.929 366.695 649.214 367.159 650.308C367.631 651.401 368.294 652.251 369.147 652.855C370.009 653.46 371.02 653.763 372.18 653.763C372.942 653.763 373.634 653.63 374.256 653.365C374.877 653.1 375.403 652.719 375.834 652.222C376.265 651.724 376.572 651.128 376.754 650.432H379.687C379.521 651.559 379.111 652.574 378.457 653.477C377.81 654.372 376.953 655.084 375.884 655.615C374.823 656.137 373.589 656.398 372.18 656.398ZM396.006 648.195V636.909H398.94V656H396.006V652.768H395.808C395.36 653.738 394.664 654.562 393.72 655.242C392.775 655.913 391.582 656.249 390.14 656.249C388.947 656.249 387.886 655.988 386.958 655.466C386.03 654.935 385.301 654.14 384.771 653.079C384.24 652.01 383.975 650.664 383.975 649.04V636.909H386.908V648.841C386.908 650.233 387.298 651.343 388.077 652.172C388.864 653 389.867 653.415 391.085 653.415C391.814 653.415 392.555 653.228 393.309 652.855C394.072 652.483 394.71 651.911 395.223 651.14C395.745 650.37 396.006 649.388 396.006 648.195ZM404.312 656V636.909H407.146V639.793H407.345C407.693 638.848 408.323 638.082 409.234 637.493C410.145 636.905 411.173 636.611 412.316 636.611C412.532 636.611 412.801 636.615 413.124 636.623C413.447 636.632 413.692 636.644 413.858 636.661V639.643C413.758 639.619 413.53 639.581 413.174 639.532C412.826 639.474 412.457 639.445 412.068 639.445C411.14 639.445 410.311 639.639 409.582 640.029C408.861 640.41 408.289 640.94 407.867 641.62C407.452 642.291 407.245 643.057 407.245 643.919V656H404.312ZM417.335 656V636.909H420.168V639.793H420.367C420.715 638.848 421.345 638.082 422.256 637.493C423.168 636.905 424.195 636.611 425.339 636.611C425.554 636.611 425.824 636.615 426.147 636.623C426.47 636.632 426.714 636.644 426.88 636.661V639.643C426.781 639.619 426.553 639.581 426.196 639.532C425.848 639.474 425.48 639.445 425.09 639.445C424.162 639.445 423.334 639.639 422.604 640.029C421.884 640.41 421.312 640.94 420.889 641.62C420.475 642.291 420.268 643.057 420.268 643.919V656H417.335ZM437.78 656.398C435.941 656.398 434.354 655.992 433.02 655.18C431.694 654.359 430.671 653.216 429.95 651.749C429.237 650.274 428.881 648.559 428.881 646.604C428.881 644.648 429.237 642.925 429.95 641.433C430.671 639.933 431.673 638.765 432.958 637.928C434.25 637.083 435.758 636.661 437.482 636.661C438.476 636.661 439.458 636.826 440.428 637.158C441.397 637.489 442.28 638.028 443.075 638.773C443.87 639.511 444.504 640.489 444.977 641.707C445.449 642.925 445.685 644.424 445.685 646.206V647.449H430.969V644.913H442.702C442.702 643.836 442.487 642.875 442.056 642.03C441.633 641.185 441.028 640.518 440.241 640.029C439.462 639.54 438.543 639.295 437.482 639.295C436.314 639.295 435.303 639.585 434.449 640.165C433.604 640.737 432.954 641.483 432.498 642.403C432.042 643.322 431.814 644.308 431.814 645.361V647.051C431.814 648.493 432.063 649.715 432.56 650.718C433.066 651.712 433.766 652.47 434.661 652.992C435.555 653.506 436.595 653.763 437.78 653.763C438.551 653.763 439.247 653.655 439.868 653.44C440.498 653.216 441.041 652.884 441.496 652.445C441.952 651.998 442.304 651.443 442.553 650.78L445.387 651.575C445.088 652.536 444.587 653.382 443.883 654.111C443.179 654.832 442.309 655.395 441.273 655.801C440.237 656.199 439.073 656.398 437.78 656.398ZM453.08 644.516V656H450.147V636.909H452.981V639.892H453.229C453.677 638.923 454.356 638.144 455.268 637.555C456.179 636.959 457.356 636.661 458.798 636.661C460.09 636.661 461.221 636.926 462.191 637.456C463.16 637.978 463.914 638.773 464.453 639.842C464.991 640.903 465.261 642.245 465.261 643.869V656H462.327V644.068C462.327 642.568 461.938 641.4 461.159 640.563C460.38 639.718 459.311 639.295 457.952 639.295C457.016 639.295 456.179 639.498 455.442 639.904C454.713 640.31 454.137 640.903 453.714 641.682C453.292 642.461 453.08 643.405 453.08 644.516ZM478.923 636.909V639.395H469.03V636.909H478.923ZM471.913 632.335H474.847V650.531C474.847 651.36 474.967 651.981 475.207 652.396C475.456 652.802 475.77 653.075 476.152 653.216C476.541 653.348 476.951 653.415 477.382 653.415C477.705 653.415 477.97 653.398 478.178 653.365C478.385 653.324 478.55 653.29 478.675 653.266L479.271 655.901C479.072 655.975 478.795 656.05 478.439 656.124C478.082 656.207 477.631 656.249 477.084 656.249C476.255 656.249 475.443 656.07 474.648 655.714C473.861 655.358 473.206 654.815 472.684 654.086C472.17 653.357 471.913 652.437 471.913 651.327V632.335ZM486.679 630.545V656H483.746V630.545H486.679ZM493.941 663.159C493.443 663.159 493 663.118 492.611 663.035C492.221 662.96 491.952 662.886 491.803 662.811L492.549 660.226C493.261 660.408 493.891 660.474 494.438 660.425C494.985 660.375 495.469 660.131 495.892 659.691C496.323 659.261 496.716 658.56 497.073 657.591L497.62 656.099L490.56 636.909H493.742L499.012 652.122H499.21L504.48 636.909H507.662L499.558 658.784C499.194 659.77 498.742 660.586 498.204 661.233C497.665 661.887 497.04 662.372 496.327 662.687C495.623 663.002 494.827 663.159 493.941 663.159ZM529.382 656.398C527.542 656.398 525.956 655.992 524.621 655.18C523.296 654.359 522.272 653.216 521.552 651.749C520.839 650.274 520.483 648.559 520.483 646.604C520.483 644.648 520.839 642.925 521.552 641.433C522.272 639.933 523.275 638.765 524.559 637.928C525.852 637.083 527.36 636.661 529.083 636.661C530.078 636.661 531.06 636.826 532.029 637.158C532.999 637.489 533.881 638.028 534.677 638.773C535.472 639.511 536.106 640.489 536.578 641.707C537.05 642.925 537.287 644.424 537.287 646.206V647.449H522.571V644.913H534.304C534.304 643.836 534.088 642.875 533.657 642.03C533.235 641.185 532.63 640.518 531.843 640.029C531.064 639.54 530.144 639.295 529.083 639.295C527.915 639.295 526.904 639.585 526.051 640.165C525.206 640.737 524.555 641.483 524.099 642.403C523.644 643.322 523.416 644.308 523.416 645.361V647.051C523.416 648.493 523.664 649.715 524.162 650.718C524.667 651.712 525.367 652.47 526.262 652.992C527.157 653.506 528.197 653.763 529.382 653.763C530.152 653.763 530.848 653.655 531.47 653.44C532.1 653.216 532.642 652.884 533.098 652.445C533.554 651.998 533.906 651.443 534.155 650.78L536.988 651.575C536.69 652.536 536.189 653.382 535.484 654.111C534.78 654.832 533.91 655.395 532.874 655.801C531.839 656.199 530.674 656.398 529.382 656.398ZM543.423 636.909L547.997 644.714L552.571 636.909H555.952L549.787 646.455L555.952 656H552.571L547.997 648.592L543.423 656H540.043L546.108 646.455L540.043 636.909H543.423ZM560.137 656V636.909H563.071V656H560.137ZM561.629 633.727C561.057 633.727 560.564 633.533 560.15 633.143C559.744 632.754 559.541 632.286 559.541 631.739C559.541 631.192 559.744 630.724 560.15 630.334C560.564 629.945 561.057 629.75 561.629 629.75C562.201 629.75 562.689 629.945 563.095 630.334C563.51 630.724 563.717 631.192 563.717 631.739C563.717 632.286 563.51 632.754 563.095 633.143C562.689 633.533 562.201 633.727 561.629 633.727ZM581.966 641.185L579.331 641.93C579.165 641.491 578.921 641.065 578.597 640.65C578.283 640.228 577.852 639.88 577.305 639.606C576.758 639.333 576.058 639.196 575.204 639.196C574.036 639.196 573.062 639.465 572.284 640.004C571.513 640.534 571.128 641.21 571.128 642.03C571.128 642.759 571.393 643.335 571.923 643.757C572.453 644.18 573.282 644.532 574.409 644.814L577.243 645.51C578.95 645.924 580.221 646.558 581.058 647.412C581.895 648.257 582.314 649.346 582.314 650.68C582.314 651.774 581.999 652.752 581.369 653.614C580.748 654.475 579.878 655.155 578.759 655.652C577.64 656.149 576.34 656.398 574.856 656.398C572.909 656.398 571.297 655.975 570.021 655.13C568.745 654.285 567.938 653.05 567.598 651.426L570.382 650.73C570.647 651.758 571.148 652.528 571.886 653.042C572.632 653.556 573.605 653.812 574.807 653.812C576.174 653.812 577.259 653.522 578.063 652.942C578.875 652.354 579.281 651.65 579.281 650.83C579.281 650.167 579.049 649.612 578.585 649.164C578.121 648.708 577.408 648.369 576.447 648.145L573.265 647.399C571.517 646.985 570.233 646.343 569.412 645.473C568.6 644.594 568.194 643.496 568.194 642.179C568.194 641.102 568.497 640.149 569.102 639.32C569.715 638.492 570.548 637.841 571.6 637.369C572.661 636.897 573.862 636.661 575.204 636.661C577.094 636.661 578.577 637.075 579.654 637.903C580.739 638.732 581.51 639.826 581.966 641.185ZM595.032 636.909V639.395H585.138V636.909H595.032ZM588.022 632.335H590.955V650.531C590.955 651.36 591.075 651.981 591.315 652.396C591.564 652.802 591.879 653.075 592.26 653.216C592.649 653.348 593.06 653.415 593.49 653.415C593.814 653.415 594.079 653.398 594.286 653.365C594.493 653.324 594.659 653.29 594.783 653.266L595.38 655.901C595.181 655.975 594.903 656.05 594.547 656.124C594.191 656.207 593.739 656.249 593.192 656.249C592.364 656.249 591.552 656.07 590.756 655.714C589.969 655.358 589.314 654.815 588.792 654.086C588.279 653.357 588.022 652.437 588.022 651.327V632.335ZM250.452 698V678.909H253.385V698H250.452ZM251.944 675.727C251.372 675.727 250.879 675.533 250.465 675.143C250.059 674.754 249.856 674.286 249.856 673.739C249.856 673.192 250.059 672.724 250.465 672.334C250.879 671.945 251.372 671.75 251.944 671.75C252.515 671.75 253.004 671.945 253.41 672.334C253.825 672.724 254.032 673.192 254.032 673.739C254.032 674.286 253.825 674.754 253.41 675.143C253.004 675.533 252.515 675.727 251.944 675.727ZM261.691 686.516V698H258.758V678.909H261.592V681.892H261.84C262.288 680.923 262.967 680.144 263.879 679.555C264.79 678.959 265.967 678.661 267.408 678.661C268.701 678.661 269.832 678.926 270.802 679.456C271.771 679.978 272.525 680.773 273.064 681.842C273.602 682.903 273.872 684.245 273.872 685.869V698H270.938V686.068C270.938 684.568 270.549 683.4 269.77 682.563C268.991 681.718 267.922 681.295 266.563 681.295C265.627 681.295 264.79 681.498 264.053 681.904C263.323 682.31 262.748 682.903 262.325 683.682C261.902 684.461 261.691 685.405 261.691 686.516ZM297.378 678.909V681.395H287.484V678.909H297.378ZM290.368 674.335H293.301V692.531C293.301 693.36 293.421 693.981 293.662 694.396C293.91 694.802 294.225 695.075 294.606 695.216C294.996 695.348 295.406 695.415 295.837 695.415C296.16 695.415 296.425 695.398 296.632 695.365C296.839 695.324 297.005 695.29 297.129 695.266L297.726 697.901C297.527 697.975 297.249 698.05 296.893 698.124C296.537 698.207 296.085 698.249 295.538 698.249C294.71 698.249 293.898 698.07 293.102 697.714C292.315 697.358 291.661 696.815 291.138 696.086C290.625 695.357 290.368 694.437 290.368 693.327V674.335ZM305.134 686.516V698H302.2V672.545H305.134V681.892H305.382C305.83 680.906 306.501 680.123 307.396 679.543C308.299 678.955 309.5 678.661 311 678.661C312.301 678.661 313.44 678.922 314.418 679.444C315.396 679.957 316.154 680.749 316.692 681.817C317.239 682.878 317.513 684.229 317.513 685.869V698H314.58V686.068C314.58 684.552 314.186 683.379 313.399 682.551C312.62 681.714 311.539 681.295 310.155 681.295C309.194 681.295 308.332 681.498 307.57 681.904C306.816 682.31 306.219 682.903 305.78 683.682C305.349 684.461 305.134 685.405 305.134 686.516ZM330.883 698.398C329.044 698.398 327.457 697.992 326.123 697.18C324.797 696.359 323.774 695.216 323.053 693.749C322.34 692.274 321.984 690.559 321.984 688.604C321.984 686.648 322.34 684.925 323.053 683.433C323.774 681.933 324.776 680.765 326.061 679.928C327.353 679.083 328.861 678.661 330.585 678.661C331.579 678.661 332.561 678.826 333.531 679.158C334.5 679.489 335.383 680.028 336.178 680.773C336.973 681.511 337.607 682.489 338.08 683.707C338.552 684.925 338.788 686.424 338.788 688.206V689.449H324.072V686.913H335.805C335.805 685.836 335.59 684.875 335.159 684.03C334.736 683.185 334.131 682.518 333.344 682.029C332.565 681.54 331.646 681.295 330.585 681.295C329.417 681.295 328.406 681.585 327.552 682.165C326.707 682.737 326.057 683.483 325.601 684.403C325.145 685.322 324.917 686.308 324.917 687.361V689.051C324.917 690.493 325.166 691.715 325.663 692.718C326.169 693.712 326.869 694.47 327.764 694.992C328.658 695.506 329.698 695.763 330.883 695.763C331.654 695.763 332.35 695.655 332.971 695.44C333.601 695.216 334.144 694.884 334.6 694.445C335.055 693.998 335.407 693.443 335.656 692.78L338.49 693.575C338.191 694.536 337.69 695.382 336.986 696.111C336.282 696.832 335.412 697.395 334.376 697.801C333.34 698.199 332.176 698.398 330.883 698.398ZM353.492 698V672.545H356.425V681.942H356.673C356.889 681.61 357.187 681.188 357.568 680.674C357.958 680.152 358.513 679.688 359.234 679.282C359.963 678.868 360.949 678.661 362.192 678.661C363.799 678.661 365.216 679.062 366.443 679.866C367.669 680.67 368.626 681.809 369.314 683.284C370.001 684.759 370.345 686.499 370.345 688.504C370.345 690.526 370.001 692.279 369.314 693.762C368.626 695.237 367.673 696.38 366.455 697.192C365.237 697.996 363.832 698.398 362.242 698.398C361.015 698.398 360.033 698.195 359.296 697.789C358.558 697.374 357.991 696.906 357.593 696.384C357.195 695.854 356.889 695.415 356.673 695.067H356.325V698H353.492ZM356.375 688.455C356.375 689.896 356.586 691.168 357.009 692.27C357.432 693.364 358.049 694.222 358.861 694.843C359.673 695.456 360.667 695.763 361.844 695.763C363.07 695.763 364.093 695.44 364.914 694.793C365.742 694.139 366.364 693.26 366.778 692.158C367.201 691.048 367.412 689.813 367.412 688.455C367.412 687.112 367.205 685.902 366.791 684.825C366.385 683.74 365.767 682.882 364.939 682.252C364.118 681.614 363.087 681.295 361.844 681.295C360.651 681.295 359.648 681.598 358.836 682.203C358.024 682.799 357.411 683.636 356.997 684.713C356.582 685.782 356.375 687.029 356.375 688.455ZM386.863 690.195V678.909H389.797V698H386.863V694.768H386.665C386.217 695.738 385.521 696.562 384.576 697.242C383.632 697.913 382.439 698.249 380.997 698.249C379.804 698.249 378.743 697.988 377.815 697.466C376.887 696.935 376.158 696.14 375.628 695.079C375.097 694.01 374.832 692.664 374.832 691.04V678.909H377.765V690.841C377.765 692.233 378.155 693.343 378.934 694.172C379.721 695 380.723 695.415 381.941 695.415C382.671 695.415 383.412 695.228 384.166 694.855C384.929 694.483 385.567 693.911 386.08 693.14C386.602 692.37 386.863 691.388 386.863 690.195ZM408.692 683.185L406.057 683.93C405.891 683.491 405.647 683.065 405.324 682.65C405.009 682.228 404.578 681.88 404.031 681.606C403.484 681.333 402.784 681.196 401.93 681.196C400.762 681.196 399.788 681.465 399.01 682.004C398.239 682.534 397.854 683.21 397.854 684.03C397.854 684.759 398.119 685.335 398.649 685.757C399.179 686.18 400.008 686.532 401.135 686.814L403.969 687.51C405.676 687.924 406.948 688.558 407.784 689.412C408.621 690.257 409.04 691.346 409.04 692.68C409.04 693.774 408.725 694.752 408.095 695.614C407.474 696.475 406.604 697.155 405.485 697.652C404.366 698.149 403.066 698.398 401.582 698.398C399.635 698.398 398.024 697.975 396.748 697.13C395.471 696.285 394.664 695.05 394.324 693.426L397.108 692.73C397.373 693.758 397.874 694.528 398.612 695.042C399.358 695.556 400.331 695.812 401.533 695.812C402.9 695.812 403.985 695.522 404.789 694.942C405.601 694.354 406.007 693.65 406.007 692.83C406.007 692.167 405.775 691.612 405.311 691.164C404.847 690.708 404.134 690.369 403.173 690.145L399.991 689.399C398.243 688.985 396.959 688.343 396.138 687.473C395.326 686.594 394.92 685.496 394.92 684.179C394.92 683.102 395.223 682.149 395.828 681.32C396.441 680.492 397.274 679.841 398.326 679.369C399.387 678.897 400.588 678.661 401.93 678.661C403.82 678.661 405.303 679.075 406.38 679.903C407.465 680.732 408.236 681.826 408.692 683.185ZM413.455 698V678.909H416.388V698H413.455ZM414.947 675.727C414.375 675.727 413.882 675.533 413.468 675.143C413.062 674.754 412.859 674.286 412.859 673.739C412.859 673.192 413.062 672.724 413.468 672.334C413.882 671.945 414.375 671.75 414.947 671.75C415.518 671.75 416.007 671.945 416.413 672.334C416.828 672.724 417.035 673.192 417.035 673.739C417.035 674.286 416.828 674.754 416.413 675.143C416.007 675.533 415.518 675.727 414.947 675.727ZM424.694 686.516V698H421.761V678.909H424.595V681.892H424.843C425.291 680.923 425.97 680.144 426.882 679.555C427.793 678.959 428.97 678.661 430.411 678.661C431.704 678.661 432.835 678.926 433.805 679.456C434.774 679.978 435.528 680.773 436.067 681.842C436.605 682.903 436.874 684.245 436.874 685.869V698H433.941V686.068C433.941 684.568 433.552 683.4 432.773 682.563C431.994 681.718 430.925 681.295 429.566 681.295C428.63 681.295 427.793 681.498 427.056 681.904C426.326 682.31 425.751 682.903 425.328 683.682C424.905 684.461 424.694 685.405 424.694 686.516ZM450.239 698.398C448.399 698.398 446.812 697.992 445.478 697.18C444.153 696.359 443.129 695.216 442.408 693.749C441.696 692.274 441.34 690.559 441.34 688.604C441.34 686.648 441.696 684.925 442.408 683.433C443.129 681.933 444.132 680.765 445.416 679.928C446.709 679.083 448.217 678.661 449.94 678.661C450.935 678.661 451.917 678.826 452.886 679.158C453.856 679.489 454.738 680.028 455.533 680.773C456.329 681.511 456.963 682.489 457.435 683.707C457.907 684.925 458.144 686.424 458.144 688.206V689.449H443.428V686.913H455.161C455.161 685.836 454.945 684.875 454.514 684.03C454.092 683.185 453.487 682.518 452.7 682.029C451.921 681.54 451.001 681.295 449.94 681.295C448.772 681.295 447.761 681.585 446.908 682.165C446.063 682.737 445.412 683.483 444.956 684.403C444.501 685.322 444.273 686.308 444.273 687.361V689.051C444.273 690.493 444.521 691.715 445.019 692.718C445.524 693.712 446.224 694.47 447.119 694.992C448.014 695.506 449.054 695.763 450.239 695.763C451.009 695.763 451.705 695.655 452.327 695.44C452.957 695.216 453.499 694.884 453.955 694.445C454.411 693.998 454.763 693.443 455.011 692.78L457.845 693.575C457.547 694.536 457.046 695.382 456.341 696.111C455.637 696.832 454.767 697.395 453.731 697.801C452.696 698.199 451.531 698.398 450.239 698.398ZM476.128 683.185L473.493 683.93C473.328 683.491 473.083 683.065 472.76 682.65C472.445 682.228 472.014 681.88 471.467 681.606C470.921 681.333 470.22 681.196 469.367 681.196C468.199 681.196 467.225 681.465 466.446 682.004C465.676 682.534 465.29 683.21 465.29 684.03C465.29 684.759 465.555 685.335 466.086 685.757C466.616 686.18 467.445 686.532 468.571 686.814L471.405 687.51C473.112 687.924 474.384 688.558 475.221 689.412C476.058 690.257 476.476 691.346 476.476 692.68C476.476 693.774 476.161 694.752 475.532 695.614C474.91 696.475 474.04 697.155 472.922 697.652C471.803 698.149 470.502 698.398 469.019 698.398C467.072 698.398 465.46 697.975 464.184 697.13C462.908 696.285 462.1 695.05 461.76 693.426L464.544 692.73C464.81 693.758 465.311 694.528 466.048 695.042C466.794 695.556 467.768 695.812 468.969 695.812C470.336 695.812 471.422 695.522 472.226 694.942C473.038 694.354 473.444 693.65 473.444 692.83C473.444 692.167 473.212 691.612 472.748 691.164C472.284 690.708 471.571 690.369 470.61 690.145L467.428 689.399C465.68 688.985 464.395 688.343 463.575 687.473C462.763 686.594 462.357 685.496 462.357 684.179C462.357 683.102 462.659 682.149 463.264 681.32C463.877 680.492 464.71 679.841 465.763 679.369C466.823 678.897 468.025 678.661 469.367 678.661C471.256 678.661 472.739 679.075 473.816 679.903C474.902 680.732 475.673 681.826 476.128 683.185ZM494.414 683.185L491.779 683.93C491.614 683.491 491.369 683.065 491.046 682.65C490.731 682.228 490.3 681.88 489.754 681.606C489.207 681.333 488.507 681.196 487.653 681.196C486.485 681.196 485.511 681.465 484.732 682.004C483.962 682.534 483.576 683.21 483.576 684.03C483.576 684.759 483.842 685.335 484.372 685.757C484.902 686.18 485.731 686.532 486.858 686.814L489.691 687.51C491.398 687.924 492.67 688.558 493.507 689.412C494.344 690.257 494.762 691.346 494.762 692.68C494.762 693.774 494.448 694.752 493.818 695.614C493.196 696.475 492.326 697.155 491.208 697.652C490.089 698.149 488.788 698.398 487.305 698.398C485.358 698.398 483.746 697.975 482.47 697.13C481.194 696.285 480.386 695.05 480.047 693.426L482.831 692.73C483.096 693.758 483.597 694.528 484.335 695.042C485.08 695.556 486.054 695.812 487.255 695.812C488.623 695.812 489.708 695.522 490.512 694.942C491.324 694.354 491.73 693.65 491.73 692.83C491.73 692.167 491.498 691.612 491.034 691.164C490.57 690.708 489.857 690.369 488.896 690.145L485.714 689.399C483.966 688.985 482.681 688.343 481.861 687.473C481.049 686.594 480.643 685.496 480.643 684.179C480.643 683.102 480.946 682.149 481.55 681.32C482.164 680.492 482.996 679.841 484.049 679.369C485.109 678.897 486.311 678.661 487.653 678.661C489.542 678.661 491.025 679.075 492.103 679.903C493.188 680.732 493.959 681.826 494.414 683.185ZM503.006 690.841V690.692C503.023 689.109 503.188 687.85 503.503 686.913C503.818 685.977 504.265 685.219 504.845 684.639C505.425 684.059 506.121 683.524 506.934 683.036C507.422 682.737 507.862 682.385 508.251 681.979C508.64 681.565 508.947 681.088 509.171 680.55C509.403 680.011 509.519 679.415 509.519 678.76C509.519 677.948 509.328 677.244 508.947 676.647C508.566 676.05 508.056 675.591 507.418 675.267C506.78 674.944 506.072 674.783 505.293 674.783C504.613 674.783 503.959 674.924 503.329 675.205C502.699 675.487 502.173 675.93 501.751 676.535C501.328 677.14 501.084 677.931 501.017 678.909H497.885C497.951 677.5 498.316 676.295 498.979 675.292C499.65 674.29 500.533 673.523 501.626 672.993C502.728 672.463 503.951 672.197 505.293 672.197C506.751 672.197 508.019 672.487 509.096 673.067C510.182 673.647 511.018 674.443 511.607 675.454C512.203 676.465 512.502 677.616 512.502 678.909C512.502 679.821 512.361 680.645 512.079 681.382C511.806 682.12 511.408 682.779 510.886 683.359C510.372 683.939 509.751 684.452 509.022 684.9C508.292 685.356 507.708 685.836 507.269 686.342C506.83 686.839 506.511 687.431 506.312 688.119C506.113 688.807 506.005 689.664 505.989 690.692V690.841H503.006ZM504.597 698.199C503.984 698.199 503.458 697.979 503.018 697.54C502.579 697.101 502.36 696.575 502.36 695.962C502.36 695.348 502.579 694.822 503.018 694.383C503.458 693.944 503.984 693.724 504.597 693.724C505.21 693.724 505.736 693.944 506.175 694.383C506.614 694.822 506.834 695.348 506.834 695.962C506.834 696.368 506.73 696.741 506.523 697.08C506.324 697.42 506.055 697.693 505.715 697.901C505.384 698.099 505.011 698.199 504.597 698.199Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g\r\n id=\"AnalyzeFirmActivitiesPathway\"\r\n className=\"map-btn\"\r\n onClick={ClickHandler(\"AnalyzeFirmActivitiesPathway\")}\r\n >\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 2\"\r\n x=\"934\"\r\n y=\"467\"\r\n width=\"572\"\r\n height=\"333\"\r\n rx=\"50\"\r\n fill=\"#396F9D\"\r\n />\r\n <path\r\n d=\"M1006.24 535H1002.45L1013.4 505.182H1017.13L1028.08 535H1024.29L1015.38 509.899H1015.15L1006.24 535ZM1007.64 523.352H1022.9V526.555H1007.64V523.352ZM1035.69 521.547V535H1032.26V512.636H1035.58V516.131H1035.87C1036.39 514.995 1037.19 514.083 1038.26 513.393C1039.32 512.695 1040.7 512.345 1042.39 512.345C1043.91 512.345 1045.23 512.656 1046.37 513.277C1047.5 513.888 1048.39 514.82 1049.02 516.072C1049.65 517.315 1049.96 518.887 1049.96 520.79V535H1046.53V521.023C1046.53 519.266 1046.07 517.897 1045.16 516.917C1044.25 515.927 1042.99 515.432 1041.4 515.432C1040.3 515.432 1039.32 515.67 1038.46 516.145C1037.61 516.621 1036.93 517.315 1036.44 518.227C1035.94 519.14 1035.69 520.246 1035.69 521.547ZM1062.82 535.524C1061.41 535.524 1060.12 535.257 1058.96 534.723C1057.81 534.18 1056.89 533.398 1056.21 532.379C1055.53 531.35 1055.19 530.108 1055.19 528.652C1055.19 527.371 1055.45 526.332 1055.95 525.536C1056.46 524.731 1057.13 524.1 1057.97 523.643C1058.82 523.187 1059.75 522.848 1060.77 522.624C1061.8 522.391 1062.83 522.207 1063.87 522.071C1065.23 521.896 1066.33 521.765 1067.18 521.678C1068.03 521.581 1068.65 521.421 1069.04 521.197C1069.44 520.974 1069.64 520.586 1069.64 520.033V519.916C1069.64 518.48 1069.24 517.363 1068.46 516.567C1067.68 515.772 1066.5 515.374 1064.92 515.374C1063.28 515.374 1061.99 515.733 1061.06 516.451C1060.13 517.169 1059.47 517.936 1059.1 518.751L1055.83 517.587C1056.42 516.228 1057.19 515.17 1058.16 514.413C1059.14 513.646 1060.21 513.112 1061.37 512.811C1062.53 512.5 1063.68 512.345 1064.8 512.345C1065.52 512.345 1066.35 512.433 1067.28 512.607C1068.22 512.772 1069.13 513.117 1070 513.641C1070.88 514.165 1071.62 514.956 1072.2 516.014C1072.78 517.072 1073.07 518.489 1073.07 520.266V535H1069.64V531.972H1069.46C1069.23 532.457 1068.84 532.976 1068.3 533.529C1067.75 534.083 1067.03 534.554 1066.13 534.942C1065.22 535.33 1064.12 535.524 1062.82 535.524ZM1063.35 532.438C1064.71 532.438 1065.85 532.171 1066.78 531.637C1067.72 531.103 1068.43 530.414 1068.91 529.569C1069.39 528.725 1069.64 527.837 1069.64 526.905V523.76C1069.49 523.935 1069.17 524.095 1068.68 524.24C1068.19 524.376 1067.63 524.498 1066.99 524.604C1066.36 524.701 1065.74 524.789 1065.14 524.866C1064.55 524.934 1064.06 524.993 1063.7 525.041C1062.8 525.158 1061.97 525.347 1061.19 525.609C1060.43 525.861 1059.8 526.245 1059.33 526.759C1058.86 527.264 1058.63 527.953 1058.63 528.827C1058.63 530.021 1059.07 530.923 1059.95 531.535C1060.85 532.137 1061.98 532.438 1063.35 532.438ZM1082.78 505.182V535H1079.34V505.182H1082.78ZM1091.29 543.386C1090.7 543.386 1090.18 543.338 1089.73 543.241C1089.27 543.153 1088.96 543.066 1088.78 542.979L1089.66 539.95C1090.49 540.164 1091.23 540.241 1091.87 540.183C1092.51 540.125 1093.08 539.839 1093.57 539.324C1094.08 538.819 1094.54 537.999 1094.96 536.864L1095.6 535.116L1087.33 512.636H1091.05L1097.23 530.457H1097.46L1103.63 512.636H1107.36L1097.87 538.261C1097.44 539.416 1096.91 540.373 1096.28 541.13C1095.65 541.896 1094.92 542.464 1094.08 542.833C1093.26 543.202 1092.33 543.386 1091.29 543.386ZM1111.26 535V532.379L1123.95 516.072V515.839H1111.66V512.636H1128.38V515.374L1116.03 531.564V531.797H1128.79V535H1111.26ZM1142.81 535.466C1140.66 535.466 1138.8 534.99 1137.24 534.039C1135.68 533.078 1134.49 531.739 1133.64 530.021C1132.81 528.293 1132.39 526.284 1132.39 523.993C1132.39 521.702 1132.81 519.683 1133.64 517.936C1134.49 516.179 1135.66 514.811 1137.16 513.83C1138.68 512.84 1140.44 512.345 1142.46 512.345C1143.63 512.345 1144.78 512.539 1145.91 512.928C1147.05 513.316 1148.08 513.947 1149.02 514.82C1149.95 515.684 1150.69 516.83 1151.24 518.256C1151.8 519.683 1152.07 521.44 1152.07 523.527V524.983H1134.83V522.013H1148.58C1148.58 520.751 1148.33 519.625 1147.82 518.635C1147.33 517.645 1146.62 516.864 1145.7 516.291C1144.78 515.718 1143.71 515.432 1142.46 515.432C1141.1 515.432 1139.91 515.772 1138.91 516.451C1137.92 517.121 1137.16 517.994 1136.63 519.072C1136.09 520.149 1135.82 521.304 1135.82 522.537V524.517C1135.82 526.206 1136.12 527.638 1136.7 528.812C1137.29 529.977 1138.11 530.865 1139.16 531.477C1140.21 532.078 1141.43 532.379 1142.81 532.379C1143.72 532.379 1144.53 532.253 1145.26 532.001C1146 531.739 1146.63 531.35 1147.17 530.836C1147.7 530.312 1148.11 529.661 1148.4 528.885L1151.72 529.817C1151.37 530.943 1150.79 531.933 1149.96 532.787C1149.14 533.631 1148.12 534.291 1146.9 534.767C1145.69 535.233 1144.33 535.466 1142.81 535.466ZM1169.3 535V505.182H1187.18V508.385H1172.91V518.46H1185.84V521.663H1172.91V535H1169.3ZM1192.89 535V512.636H1196.33V535H1192.89ZM1194.64 508.909C1193.97 508.909 1193.39 508.681 1192.91 508.225C1192.43 507.769 1192.2 507.22 1192.2 506.58C1192.2 505.939 1192.43 505.391 1192.91 504.934C1193.39 504.478 1193.97 504.25 1194.64 504.25C1195.31 504.25 1195.88 504.478 1196.36 504.934C1196.85 505.391 1197.09 505.939 1197.09 506.58C1197.09 507.22 1196.85 507.769 1196.36 508.225C1195.88 508.681 1195.31 508.909 1194.64 508.909ZM1202.62 535V512.636H1205.94V516.014H1206.18C1206.58 514.908 1207.32 514.01 1208.39 513.321C1209.46 512.632 1210.66 512.287 1212 512.287C1212.25 512.287 1212.57 512.292 1212.95 512.301C1213.33 512.311 1213.61 512.326 1213.81 512.345V515.839C1213.69 515.81 1213.42 515.767 1213.01 515.708C1212.6 515.641 1212.17 515.607 1211.71 515.607C1210.62 515.607 1209.65 515.835 1208.8 516.291C1207.95 516.737 1207.28 517.359 1206.79 518.154C1206.3 518.941 1206.06 519.839 1206.06 520.848V535H1202.62ZM1217.88 535V512.636H1221.2V516.131H1221.49C1221.96 514.937 1222.71 514.01 1223.75 513.35C1224.79 512.68 1226.03 512.345 1227.49 512.345C1228.96 512.345 1230.19 512.68 1231.17 513.35C1232.16 514.01 1232.93 514.937 1233.49 516.131H1233.72C1234.29 514.976 1235.15 514.058 1236.3 513.379C1237.44 512.69 1238.82 512.345 1240.42 512.345C1242.42 512.345 1244.05 512.971 1245.32 514.223C1246.6 515.466 1247.23 517.402 1247.23 520.033V535H1243.8V520.033C1243.8 518.383 1243.34 517.203 1242.44 516.495C1241.54 515.786 1240.48 515.432 1239.25 515.432C1237.68 515.432 1236.46 515.907 1235.6 516.859C1234.73 517.8 1234.3 518.994 1234.3 520.44V535H1230.81V519.683C1230.81 518.412 1230.4 517.388 1229.57 516.611C1228.75 515.825 1227.68 515.432 1226.38 515.432C1225.49 515.432 1224.65 515.67 1223.88 516.145C1223.11 516.621 1222.49 517.281 1222.01 518.125C1221.55 518.96 1221.32 519.926 1221.32 521.023V535H1217.88ZM1266.73 535H1262.95L1273.9 505.182H1277.62L1288.57 535H1284.79L1275.88 509.899H1275.64L1266.73 535ZM1268.13 523.352H1283.39V526.555H1268.13V523.352ZM1301.84 535.466C1299.74 535.466 1297.94 534.971 1296.42 533.981C1294.91 532.991 1293.74 531.627 1292.93 529.89C1292.11 528.152 1291.7 526.167 1291.7 523.935C1291.7 521.663 1292.12 519.659 1292.96 517.922C1293.8 516.174 1294.98 514.811 1296.48 513.83C1297.99 512.84 1299.76 512.345 1301.78 512.345C1303.35 512.345 1304.77 512.636 1306.03 513.219C1307.29 513.801 1308.33 514.616 1309.13 515.665C1309.94 516.713 1310.44 517.936 1310.63 519.334H1307.2C1306.93 518.315 1306.35 517.412 1305.45 516.626C1304.56 515.83 1303.35 515.432 1301.84 515.432C1300.5 515.432 1299.32 515.781 1298.31 516.48C1297.31 517.169 1296.53 518.145 1295.97 519.407C1295.42 520.659 1295.14 522.129 1295.14 523.818C1295.14 525.546 1295.41 527.05 1295.96 528.332C1296.51 529.613 1297.29 530.608 1298.28 531.316C1299.29 532.025 1300.48 532.379 1301.84 532.379C1302.73 532.379 1303.54 532.224 1304.27 531.913C1305 531.603 1305.61 531.156 1306.12 530.574C1306.62 529.991 1306.98 529.293 1307.2 528.477H1310.63C1310.44 529.797 1309.96 530.986 1309.19 532.044C1308.43 533.093 1307.43 533.927 1306.18 534.549C1304.93 535.16 1303.49 535.466 1301.84 535.466ZM1325.38 512.636V515.548H1313.79V512.636H1325.38ZM1317.17 507.278H1320.6V528.594C1320.6 529.564 1320.75 530.292 1321.03 530.778C1321.32 531.253 1321.69 531.574 1322.13 531.739C1322.59 531.894 1323.07 531.972 1323.58 531.972C1323.95 531.972 1324.26 531.952 1324.51 531.913C1324.75 531.865 1324.94 531.826 1325.09 531.797L1325.79 534.884C1325.56 534.971 1325.23 535.058 1324.81 535.146C1324.4 535.243 1323.87 535.291 1323.23 535.291C1322.26 535.291 1321.3 535.083 1320.37 534.665C1319.45 534.248 1318.68 533.612 1318.07 532.758C1317.47 531.904 1317.17 530.826 1317.17 529.526V507.278ZM1330.55 535V512.636H1333.99V535H1330.55ZM1332.3 508.909C1331.63 508.909 1331.05 508.681 1330.56 508.225C1330.09 507.769 1329.85 507.22 1329.85 506.58C1329.85 505.939 1330.09 505.391 1330.56 504.934C1331.05 504.478 1331.63 504.25 1332.3 504.25C1332.97 504.25 1333.54 504.478 1334.01 504.934C1334.5 505.391 1334.74 505.939 1334.74 506.58C1334.74 507.22 1334.5 507.769 1334.01 508.225C1333.54 508.681 1332.97 508.909 1332.3 508.909ZM1358.57 512.636L1350.3 535H1346.8L1338.53 512.636H1342.26L1348.43 530.457H1348.67L1354.84 512.636H1358.57ZM1363.1 535V512.636H1366.54V535H1363.1ZM1364.85 508.909C1364.18 508.909 1363.6 508.681 1363.12 508.225C1362.64 507.769 1362.4 507.22 1362.4 506.58C1362.4 505.939 1362.64 505.391 1363.12 504.934C1363.6 504.478 1364.18 504.25 1364.85 504.25C1365.52 504.25 1366.09 504.478 1366.57 504.934C1367.05 505.391 1367.29 505.939 1367.29 506.58C1367.29 507.22 1367.05 507.769 1366.57 508.225C1366.09 508.681 1365.52 508.909 1364.85 508.909ZM1382.56 512.636V515.548H1370.97V512.636H1382.56ZM1374.34 507.278H1377.78V528.594C1377.78 529.564 1377.92 530.292 1378.2 530.778C1378.49 531.253 1378.86 531.574 1379.31 531.739C1379.77 531.894 1380.25 531.972 1380.75 531.972C1381.13 531.972 1381.44 531.952 1381.68 531.913C1381.93 531.865 1382.12 531.826 1382.27 531.797L1382.96 534.884C1382.73 534.971 1382.41 535.058 1381.99 535.146C1381.57 535.243 1381.04 535.291 1380.4 535.291C1379.43 535.291 1378.48 535.083 1377.55 534.665C1376.63 534.248 1375.86 533.612 1375.25 532.758C1374.65 531.904 1374.34 530.826 1374.34 529.526V507.278ZM1387.72 535V512.636H1391.16V535H1387.72ZM1389.47 508.909C1388.8 508.909 1388.22 508.681 1387.74 508.225C1387.26 507.769 1387.03 507.22 1387.03 506.58C1387.03 505.939 1387.26 505.391 1387.74 504.934C1388.22 504.478 1388.8 504.25 1389.47 504.25C1390.14 504.25 1390.71 504.478 1391.19 504.934C1391.68 505.391 1391.92 505.939 1391.92 506.58C1391.92 507.22 1391.68 507.769 1391.19 508.225C1390.71 508.681 1390.14 508.909 1389.47 508.909ZM1406.83 535.466C1404.68 535.466 1402.82 534.99 1401.25 534.039C1399.7 533.078 1398.5 531.739 1397.66 530.021C1396.82 528.293 1396.41 526.284 1396.41 523.993C1396.41 521.702 1396.82 519.683 1397.66 517.936C1398.5 516.179 1399.68 514.811 1401.18 513.83C1402.7 512.84 1404.46 512.345 1406.48 512.345C1407.65 512.345 1408.8 512.539 1409.93 512.928C1411.07 513.316 1412.1 513.947 1413.03 514.82C1413.97 515.684 1414.71 516.83 1415.26 518.256C1415.81 519.683 1416.09 521.44 1416.09 523.527V524.983H1398.85V522.013H1412.6C1412.6 520.751 1412.34 519.625 1411.84 518.635C1411.34 517.645 1410.64 516.864 1409.71 516.291C1408.8 515.718 1407.72 515.432 1406.48 515.432C1405.11 515.432 1403.93 515.772 1402.93 516.451C1401.94 517.121 1401.18 517.994 1400.64 519.072C1400.11 520.149 1399.84 521.304 1399.84 522.537V524.517C1399.84 526.206 1400.13 527.638 1400.72 528.812C1401.31 529.977 1402.13 530.865 1403.18 531.477C1404.22 532.078 1405.44 532.379 1406.83 532.379C1407.73 532.379 1408.55 532.253 1409.28 532.001C1410.01 531.739 1410.65 531.35 1411.18 530.836C1411.72 530.312 1412.13 529.661 1412.42 528.885L1415.74 529.817C1415.39 530.943 1414.8 531.933 1413.98 532.787C1413.15 533.631 1412.14 534.291 1410.92 534.767C1409.71 535.233 1408.35 535.466 1406.83 535.466ZM1437.16 517.645L1434.07 518.518C1433.88 518.004 1433.59 517.504 1433.21 517.019C1432.84 516.524 1432.34 516.116 1431.7 515.796C1431.06 515.475 1430.24 515.315 1429.24 515.315C1427.87 515.315 1426.73 515.631 1425.82 516.262C1424.91 516.883 1424.46 517.674 1424.46 518.635C1424.46 519.489 1424.77 520.164 1425.39 520.659C1426.02 521.154 1426.99 521.566 1428.31 521.896L1431.63 522.712C1433.63 523.197 1435.12 523.94 1436.1 524.939C1437.08 525.929 1437.57 527.206 1437.57 528.768C1437.57 530.05 1437.2 531.195 1436.46 532.205C1435.73 533.214 1434.71 534.01 1433.4 534.592C1432.09 535.175 1430.57 535.466 1428.83 535.466C1426.55 535.466 1424.66 534.971 1423.17 533.981C1421.67 532.991 1420.73 531.545 1420.33 529.642L1423.59 528.827C1423.9 530.03 1424.49 530.933 1425.35 531.535C1426.22 532.137 1427.36 532.438 1428.77 532.438C1430.37 532.438 1431.65 532.098 1432.59 531.418C1433.54 530.729 1434.01 529.904 1434.01 528.943C1434.01 528.167 1433.74 527.516 1433.2 526.992C1432.65 526.458 1431.82 526.06 1430.69 525.798L1426.97 524.925C1424.92 524.439 1423.41 523.687 1422.45 522.668C1421.5 521.639 1421.03 520.353 1421.03 518.81C1421.03 517.548 1421.38 516.432 1422.09 515.461C1422.81 514.49 1423.78 513.728 1425.02 513.175C1426.26 512.622 1427.67 512.345 1429.24 512.345C1431.45 512.345 1433.19 512.83 1434.45 513.801C1435.72 514.772 1436.62 516.053 1437.16 517.645Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M1001.41 543.153H1439.6V545.949H1001.41V543.153Z\" fill=\"black\" />\r\n <path\r\n id=\"What R&C need to be added, removed, or developed to deliver UVP?\"\r\n d=\"M1050.5 614L1043.54 588.545H1046.67L1051.99 609.277H1052.24L1057.66 588.545H1061.14L1066.56 609.277H1066.81L1072.13 588.545H1075.26L1068.3 614H1065.12L1059.5 593.716H1059.3L1053.68 614H1050.5ZM1081.64 602.516V614H1078.7V588.545H1081.64V597.892H1081.88C1082.33 596.906 1083 596.123 1083.9 595.543C1084.8 594.955 1086 594.661 1087.5 594.661C1088.8 594.661 1089.94 594.922 1090.92 595.444C1091.9 595.957 1092.66 596.749 1093.19 597.817C1093.74 598.878 1094.02 600.229 1094.02 601.869V614H1091.08V602.068C1091.08 600.552 1090.69 599.379 1089.9 598.551C1089.12 597.714 1088.04 597.295 1086.66 597.295C1085.7 597.295 1084.83 597.498 1084.07 597.904C1083.32 598.31 1082.72 598.903 1082.28 599.682C1081.85 600.461 1081.64 601.405 1081.64 602.516ZM1105 614.447C1103.79 614.447 1102.69 614.22 1101.71 613.764C1100.72 613.3 1099.94 612.633 1099.36 611.763C1098.78 610.884 1098.49 609.824 1098.49 608.581C1098.49 607.487 1098.7 606.601 1099.13 605.921C1099.56 605.233 1100.14 604.695 1100.86 604.305C1101.58 603.916 1102.38 603.626 1103.25 603.435C1104.13 603.237 1105.01 603.079 1105.89 602.963C1107.05 602.814 1107.99 602.702 1108.72 602.627C1109.44 602.545 1109.98 602.408 1110.31 602.217C1110.65 602.027 1110.82 601.695 1110.82 601.223V601.124C1110.82 599.897 1110.48 598.944 1109.81 598.265C1109.15 597.585 1108.14 597.246 1106.79 597.246C1105.39 597.246 1104.29 597.552 1103.5 598.165C1102.7 598.779 1102.14 599.433 1101.82 600.129L1099.03 599.135C1099.53 597.975 1100.19 597.072 1101.02 596.425C1101.86 595.771 1102.77 595.315 1103.76 595.058C1104.75 594.793 1105.73 594.661 1106.69 594.661C1107.3 594.661 1108.01 594.735 1108.8 594.884C1109.61 595.025 1110.38 595.319 1111.13 595.767C1111.88 596.214 1112.51 596.889 1113 597.793C1113.5 598.696 1113.75 599.906 1113.75 601.422V614H1110.82V611.415H1110.67C1110.47 611.829 1110.14 612.272 1109.67 612.745C1109.21 613.217 1108.59 613.619 1107.82 613.95C1107.05 614.282 1106.11 614.447 1105 614.447ZM1105.45 611.812C1106.61 611.812 1107.58 611.585 1108.38 611.129C1109.18 610.673 1109.79 610.085 1110.19 609.364C1110.61 608.643 1110.82 607.885 1110.82 607.089V604.405C1110.69 604.554 1110.42 604.691 1110 604.815C1109.58 604.931 1109.1 605.035 1108.55 605.126C1108.02 605.209 1107.49 605.283 1106.98 605.349C1106.47 605.407 1106.06 605.457 1105.75 605.499C1104.98 605.598 1104.27 605.76 1103.61 605.983C1102.95 606.199 1102.42 606.526 1102.02 606.965C1101.62 607.396 1101.42 607.984 1101.42 608.73C1101.42 609.749 1101.8 610.52 1102.55 611.042C1103.31 611.556 1104.28 611.812 1105.45 611.812ZM1127.41 594.909V597.395H1117.51V594.909H1127.41ZM1120.4 590.335H1123.33V608.531C1123.33 609.36 1123.45 609.981 1123.69 610.396C1123.94 610.802 1124.25 611.075 1124.63 611.216C1125.02 611.348 1125.43 611.415 1125.86 611.415C1126.19 611.415 1126.45 611.398 1126.66 611.365C1126.87 611.324 1127.03 611.29 1127.16 611.266L1127.75 613.901C1127.55 613.975 1127.28 614.05 1126.92 614.124C1126.56 614.207 1126.11 614.249 1125.57 614.249C1124.74 614.249 1123.93 614.07 1123.13 613.714C1122.34 613.358 1121.69 612.815 1121.17 612.086C1120.65 611.357 1120.4 610.437 1120.4 609.327V590.335ZM1142.06 614V588.545H1150.66C1152.65 588.545 1154.28 588.885 1155.56 589.565C1156.83 590.236 1157.78 591.16 1158.39 592.336C1159 593.513 1159.31 594.851 1159.31 596.351C1159.31 597.851 1159 599.181 1158.39 600.341C1157.78 601.501 1156.84 602.412 1155.57 603.075C1154.3 603.73 1152.68 604.057 1150.71 604.057H1143.75V601.273H1150.61C1151.97 601.273 1153.06 601.074 1153.89 600.676C1154.73 600.278 1155.33 599.715 1155.71 598.986C1156.09 598.248 1156.28 597.37 1156.28 596.351C1156.28 595.332 1156.09 594.441 1155.71 593.679C1155.33 592.916 1154.72 592.328 1153.88 591.914C1153.04 591.491 1151.94 591.28 1150.56 591.28H1145.14V614H1142.06ZM1154.04 602.565L1160.31 614H1156.73L1150.56 602.565H1154.04ZM1171.26 614.348C1169.58 614.348 1168.14 614.041 1166.93 613.428C1165.72 612.815 1164.79 611.974 1164.14 610.905C1163.48 609.836 1163.15 608.614 1163.15 607.239C1163.15 606.178 1163.38 605.238 1163.83 604.417C1164.28 603.589 1164.91 602.822 1165.7 602.118C1166.51 601.405 1167.43 600.693 1168.47 599.98L1172.15 597.246C1172.87 596.773 1173.45 596.268 1173.88 595.729C1174.32 595.191 1174.54 594.487 1174.54 593.616C1174.54 592.97 1174.25 592.345 1173.68 591.74C1173.12 591.135 1172.38 590.832 1171.46 590.832C1170.81 590.832 1170.24 590.998 1169.74 591.33C1169.25 591.653 1168.87 592.067 1168.59 592.572C1168.31 593.07 1168.18 593.583 1168.18 594.114C1168.18 594.71 1168.34 595.315 1168.66 595.928C1168.99 596.533 1169.41 597.155 1169.92 597.793C1170.43 598.422 1170.96 599.069 1171.51 599.732L1183.19 614H1179.66L1170.02 602.366C1169.12 601.289 1168.31 600.312 1167.58 599.433C1166.85 598.555 1166.27 597.689 1165.84 596.836C1165.41 595.982 1165.19 595.058 1165.19 594.064C1165.19 592.92 1165.45 591.918 1165.95 591.056C1166.46 590.186 1167.18 589.511 1168.1 589.03C1169.03 588.541 1170.11 588.297 1171.36 588.297C1172.63 588.297 1173.73 588.545 1174.65 589.043C1175.57 589.531 1176.28 590.182 1176.78 590.994C1177.27 591.798 1177.52 592.672 1177.52 593.616C1177.52 594.835 1177.22 595.891 1176.62 596.786C1176.01 597.681 1175.19 598.513 1174.14 599.284L1169.07 603.062C1167.93 603.908 1167.15 604.728 1166.75 605.523C1166.34 606.319 1166.14 606.891 1166.14 607.239C1166.14 608.034 1166.34 608.776 1166.76 609.463C1167.17 610.151 1167.76 610.706 1168.51 611.129C1169.27 611.551 1170.15 611.763 1171.16 611.763C1172.12 611.763 1173.06 611.56 1173.97 611.154C1174.88 610.739 1175.7 610.143 1176.44 609.364C1177.19 608.585 1177.78 607.649 1178.21 606.555C1178.65 605.461 1178.86 604.231 1178.86 602.864H1181.7C1181.7 604.554 1181.5 605.934 1181.11 607.002C1180.72 608.071 1180.29 608.908 1179.8 609.513C1179.31 610.118 1178.91 610.57 1178.62 610.868C1178.52 610.992 1178.43 611.116 1178.34 611.241C1178.26 611.365 1178.17 611.489 1178.07 611.614C1177.25 612.533 1176.21 613.221 1174.96 613.677C1173.71 614.124 1172.48 614.348 1171.26 614.348ZM1207.32 596.5H1204.24C1204.05 595.613 1203.73 594.835 1203.28 594.163C1202.83 593.492 1202.28 592.929 1201.64 592.473C1201 592.009 1200.29 591.661 1199.51 591.429C1198.73 591.197 1197.92 591.081 1197.08 591.081C1195.54 591.081 1194.14 591.47 1192.89 592.249C1191.64 593.028 1190.65 594.176 1189.92 595.692C1189.19 597.208 1188.82 599.069 1188.82 601.273C1188.82 603.477 1189.19 605.337 1189.92 606.853C1190.65 608.37 1191.64 609.517 1192.89 610.296C1194.14 611.075 1195.54 611.464 1197.08 611.464C1197.92 611.464 1198.73 611.348 1199.51 611.116C1200.29 610.884 1201 610.541 1201.64 610.085C1202.28 609.621 1202.83 609.053 1203.28 608.382C1203.73 607.703 1204.05 606.924 1204.24 606.045H1207.32C1207.09 607.346 1206.66 608.511 1206.05 609.538C1205.44 610.565 1204.67 611.44 1203.76 612.161C1202.85 612.873 1201.83 613.416 1200.69 613.789C1199.57 614.162 1198.36 614.348 1197.08 614.348C1194.91 614.348 1192.97 613.818 1191.28 612.757C1189.59 611.696 1188.26 610.188 1187.29 608.233C1186.33 606.277 1185.84 603.957 1185.84 601.273C1185.84 598.588 1186.33 596.268 1187.29 594.312C1188.26 592.357 1189.59 590.849 1191.28 589.788C1192.97 588.728 1194.91 588.197 1197.08 588.197C1198.36 588.197 1199.57 588.384 1200.69 588.757C1201.83 589.13 1202.85 589.676 1203.76 590.397C1204.67 591.11 1205.44 591.98 1206.05 593.007C1206.66 594.027 1207.09 595.191 1207.32 596.5ZM1224.68 602.516V614H1221.74V594.909H1224.58V597.892H1224.83C1225.27 596.923 1225.95 596.144 1226.87 595.555C1227.78 594.959 1228.95 594.661 1230.4 594.661C1231.69 594.661 1232.82 594.926 1233.79 595.456C1234.76 595.978 1235.51 596.773 1236.05 597.842C1236.59 598.903 1236.86 600.245 1236.86 601.869V614H1233.93V602.068C1233.93 600.568 1233.54 599.4 1232.76 598.563C1231.98 597.718 1230.91 597.295 1229.55 597.295C1228.61 597.295 1227.78 597.498 1227.04 597.904C1226.31 598.31 1225.73 598.903 1225.31 599.682C1224.89 600.461 1224.68 601.405 1224.68 602.516ZM1250.22 614.398C1248.38 614.398 1246.8 613.992 1245.46 613.18C1244.14 612.359 1243.11 611.216 1242.39 609.749C1241.68 608.274 1241.32 606.559 1241.32 604.604C1241.32 602.648 1241.68 600.925 1242.39 599.433C1243.11 597.933 1244.12 596.765 1245.4 595.928C1246.69 595.083 1248.2 594.661 1249.92 594.661C1250.92 594.661 1251.9 594.826 1252.87 595.158C1253.84 595.489 1254.72 596.028 1255.52 596.773C1256.31 597.511 1256.95 598.489 1257.42 599.707C1257.89 600.925 1258.13 602.424 1258.13 604.206V605.449H1243.41V602.913H1255.14C1255.14 601.836 1254.93 600.875 1254.5 600.03C1254.08 599.185 1253.47 598.518 1252.68 598.029C1251.9 597.54 1250.98 597.295 1249.92 597.295C1248.76 597.295 1247.75 597.585 1246.89 598.165C1246.05 598.737 1245.4 599.483 1244.94 600.403C1244.48 601.322 1244.26 602.308 1244.26 603.361V605.051C1244.26 606.493 1244.51 607.715 1245 608.718C1245.51 609.712 1246.21 610.47 1247.1 610.992C1248 611.506 1249.04 611.763 1250.22 611.763C1250.99 611.763 1251.69 611.655 1252.31 611.44C1252.94 611.216 1253.48 610.884 1253.94 610.445C1254.39 609.998 1254.75 609.443 1255 608.78L1257.83 609.575C1257.53 610.536 1257.03 611.382 1256.33 612.111C1255.62 612.832 1254.75 613.395 1253.72 613.801C1252.68 614.199 1251.52 614.398 1250.22 614.398ZM1270.59 614.398C1268.75 614.398 1267.17 613.992 1265.83 613.18C1264.51 612.359 1263.48 611.216 1262.76 609.749C1262.05 608.274 1261.69 606.559 1261.69 604.604C1261.69 602.648 1262.05 600.925 1262.76 599.433C1263.48 597.933 1264.49 596.765 1265.77 595.928C1267.06 595.083 1268.57 594.661 1270.3 594.661C1271.29 594.661 1272.27 594.826 1273.24 595.158C1274.21 595.489 1275.09 596.028 1275.89 596.773C1276.68 597.511 1277.32 598.489 1277.79 599.707C1278.26 600.925 1278.5 602.424 1278.5 604.206V605.449H1263.78V602.913H1275.52C1275.52 601.836 1275.3 600.875 1274.87 600.03C1274.45 599.185 1273.84 598.518 1273.05 598.029C1272.28 597.54 1271.36 597.295 1270.3 597.295C1269.13 597.295 1268.12 597.585 1267.26 598.165C1266.42 598.737 1265.77 599.483 1265.31 600.403C1264.86 601.322 1264.63 602.308 1264.63 603.361V605.051C1264.63 606.493 1264.88 607.715 1265.37 608.718C1265.88 609.712 1266.58 610.47 1267.47 610.992C1268.37 611.506 1269.41 611.763 1270.59 611.763C1271.36 611.763 1272.06 611.655 1272.68 611.44C1273.31 611.216 1273.85 610.884 1274.31 610.445C1274.77 609.998 1275.12 609.443 1275.37 608.78L1278.2 609.575C1277.9 610.536 1277.4 611.382 1276.7 612.111C1275.99 612.832 1275.12 613.395 1274.09 613.801C1273.05 614.199 1271.89 614.398 1270.59 614.398ZM1290.17 614.398C1288.58 614.398 1287.17 613.996 1285.96 613.192C1284.74 612.38 1283.78 611.237 1283.1 609.762C1282.41 608.279 1282.07 606.526 1282.07 604.504C1282.07 602.499 1282.41 600.759 1283.1 599.284C1283.78 597.809 1284.74 596.67 1285.97 595.866C1287.19 595.062 1288.61 594.661 1290.22 594.661C1291.46 594.661 1292.44 594.868 1293.16 595.282C1293.89 595.688 1294.45 596.152 1294.83 596.674C1295.22 597.188 1295.52 597.61 1295.74 597.942H1295.99V588.545H1298.92V614H1296.09V611.067H1295.74C1295.52 611.415 1295.22 611.854 1294.82 612.384C1294.42 612.906 1293.85 613.374 1293.12 613.789C1292.38 614.195 1291.4 614.398 1290.17 614.398ZM1290.57 611.763C1291.74 611.763 1292.74 611.456 1293.55 610.843C1294.36 610.222 1294.98 609.364 1295.4 608.27C1295.82 607.168 1296.04 605.896 1296.04 604.455C1296.04 603.029 1295.83 601.782 1295.41 600.713C1295 599.636 1294.39 598.799 1293.57 598.203C1292.76 597.598 1291.76 597.295 1290.57 597.295C1289.32 597.295 1288.29 597.614 1287.46 598.252C1286.64 598.882 1286.02 599.74 1285.61 600.825C1285.2 601.902 1285 603.112 1285 604.455C1285 605.813 1285.21 607.048 1285.62 608.158C1286.04 609.26 1286.66 610.139 1287.48 610.793C1288.31 611.44 1289.34 611.763 1290.57 611.763ZM1322.85 594.909V597.395H1312.95V594.909H1322.85ZM1315.84 590.335H1318.77V608.531C1318.77 609.36 1318.89 609.981 1319.13 610.396C1319.38 610.802 1319.69 611.075 1320.07 611.216C1320.46 611.348 1320.87 611.415 1321.3 611.415C1321.63 611.415 1321.89 611.398 1322.1 611.365C1322.31 611.324 1322.47 611.29 1322.6 611.266L1323.19 613.901C1322.99 613.975 1322.72 614.05 1322.36 614.124C1322 614.207 1321.55 614.249 1321.01 614.249C1320.18 614.249 1319.37 614.07 1318.57 613.714C1317.78 613.358 1317.13 612.815 1316.61 612.086C1316.09 611.357 1315.84 610.437 1315.84 609.327V590.335ZM1334.81 614.398C1333.08 614.398 1331.57 613.988 1330.27 613.167C1328.98 612.347 1327.97 611.199 1327.24 609.724C1326.52 608.25 1326.16 606.526 1326.16 604.554C1326.16 602.565 1326.52 600.829 1327.24 599.346C1327.97 597.863 1328.98 596.711 1330.27 595.891C1331.57 595.071 1333.08 594.661 1334.81 594.661C1336.53 594.661 1338.04 595.071 1339.33 595.891C1340.63 596.711 1341.64 597.863 1342.36 599.346C1343.09 600.829 1343.46 602.565 1343.46 604.554C1343.46 606.526 1343.09 608.25 1342.36 609.724C1341.64 611.199 1340.63 612.347 1339.33 613.167C1338.04 613.988 1336.53 614.398 1334.81 614.398ZM1334.81 611.763C1336.12 611.763 1337.19 611.427 1338.04 610.756C1338.88 610.085 1339.51 609.202 1339.92 608.109C1340.32 607.015 1340.53 605.83 1340.53 604.554C1340.53 603.278 1340.32 602.089 1339.92 600.987C1339.51 599.885 1338.88 598.994 1338.04 598.315C1337.19 597.635 1336.12 597.295 1334.81 597.295C1333.5 597.295 1332.42 597.635 1331.58 598.315C1330.73 598.994 1330.11 599.885 1329.7 600.987C1329.29 602.089 1329.09 603.278 1329.09 604.554C1329.09 605.83 1329.29 607.015 1329.7 608.109C1330.11 609.202 1330.73 610.085 1331.58 610.756C1332.42 611.427 1333.5 611.763 1334.81 611.763ZM1358.18 614V588.545H1361.11V597.942H1361.36C1361.57 597.61 1361.87 597.188 1362.25 596.674C1362.64 596.152 1363.2 595.688 1363.92 595.282C1364.65 594.868 1365.63 594.661 1366.88 594.661C1368.49 594.661 1369.9 595.062 1371.13 595.866C1372.35 596.67 1373.31 597.809 1374 599.284C1374.69 600.759 1375.03 602.499 1375.03 604.504C1375.03 606.526 1374.69 608.279 1374 609.762C1373.31 611.237 1372.36 612.38 1371.14 613.192C1369.92 613.996 1368.52 614.398 1366.93 614.398C1365.7 614.398 1364.72 614.195 1363.98 613.789C1363.24 613.374 1362.68 612.906 1362.28 612.384C1361.88 611.854 1361.57 611.415 1361.36 611.067H1361.01V614H1358.18ZM1361.06 604.455C1361.06 605.896 1361.27 607.168 1361.7 608.27C1362.12 609.364 1362.73 610.222 1363.55 610.843C1364.36 611.456 1365.35 611.763 1366.53 611.763C1367.76 611.763 1368.78 611.44 1369.6 610.793C1370.43 610.139 1371.05 609.26 1371.46 608.158C1371.89 607.048 1372.1 605.813 1372.1 604.455C1372.1 603.112 1371.89 601.902 1371.48 600.825C1371.07 599.74 1370.45 598.882 1369.62 598.252C1368.8 597.614 1367.77 597.295 1366.53 597.295C1365.34 597.295 1364.33 597.598 1363.52 598.203C1362.71 598.799 1362.1 599.636 1361.68 600.713C1361.27 601.782 1361.06 603.029 1361.06 604.455ZM1387.52 614.398C1385.68 614.398 1384.1 613.992 1382.76 613.18C1381.44 612.359 1380.41 611.216 1379.69 609.749C1378.98 608.274 1378.62 606.559 1378.62 604.604C1378.62 602.648 1378.98 600.925 1379.69 599.433C1380.41 597.933 1381.42 596.765 1382.7 595.928C1383.99 595.083 1385.5 594.661 1387.22 594.661C1388.22 594.661 1389.2 594.826 1390.17 595.158C1391.14 595.489 1392.02 596.028 1392.82 596.773C1393.61 597.511 1394.25 598.489 1394.72 599.707C1395.19 600.925 1395.43 602.424 1395.43 604.206V605.449H1380.71V602.913H1392.44C1392.44 601.836 1392.23 600.875 1391.8 600.03C1391.38 599.185 1390.77 598.518 1389.98 598.029C1389.2 597.54 1388.28 597.295 1387.22 597.295C1386.06 597.295 1385.04 597.585 1384.19 598.165C1383.35 598.737 1382.7 599.483 1382.24 600.403C1381.78 601.322 1381.56 602.308 1381.56 603.361V605.051C1381.56 606.493 1381.81 607.715 1382.3 608.718C1382.81 609.712 1383.51 610.47 1384.4 610.992C1385.3 611.506 1386.34 611.763 1387.52 611.763C1388.29 611.763 1388.99 611.655 1389.61 611.44C1390.24 611.216 1390.78 610.884 1391.24 610.445C1391.69 609.998 1392.05 609.443 1392.3 608.78L1395.13 609.575C1394.83 610.536 1394.33 611.382 1393.63 612.111C1392.92 612.832 1392.05 613.395 1391.01 613.801C1389.98 614.199 1388.82 614.398 1387.52 614.398ZM1066.87 656.447C1065.66 656.447 1064.56 656.22 1063.58 655.764C1062.59 655.3 1061.81 654.633 1061.23 653.763C1060.65 652.884 1060.36 651.824 1060.36 650.581C1060.36 649.487 1060.57 648.601 1061.01 647.921C1061.44 647.233 1062.01 646.695 1062.73 646.305C1063.45 645.916 1064.25 645.626 1065.12 645.435C1066 645.237 1066.88 645.079 1067.77 644.963C1068.93 644.814 1069.87 644.702 1070.59 644.627C1071.32 644.545 1071.85 644.408 1072.18 644.217C1072.52 644.027 1072.69 643.695 1072.69 643.223V643.124C1072.69 641.897 1072.35 640.944 1071.68 640.265C1071.02 639.585 1070.01 639.246 1068.66 639.246C1067.26 639.246 1066.16 639.552 1065.37 640.165C1064.57 640.779 1064.01 641.433 1063.69 642.129L1060.91 641.135C1061.4 639.975 1062.07 639.072 1062.89 638.425C1063.73 637.771 1064.64 637.315 1065.63 637.058C1066.62 636.793 1067.6 636.661 1068.56 636.661C1069.18 636.661 1069.88 636.735 1070.68 636.884C1071.48 637.025 1072.25 637.319 1073 637.767C1073.75 638.214 1074.38 638.889 1074.88 639.793C1075.37 640.696 1075.62 641.906 1075.62 643.422V656H1072.69V653.415H1072.54C1072.34 653.829 1072.01 654.272 1071.55 654.745C1071.08 655.217 1070.46 655.619 1069.69 655.95C1068.92 656.282 1067.98 656.447 1066.87 656.447ZM1067.32 653.812C1068.48 653.812 1069.46 653.585 1070.25 653.129C1071.06 652.673 1071.66 652.085 1072.07 651.364C1072.48 650.643 1072.69 649.885 1072.69 649.089V646.405C1072.56 646.554 1072.29 646.691 1071.87 646.815C1071.45 646.931 1070.97 647.035 1070.43 647.126C1069.89 647.209 1069.36 647.283 1068.85 647.349C1068.34 647.407 1067.93 647.457 1067.62 647.499C1066.86 647.598 1066.14 647.76 1065.48 647.983C1064.83 648.199 1064.29 648.526 1063.89 648.965C1063.49 649.396 1063.29 649.984 1063.29 650.73C1063.29 651.749 1063.67 652.52 1064.42 653.042C1065.19 653.556 1066.15 653.812 1067.32 653.812ZM1088.18 656.398C1086.59 656.398 1085.19 655.996 1083.97 655.192C1082.75 654.38 1081.8 653.237 1081.11 651.762C1080.42 650.279 1080.08 648.526 1080.08 646.504C1080.08 644.499 1080.42 642.759 1081.11 641.284C1081.8 639.809 1082.76 638.67 1083.98 637.866C1085.21 637.062 1086.63 636.661 1088.23 636.661C1089.48 636.661 1090.46 636.868 1091.18 637.282C1091.91 637.688 1092.46 638.152 1092.85 638.674C1093.23 639.188 1093.54 639.61 1093.75 639.942H1094V630.545H1096.93V656H1094.1V653.067H1093.75C1093.54 653.415 1093.23 653.854 1092.83 654.384C1092.44 654.906 1091.87 655.374 1091.13 655.789C1090.39 656.195 1089.41 656.398 1088.18 656.398ZM1088.58 653.763C1089.76 653.763 1090.75 653.456 1091.57 652.843C1092.38 652.222 1092.99 651.364 1093.42 650.27C1093.84 649.168 1094.05 647.896 1094.05 646.455C1094.05 645.029 1093.84 643.782 1093.43 642.713C1093.02 641.636 1092.4 640.799 1091.59 640.203C1090.78 639.598 1089.78 639.295 1088.58 639.295C1087.34 639.295 1086.3 639.614 1085.47 640.252C1084.65 640.882 1084.04 641.74 1083.62 642.825C1083.22 643.902 1083.01 645.112 1083.01 646.455C1083.01 647.813 1083.22 649.048 1083.64 650.158C1084.06 651.26 1084.68 652.139 1085.5 652.793C1086.33 653.44 1087.36 653.763 1088.58 653.763ZM1109.92 656.398C1108.33 656.398 1106.93 655.996 1105.71 655.192C1104.49 654.38 1103.54 653.237 1102.85 651.762C1102.16 650.279 1101.82 648.526 1101.82 646.504C1101.82 644.499 1102.16 642.759 1102.85 641.284C1103.54 639.809 1104.5 638.67 1105.72 637.866C1106.95 637.062 1108.36 636.661 1109.97 636.661C1111.22 636.661 1112.2 636.868 1112.92 637.282C1113.65 637.688 1114.2 638.152 1114.58 638.674C1114.97 639.188 1115.28 639.61 1115.49 639.942H1115.74V630.545H1118.67V656H1115.84V653.067H1115.49C1115.28 653.415 1114.97 653.854 1114.57 654.384C1114.17 654.906 1113.61 655.374 1112.87 655.789C1112.13 656.195 1111.15 656.398 1109.92 656.398ZM1110.32 653.763C1111.5 653.763 1112.49 653.456 1113.3 652.843C1114.12 652.222 1114.73 651.364 1115.16 650.27C1115.58 649.168 1115.79 647.896 1115.79 646.455C1115.79 645.029 1115.58 643.782 1115.17 642.713C1114.75 641.636 1114.14 640.799 1113.33 640.203C1112.52 639.598 1111.51 639.295 1110.32 639.295C1109.08 639.295 1108.04 639.614 1107.21 640.252C1106.39 640.882 1105.78 641.74 1105.36 642.825C1104.96 643.902 1104.75 645.112 1104.75 646.455C1104.75 647.813 1104.96 649.048 1105.37 650.158C1105.8 651.26 1106.42 652.139 1107.24 652.793C1108.07 653.44 1109.09 653.763 1110.32 653.763ZM1132.46 656.398C1130.62 656.398 1129.03 655.992 1127.7 655.18C1126.37 654.359 1125.35 653.216 1124.63 651.749C1123.91 650.274 1123.56 648.559 1123.56 646.604C1123.56 644.648 1123.91 642.925 1124.63 641.433C1125.35 639.933 1126.35 638.765 1127.63 637.928C1128.93 637.083 1130.43 636.661 1132.16 636.661C1133.15 636.661 1134.13 636.826 1135.1 637.158C1136.07 637.489 1136.96 638.028 1137.75 638.773C1138.55 639.511 1139.18 640.489 1139.65 641.707C1140.13 642.925 1140.36 644.424 1140.36 646.206V647.449H1125.65V644.913H1137.38C1137.38 643.836 1137.16 642.875 1136.73 642.03C1136.31 641.185 1135.7 640.518 1134.92 640.029C1134.14 639.54 1133.22 639.295 1132.16 639.295C1130.99 639.295 1129.98 639.585 1129.13 640.165C1128.28 640.737 1127.63 641.483 1127.17 642.403C1126.72 643.322 1126.49 644.308 1126.49 645.361V647.051C1126.49 648.493 1126.74 649.715 1127.24 650.718C1127.74 651.712 1128.44 652.47 1129.34 652.992C1130.23 653.506 1131.27 653.763 1132.46 653.763C1133.23 653.763 1133.92 653.655 1134.54 653.44C1135.17 653.216 1135.72 652.884 1136.17 652.445C1136.63 651.998 1136.98 651.443 1137.23 650.78L1140.06 651.575C1139.76 652.536 1139.26 653.382 1138.56 654.111C1137.85 654.832 1136.98 655.395 1135.95 655.801C1134.91 656.199 1133.75 656.398 1132.46 656.398ZM1152.03 656.398C1150.44 656.398 1149.04 655.996 1147.82 655.192C1146.6 654.38 1145.65 653.237 1144.96 651.762C1144.27 650.279 1143.93 648.526 1143.93 646.504C1143.93 644.499 1144.27 642.759 1144.96 641.284C1145.65 639.809 1146.6 638.67 1147.83 637.866C1149.06 637.062 1150.47 636.661 1152.08 636.661C1153.32 636.661 1154.31 636.868 1155.03 637.282C1155.76 637.688 1156.31 638.152 1156.69 638.674C1157.08 639.188 1157.38 639.61 1157.6 639.942H1157.85V630.545H1160.78V656H1157.95V653.067H1157.6C1157.38 653.415 1157.08 653.854 1156.68 654.384C1156.28 654.906 1155.72 655.374 1154.98 655.789C1154.24 656.195 1153.26 656.398 1152.03 656.398ZM1152.43 653.763C1153.61 653.763 1154.6 653.456 1155.41 652.843C1156.22 652.222 1156.84 651.364 1157.26 650.27C1157.69 649.168 1157.9 647.896 1157.9 646.455C1157.9 645.029 1157.69 643.782 1157.28 642.713C1156.86 641.636 1156.25 640.799 1155.44 640.203C1154.63 639.598 1153.62 639.295 1152.43 639.295C1151.19 639.295 1150.15 639.614 1149.32 640.252C1148.5 640.882 1147.89 641.74 1147.47 642.825C1147.06 643.902 1146.86 645.112 1146.86 646.455C1146.86 647.813 1147.07 649.048 1147.48 650.158C1147.91 651.26 1148.53 652.139 1149.35 652.793C1150.18 653.44 1151.2 653.763 1152.43 653.763ZM1170.94 652.52L1170.74 653.862C1170.6 654.807 1170.38 655.818 1170.09 656.895C1169.81 657.972 1169.52 658.987 1169.21 659.94C1168.9 660.893 1168.65 661.651 1168.45 662.214H1166.21C1166.32 661.684 1166.46 660.984 1166.64 660.114C1166.81 659.244 1166.98 658.27 1167.16 657.193C1167.34 656.124 1167.49 655.031 1167.61 653.912L1167.75 652.52H1170.94ZM1186.21 656V636.909H1189.05V639.793H1189.25C1189.6 638.848 1190.23 638.082 1191.14 637.493C1192.05 636.905 1193.08 636.611 1194.22 636.611C1194.43 636.611 1194.7 636.615 1195.03 636.623C1195.35 636.632 1195.59 636.644 1195.76 636.661V639.643C1195.66 639.619 1195.43 639.581 1195.08 639.532C1194.73 639.474 1194.36 639.445 1193.97 639.445C1193.04 639.445 1192.21 639.639 1191.48 640.029C1190.76 640.41 1190.19 640.94 1189.77 641.62C1189.36 642.291 1189.15 643.057 1189.15 643.919V656H1186.21ZM1206.66 656.398C1204.82 656.398 1203.23 655.992 1201.9 655.18C1200.57 654.359 1199.55 653.216 1198.83 651.749C1198.12 650.274 1197.76 648.559 1197.76 646.604C1197.76 644.648 1198.12 642.925 1198.83 641.433C1199.55 639.933 1200.55 638.765 1201.84 637.928C1203.13 637.083 1204.64 636.661 1206.36 636.661C1207.36 636.661 1208.34 636.826 1209.31 637.158C1210.28 637.489 1211.16 638.028 1211.96 638.773C1212.75 639.511 1213.38 640.489 1213.86 641.707C1214.33 642.925 1214.57 644.424 1214.57 646.206V647.449H1199.85V644.913H1211.58C1211.58 643.836 1211.37 642.875 1210.94 642.03C1210.51 641.185 1209.91 640.518 1209.12 640.029C1208.34 639.54 1207.42 639.295 1206.36 639.295C1205.19 639.295 1204.18 639.585 1203.33 640.165C1202.48 640.737 1201.83 641.483 1201.38 642.403C1200.92 643.322 1200.69 644.308 1200.69 645.361V647.051C1200.69 648.493 1200.94 649.715 1201.44 650.718C1201.95 651.712 1202.65 652.47 1203.54 652.992C1204.44 653.506 1205.48 653.763 1206.66 653.763C1207.43 653.763 1208.13 653.655 1208.75 653.44C1209.38 653.216 1209.92 652.884 1210.38 652.445C1210.83 651.998 1211.18 651.443 1211.43 650.78L1214.27 651.575C1213.97 652.536 1213.47 653.382 1212.76 654.111C1212.06 654.832 1211.19 655.395 1210.15 655.801C1209.12 656.199 1207.95 656.398 1206.66 656.398ZM1219.03 656V636.909H1221.86V639.892H1222.11C1222.51 638.873 1223.15 638.082 1224.04 637.518C1224.92 636.946 1225.99 636.661 1227.23 636.661C1228.49 636.661 1229.54 636.946 1230.38 637.518C1231.22 638.082 1231.88 638.873 1232.35 639.892H1232.55C1233.04 638.906 1233.77 638.123 1234.75 637.543C1235.73 636.955 1236.9 636.661 1238.27 636.661C1239.97 636.661 1241.37 637.195 1242.46 638.264C1243.54 639.324 1244.08 640.978 1244.08 643.223V656H1241.15V643.223C1241.15 641.814 1240.77 640.808 1240 640.203C1239.22 639.598 1238.32 639.295 1237.27 639.295C1235.93 639.295 1234.89 639.701 1234.15 640.513C1233.42 641.317 1233.05 642.336 1233.05 643.571V656H1230.06V642.925C1230.06 641.839 1229.71 640.965 1229.01 640.302C1228.3 639.631 1227.4 639.295 1226.29 639.295C1225.52 639.295 1224.81 639.498 1224.15 639.904C1223.49 640.31 1222.96 640.874 1222.56 641.595C1222.16 642.307 1221.96 643.132 1221.96 644.068V656H1219.03ZM1257.2 656.398C1255.48 656.398 1253.97 655.988 1252.67 655.167C1251.37 654.347 1250.36 653.199 1249.63 651.724C1248.91 650.25 1248.55 648.526 1248.55 646.554C1248.55 644.565 1248.91 642.829 1249.63 641.346C1250.36 639.863 1251.37 638.711 1252.67 637.891C1253.97 637.071 1255.48 636.661 1257.2 636.661C1258.93 636.661 1260.43 637.071 1261.73 637.891C1263.03 638.711 1264.04 639.863 1264.76 641.346C1265.49 642.829 1265.85 644.565 1265.85 646.554C1265.85 648.526 1265.49 650.25 1264.76 651.724C1264.04 653.199 1263.03 654.347 1261.73 655.167C1260.43 655.988 1258.93 656.398 1257.2 656.398ZM1257.2 653.763C1258.51 653.763 1259.59 653.427 1260.43 652.756C1261.28 652.085 1261.91 651.202 1262.31 650.109C1262.72 649.015 1262.92 647.83 1262.92 646.554C1262.92 645.278 1262.72 644.089 1262.31 642.987C1261.91 641.885 1261.28 640.994 1260.43 640.315C1259.59 639.635 1258.51 639.295 1257.2 639.295C1255.89 639.295 1254.82 639.635 1253.97 640.315C1253.13 640.994 1252.5 641.885 1252.09 642.987C1251.69 644.089 1251.49 645.278 1251.49 646.554C1251.49 647.83 1251.69 649.015 1252.09 650.109C1252.5 651.202 1253.13 652.085 1253.97 652.756C1254.82 653.427 1255.89 653.763 1257.2 653.763ZM1285.26 636.909L1278.2 656H1275.22L1268.16 636.909H1271.34L1276.61 652.122H1276.81L1282.08 636.909H1285.26ZM1296.45 656.398C1294.61 656.398 1293.02 655.992 1291.69 655.18C1290.36 654.359 1289.34 653.216 1288.62 651.749C1287.91 650.274 1287.55 648.559 1287.55 646.604C1287.55 644.648 1287.91 642.925 1288.62 641.433C1289.34 639.933 1290.34 638.765 1291.63 637.928C1292.92 637.083 1294.43 636.661 1296.15 636.661C1297.15 636.661 1298.13 636.826 1299.1 637.158C1300.07 637.489 1300.95 638.028 1301.75 638.773C1302.54 639.511 1303.17 640.489 1303.65 641.707C1304.12 642.925 1304.36 644.424 1304.36 646.206V647.449H1289.64V644.913H1301.37C1301.37 643.836 1301.16 642.875 1300.73 642.03C1300.3 641.185 1299.7 640.518 1298.91 640.029C1298.13 639.54 1297.21 639.295 1296.15 639.295C1294.98 639.295 1293.97 639.585 1293.12 640.165C1292.27 640.737 1291.62 641.483 1291.17 642.403C1290.71 643.322 1290.48 644.308 1290.48 645.361V647.051C1290.48 648.493 1290.73 649.715 1291.23 650.718C1291.74 651.712 1292.44 652.47 1293.33 652.992C1294.23 653.506 1295.27 653.763 1296.45 653.763C1297.22 653.763 1297.92 653.655 1298.54 653.44C1299.17 653.216 1299.71 652.884 1300.17 652.445C1300.62 651.998 1300.97 651.443 1301.22 650.78L1304.06 651.575C1303.76 652.536 1303.26 653.382 1302.55 654.111C1301.85 654.832 1300.98 655.395 1299.94 655.801C1298.91 656.199 1297.74 656.398 1296.45 656.398ZM1316.03 656.398C1314.44 656.398 1313.03 655.996 1311.81 655.192C1310.59 654.38 1309.64 653.237 1308.95 651.762C1308.27 650.279 1307.92 648.526 1307.92 646.504C1307.92 644.499 1308.27 642.759 1308.95 641.284C1309.64 639.809 1310.6 638.67 1311.83 637.866C1313.05 637.062 1314.47 636.661 1316.08 636.661C1317.32 636.661 1318.3 636.868 1319.02 637.282C1319.75 637.688 1320.31 638.152 1320.69 638.674C1321.08 639.188 1321.38 639.61 1321.59 639.942H1321.84V630.545H1324.78V656H1321.94V653.067H1321.59C1321.38 653.415 1321.07 653.854 1320.67 654.384C1320.28 654.906 1319.71 655.374 1318.97 655.789C1318.23 656.195 1317.25 656.398 1316.03 656.398ZM1316.42 653.763C1317.6 653.763 1318.59 653.456 1319.41 652.843C1320.22 652.222 1320.84 651.364 1321.26 650.27C1321.68 649.168 1321.89 647.896 1321.89 646.455C1321.89 645.029 1321.69 643.782 1321.27 642.713C1320.86 641.636 1320.24 640.799 1319.43 640.203C1318.62 639.598 1317.62 639.295 1316.42 639.295C1315.18 639.295 1314.15 639.614 1313.32 640.252C1312.5 640.882 1311.88 641.74 1311.46 642.825C1311.06 643.902 1310.86 645.112 1310.86 646.455C1310.86 647.813 1311.06 649.048 1311.48 650.158C1311.9 651.26 1312.52 652.139 1313.34 652.793C1314.17 653.44 1315.2 653.763 1316.42 653.763ZM1334.93 652.52L1334.73 653.862C1334.59 654.807 1334.38 655.818 1334.09 656.895C1333.8 657.972 1333.51 658.987 1333.2 659.94C1332.9 660.893 1332.64 661.651 1332.44 662.214H1330.21C1330.32 661.684 1330.46 660.984 1330.63 660.114C1330.8 659.244 1330.98 658.27 1331.15 657.193C1331.33 656.124 1331.48 655.031 1331.6 653.912L1331.75 652.52H1334.93ZM1357.96 656.398C1356.24 656.398 1354.73 655.988 1353.43 655.167C1352.14 654.347 1351.12 653.199 1350.4 651.724C1349.67 650.25 1349.31 648.526 1349.31 646.554C1349.31 644.565 1349.67 642.829 1350.4 641.346C1351.12 639.863 1352.14 638.711 1353.43 637.891C1354.73 637.071 1356.24 636.661 1357.96 636.661C1359.69 636.661 1361.2 637.071 1362.49 637.891C1363.79 638.711 1364.8 639.863 1365.52 641.346C1366.25 642.829 1366.62 644.565 1366.62 646.554C1366.62 648.526 1366.25 650.25 1365.52 651.724C1364.8 653.199 1363.79 654.347 1362.49 655.167C1361.2 655.988 1359.69 656.398 1357.96 656.398ZM1357.96 653.763C1359.27 653.763 1360.35 653.427 1361.2 652.756C1362.04 652.085 1362.67 651.202 1363.07 650.109C1363.48 649.015 1363.68 647.83 1363.68 646.554C1363.68 645.278 1363.48 644.089 1363.07 642.987C1362.67 641.885 1362.04 640.994 1361.2 640.315C1360.35 639.635 1359.27 639.295 1357.96 639.295C1356.66 639.295 1355.58 639.635 1354.73 640.315C1353.89 640.994 1353.26 641.885 1352.86 642.987C1352.45 644.089 1352.25 645.278 1352.25 646.554C1352.25 647.83 1352.45 649.015 1352.86 650.109C1353.26 651.202 1353.89 652.085 1354.73 652.756C1355.58 653.427 1356.66 653.763 1357.96 653.763ZM1371.09 656V636.909H1373.93V639.793H1374.13C1374.47 638.848 1375.1 638.082 1376.01 637.493C1376.93 636.905 1377.95 636.611 1379.1 636.611C1379.31 636.611 1379.58 636.615 1379.91 636.623C1380.23 636.632 1380.47 636.644 1380.64 636.661V639.643C1380.54 639.619 1380.31 639.581 1379.95 639.532C1379.61 639.474 1379.24 639.445 1378.85 639.445C1377.92 639.445 1377.09 639.639 1376.36 640.029C1375.64 640.41 1375.07 640.94 1374.65 641.62C1374.23 642.291 1374.03 643.057 1374.03 643.919V656H1371.09ZM1011.54 698.398C1009.95 698.398 1008.54 697.996 1007.32 697.192C1006.11 696.38 1005.15 695.237 1004.46 693.762C1003.78 692.279 1003.43 690.526 1003.43 688.504C1003.43 686.499 1003.78 684.759 1004.46 683.284C1005.15 681.809 1006.11 680.67 1007.34 679.866C1008.56 679.062 1009.98 678.661 1011.59 678.661C1012.83 678.661 1013.81 678.868 1014.53 679.282C1015.26 679.688 1015.82 680.152 1016.2 680.674C1016.59 681.188 1016.89 681.61 1017.1 681.942H1017.35V672.545H1020.29V698H1017.45V695.067H1017.1C1016.89 695.415 1016.58 695.854 1016.18 696.384C1015.79 696.906 1015.22 697.374 1014.48 697.789C1013.74 698.195 1012.76 698.398 1011.54 698.398ZM1011.93 695.763C1013.11 695.763 1014.11 695.456 1014.92 694.843C1015.73 694.222 1016.35 693.364 1016.77 692.27C1017.19 691.168 1017.4 689.896 1017.4 688.455C1017.4 687.029 1017.2 685.782 1016.78 684.713C1016.37 683.636 1015.75 682.799 1014.94 682.203C1014.13 681.598 1013.13 681.295 1011.93 681.295C1010.69 681.295 1009.66 681.614 1008.83 682.252C1008.01 682.882 1007.39 683.74 1006.98 684.825C1006.57 685.902 1006.37 687.112 1006.37 688.455C1006.37 689.813 1006.57 691.048 1006.99 692.158C1007.41 693.26 1008.03 694.139 1008.85 694.793C1009.68 695.44 1010.71 695.763 1011.93 695.763ZM1034.07 698.398C1032.23 698.398 1030.64 697.992 1029.31 697.18C1027.98 696.359 1026.96 695.216 1026.24 693.749C1025.53 692.274 1025.17 690.559 1025.17 688.604C1025.17 686.648 1025.53 684.925 1026.24 683.433C1026.96 681.933 1027.96 680.765 1029.25 679.928C1030.54 679.083 1032.05 678.661 1033.77 678.661C1034.77 678.661 1035.75 678.826 1036.72 679.158C1037.69 679.489 1038.57 680.028 1039.37 680.773C1040.16 681.511 1040.79 682.489 1041.27 683.707C1041.74 684.925 1041.98 686.424 1041.98 688.206V689.449H1027.26V686.913H1038.99C1038.99 685.836 1038.78 684.875 1038.35 684.03C1037.92 683.185 1037.32 682.518 1036.53 682.029C1035.75 681.54 1034.83 681.295 1033.77 681.295C1032.6 681.295 1031.59 681.585 1030.74 682.165C1029.89 682.737 1029.24 683.483 1028.79 684.403C1028.33 685.322 1028.1 686.308 1028.1 687.361V689.051C1028.1 690.493 1028.35 691.715 1028.85 692.718C1029.36 693.712 1030.06 694.47 1030.95 694.992C1031.85 695.506 1032.89 695.763 1034.07 695.763C1034.84 695.763 1035.54 695.655 1036.16 695.44C1036.79 695.216 1037.33 694.884 1037.79 694.445C1038.24 693.998 1038.59 693.443 1038.84 692.78L1041.68 693.575C1041.38 694.536 1040.88 695.382 1040.17 696.111C1039.47 696.832 1038.6 697.395 1037.56 697.801C1036.53 698.199 1035.36 698.398 1034.07 698.398ZM1061.47 678.909L1054.41 698H1051.42L1044.36 678.909H1047.55L1052.82 694.122H1053.02L1058.29 678.909H1061.47ZM1072.66 698.398C1070.82 698.398 1069.23 697.992 1067.9 697.18C1066.57 696.359 1065.55 695.216 1064.83 693.749C1064.12 692.274 1063.76 690.559 1063.76 688.604C1063.76 686.648 1064.12 684.925 1064.83 683.433C1065.55 681.933 1066.55 680.765 1067.84 679.928C1069.13 679.083 1070.64 678.661 1072.36 678.661C1073.36 678.661 1074.34 678.826 1075.31 679.158C1076.28 679.489 1077.16 680.028 1077.95 680.773C1078.75 681.511 1079.38 682.489 1079.86 683.707C1080.33 684.925 1080.56 686.424 1080.56 688.206V689.449H1065.85V686.913H1077.58C1077.58 685.836 1077.37 684.875 1076.93 684.03C1076.51 683.185 1075.91 682.518 1075.12 682.029C1074.34 681.54 1073.42 681.295 1072.36 681.295C1071.19 681.295 1070.18 681.585 1069.33 682.165C1068.48 682.737 1067.83 683.483 1067.38 684.403C1066.92 685.322 1066.69 686.308 1066.69 687.361V689.051C1066.69 690.493 1066.94 691.715 1067.44 692.718C1067.94 693.712 1068.64 694.47 1069.54 694.992C1070.43 695.506 1071.47 695.763 1072.66 695.763C1073.43 695.763 1074.13 695.655 1074.75 695.44C1075.38 695.216 1075.92 694.884 1076.38 694.445C1076.83 693.998 1077.18 693.443 1077.43 692.78L1080.27 693.575C1079.97 694.536 1079.47 695.382 1078.76 696.111C1078.06 696.832 1077.19 697.395 1076.15 697.801C1075.12 698.199 1073.95 698.398 1072.66 698.398ZM1087.96 672.545V698H1085.03V672.545H1087.96ZM1101.09 698.398C1099.36 698.398 1097.85 697.988 1096.55 697.167C1095.26 696.347 1094.25 695.199 1093.52 693.724C1092.8 692.25 1092.44 690.526 1092.44 688.554C1092.44 686.565 1092.8 684.829 1093.52 683.346C1094.25 681.863 1095.26 680.711 1096.55 679.891C1097.85 679.071 1099.36 678.661 1101.09 678.661C1102.81 678.661 1104.32 679.071 1105.61 679.891C1106.91 680.711 1107.92 681.863 1108.64 683.346C1109.37 684.829 1109.74 686.565 1109.74 688.554C1109.74 690.526 1109.37 692.25 1108.64 693.724C1107.92 695.199 1106.91 696.347 1105.61 697.167C1104.32 697.988 1102.81 698.398 1101.09 698.398ZM1101.09 695.763C1102.4 695.763 1103.47 695.427 1104.32 694.756C1105.16 694.085 1105.79 693.202 1106.2 692.109C1106.6 691.015 1106.8 689.83 1106.8 688.554C1106.8 687.278 1106.6 686.089 1106.2 684.987C1105.79 683.885 1105.16 682.994 1104.32 682.315C1103.47 681.635 1102.4 681.295 1101.09 681.295C1099.78 681.295 1098.7 681.635 1097.86 682.315C1097.01 682.994 1096.39 683.885 1095.98 684.987C1095.57 686.089 1095.37 687.278 1095.37 688.554C1095.37 689.83 1095.57 691.015 1095.98 692.109C1096.39 693.202 1097.01 694.085 1097.86 694.756C1098.7 695.427 1099.78 695.763 1101.09 695.763ZM1114.22 705.159V678.909H1117.05V681.942H1117.4C1117.61 681.61 1117.91 681.188 1118.29 680.674C1118.68 680.152 1119.24 679.688 1119.96 679.282C1120.69 678.868 1121.67 678.661 1122.92 678.661C1124.52 678.661 1125.94 679.062 1127.17 679.866C1128.39 680.67 1129.35 681.809 1130.04 683.284C1130.73 684.759 1131.07 686.499 1131.07 688.504C1131.07 690.526 1130.73 692.279 1130.04 693.762C1129.35 695.237 1128.4 696.38 1127.18 697.192C1125.96 697.996 1124.56 698.398 1122.97 698.398C1121.74 698.398 1120.76 698.195 1120.02 697.789C1119.28 697.374 1118.71 696.906 1118.32 696.384C1117.92 695.854 1117.61 695.415 1117.4 695.067H1117.15V705.159H1114.22ZM1117.1 688.455C1117.1 689.896 1117.31 691.168 1117.73 692.27C1118.16 693.364 1118.77 694.222 1119.58 694.843C1120.4 695.456 1121.39 695.763 1122.57 695.763C1123.79 695.763 1124.82 695.44 1125.64 694.793C1126.47 694.139 1127.09 693.26 1127.5 692.158C1127.92 691.048 1128.14 689.813 1128.14 688.455C1128.14 687.112 1127.93 685.902 1127.51 684.825C1127.11 683.74 1126.49 682.882 1125.66 682.252C1124.84 681.614 1123.81 681.295 1122.57 681.295C1121.37 681.295 1120.37 681.598 1119.56 682.203C1118.75 682.799 1118.13 683.636 1117.72 684.713C1117.31 685.782 1117.1 687.029 1117.1 688.455ZM1143.55 698.398C1141.71 698.398 1140.12 697.992 1138.79 697.18C1137.46 696.359 1136.44 695.216 1135.72 693.749C1135 692.274 1134.65 690.559 1134.65 688.604C1134.65 686.648 1135 684.925 1135.72 683.433C1136.44 681.933 1137.44 680.765 1138.73 679.928C1140.02 679.083 1141.53 678.661 1143.25 678.661C1144.24 678.661 1145.23 678.826 1146.2 679.158C1147.16 679.489 1148.05 680.028 1148.84 680.773C1149.64 681.511 1150.27 682.489 1150.74 683.707C1151.22 684.925 1151.45 686.424 1151.45 688.206V689.449H1136.74V686.913H1148.47C1148.47 685.836 1148.25 684.875 1147.82 684.03C1147.4 683.185 1146.8 682.518 1146.01 682.029C1145.23 681.54 1144.31 681.295 1143.25 681.295C1142.08 681.295 1141.07 681.585 1140.22 682.165C1139.37 682.737 1138.72 683.483 1138.27 684.403C1137.81 685.322 1137.58 686.308 1137.58 687.361V689.051C1137.58 690.493 1137.83 691.715 1138.33 692.718C1138.83 693.712 1139.53 694.47 1140.43 694.992C1141.32 695.506 1142.36 695.763 1143.55 695.763C1144.32 695.763 1145.01 695.655 1145.64 695.44C1146.27 695.216 1146.81 694.884 1147.26 694.445C1147.72 693.998 1148.07 693.443 1148.32 692.78L1151.15 693.575C1150.86 694.536 1150.35 695.382 1149.65 696.111C1148.95 696.832 1148.08 697.395 1147.04 697.801C1146 698.199 1144.84 698.398 1143.55 698.398ZM1163.12 698.398C1161.53 698.398 1160.13 697.996 1158.91 697.192C1157.69 696.38 1156.74 695.237 1156.05 693.762C1155.36 692.279 1155.02 690.526 1155.02 688.504C1155.02 686.499 1155.36 684.759 1156.05 683.284C1156.74 681.809 1157.7 680.67 1158.92 679.866C1160.15 679.062 1161.57 678.661 1163.17 678.661C1164.42 678.661 1165.4 678.868 1166.12 679.282C1166.85 679.688 1167.4 680.152 1167.78 680.674C1168.17 681.188 1168.48 681.61 1168.69 681.942H1168.94V672.545H1171.87V698H1169.04V695.067H1168.69C1168.48 695.415 1168.17 695.854 1167.77 696.384C1167.37 696.906 1166.81 697.374 1166.07 697.789C1165.33 698.195 1164.35 698.398 1163.12 698.398ZM1163.52 695.763C1164.7 695.763 1165.69 695.456 1166.5 694.843C1167.32 694.222 1167.93 693.364 1168.36 692.27C1168.78 691.168 1168.99 689.896 1168.99 688.455C1168.99 687.029 1168.78 685.782 1168.37 684.713C1167.95 683.636 1167.34 682.799 1166.53 682.203C1165.72 681.598 1164.71 681.295 1163.52 681.295C1162.28 681.295 1161.24 681.614 1160.41 682.252C1159.59 682.882 1158.98 683.74 1158.56 684.825C1158.16 685.902 1157.95 687.112 1157.95 688.455C1157.95 689.813 1158.16 691.048 1158.57 692.158C1159 693.26 1159.62 694.139 1160.44 694.793C1161.27 695.44 1162.29 695.763 1163.52 695.763ZM1195.8 678.909V681.395H1185.91V678.909H1195.8ZM1188.79 674.335H1191.72V692.531C1191.72 693.36 1191.84 693.981 1192.08 694.396C1192.33 694.802 1192.65 695.075 1193.03 695.216C1193.42 695.348 1193.83 695.415 1194.26 695.415C1194.58 695.415 1194.85 695.398 1195.05 695.365C1195.26 695.324 1195.43 695.29 1195.55 695.266L1196.15 697.901C1195.95 697.975 1195.67 698.05 1195.31 698.124C1194.96 698.207 1194.51 698.249 1193.96 698.249C1193.13 698.249 1192.32 698.07 1191.52 697.714C1190.74 697.358 1190.08 696.815 1189.56 696.086C1189.05 695.357 1188.79 694.437 1188.79 693.327V674.335ZM1207.76 698.398C1206.04 698.398 1204.53 697.988 1203.23 697.167C1201.93 696.347 1200.92 695.199 1200.19 693.724C1199.47 692.25 1199.11 690.526 1199.11 688.554C1199.11 686.565 1199.47 684.829 1200.19 683.346C1200.92 681.863 1201.93 680.711 1203.23 679.891C1204.53 679.071 1206.04 678.661 1207.76 678.661C1209.49 678.661 1210.99 679.071 1212.29 679.891C1213.59 680.711 1214.6 681.863 1215.32 683.346C1216.05 684.829 1216.41 686.565 1216.41 688.554C1216.41 690.526 1216.05 692.25 1215.32 693.724C1214.6 695.199 1213.59 696.347 1212.29 697.167C1210.99 697.988 1209.49 698.398 1207.76 698.398ZM1207.76 695.763C1209.07 695.763 1210.15 695.427 1210.99 694.756C1211.84 694.085 1212.46 693.202 1212.87 692.109C1213.28 691.015 1213.48 689.83 1213.48 688.554C1213.48 687.278 1213.28 686.089 1212.87 684.987C1212.46 683.885 1211.84 682.994 1210.99 682.315C1210.15 681.635 1209.07 681.295 1207.76 681.295C1206.45 681.295 1205.38 681.635 1204.53 682.315C1203.69 682.994 1203.06 683.885 1202.65 684.987C1202.25 686.089 1202.04 687.278 1202.04 688.554C1202.04 689.83 1202.25 691.015 1202.65 692.109C1203.06 693.202 1203.69 694.085 1204.53 694.756C1205.38 695.427 1206.45 695.763 1207.76 695.763ZM1237.94 698.398C1236.35 698.398 1234.95 697.996 1233.73 697.192C1232.51 696.38 1231.56 695.237 1230.87 693.762C1230.18 692.279 1229.84 690.526 1229.84 688.504C1229.84 686.499 1230.18 684.759 1230.87 683.284C1231.56 681.809 1232.52 680.67 1233.74 679.866C1234.97 679.062 1236.39 678.661 1237.99 678.661C1239.24 678.661 1240.22 678.868 1240.94 679.282C1241.67 679.688 1242.22 680.152 1242.6 680.674C1242.99 681.188 1243.3 681.61 1243.51 681.942H1243.76V672.545H1246.69V698H1243.86V695.067H1243.51C1243.3 695.415 1242.99 695.854 1242.59 696.384C1242.19 696.906 1241.63 697.374 1240.89 697.789C1240.15 698.195 1239.17 698.398 1237.94 698.398ZM1238.34 695.763C1239.52 695.763 1240.51 695.456 1241.32 694.843C1242.14 694.222 1242.75 693.364 1243.18 692.27C1243.6 691.168 1243.81 689.896 1243.81 688.455C1243.81 687.029 1243.6 685.782 1243.19 684.713C1242.77 683.636 1242.16 682.799 1241.35 682.203C1240.54 681.598 1239.53 681.295 1238.34 681.295C1237.1 681.295 1236.06 681.614 1235.23 682.252C1234.41 682.882 1233.8 683.74 1233.38 684.825C1232.98 685.902 1232.77 687.112 1232.77 688.455C1232.77 689.813 1232.98 691.048 1233.39 692.158C1233.82 693.26 1234.44 694.139 1235.26 694.793C1236.09 695.44 1237.11 695.763 1238.34 695.763ZM1260.48 698.398C1258.64 698.398 1257.05 697.992 1255.72 697.18C1254.39 696.359 1253.37 695.216 1252.65 693.749C1251.93 692.274 1251.58 690.559 1251.58 688.604C1251.58 686.648 1251.93 684.925 1252.65 683.433C1253.37 681.933 1254.37 680.765 1255.65 679.928C1256.95 679.083 1258.45 678.661 1260.18 678.661C1261.17 678.661 1262.15 678.826 1263.12 679.158C1264.09 679.489 1264.98 680.028 1265.77 680.773C1266.57 681.511 1267.2 682.489 1267.67 683.707C1268.15 684.925 1268.38 686.424 1268.38 688.206V689.449H1253.67V686.913H1265.4C1265.4 685.836 1265.18 684.875 1264.75 684.03C1264.33 683.185 1263.72 682.518 1262.94 682.029C1262.16 681.54 1261.24 681.295 1260.18 681.295C1259.01 681.295 1258 681.585 1257.15 682.165C1256.3 682.737 1255.65 683.483 1255.19 684.403C1254.74 685.322 1254.51 686.308 1254.51 687.361V689.051C1254.51 690.493 1254.76 691.715 1255.26 692.718C1255.76 693.712 1256.46 694.47 1257.36 694.992C1258.25 695.506 1259.29 695.763 1260.48 695.763C1261.25 695.763 1261.94 695.655 1262.56 695.44C1263.19 695.216 1263.74 694.884 1264.19 694.445C1264.65 693.998 1265 693.443 1265.25 692.78L1268.08 693.575C1267.78 694.536 1267.28 695.382 1266.58 696.111C1265.87 696.832 1265 697.395 1263.97 697.801C1262.93 698.199 1261.77 698.398 1260.48 698.398ZM1275.78 672.545V698H1272.84V672.545H1275.78ZM1281.15 698V678.909H1284.08V698H1281.15ZM1282.64 675.727C1282.07 675.727 1281.58 675.533 1281.16 675.143C1280.76 674.754 1280.55 674.286 1280.55 673.739C1280.55 673.192 1280.76 672.724 1281.16 672.334C1281.58 671.945 1282.07 671.75 1282.64 671.75C1283.21 671.75 1283.7 671.945 1284.11 672.334C1284.52 672.724 1284.73 673.192 1284.73 673.739C1284.73 674.286 1284.52 674.754 1284.11 675.143C1283.7 675.533 1283.21 675.727 1282.64 675.727ZM1305.07 678.909L1298.01 698H1295.02L1287.96 678.909H1291.15L1296.41 694.122H1296.61L1301.88 678.909H1305.07ZM1316.26 698.398C1314.42 698.398 1312.83 697.992 1311.5 697.18C1310.17 696.359 1309.15 695.216 1308.43 693.749C1307.71 692.274 1307.36 690.559 1307.36 688.604C1307.36 686.648 1307.71 684.925 1308.43 683.433C1309.15 681.933 1310.15 680.765 1311.44 679.928C1312.73 679.083 1314.24 678.661 1315.96 678.661C1316.95 678.661 1317.94 678.826 1318.91 679.158C1319.87 679.489 1320.76 680.028 1321.55 680.773C1322.35 681.511 1322.98 682.489 1323.45 683.707C1323.93 684.925 1324.16 686.424 1324.16 688.206V689.449H1309.45V686.913H1321.18C1321.18 685.836 1320.96 684.875 1320.53 684.03C1320.11 683.185 1319.51 682.518 1318.72 682.029C1317.94 681.54 1317.02 681.295 1315.96 681.295C1314.79 681.295 1313.78 681.585 1312.93 682.165C1312.08 682.737 1311.43 683.483 1310.98 684.403C1310.52 685.322 1310.29 686.308 1310.29 687.361V689.051C1310.29 690.493 1310.54 691.715 1311.04 692.718C1311.54 693.712 1312.24 694.47 1313.14 694.992C1314.03 695.506 1315.07 695.763 1316.26 695.763C1317.03 695.763 1317.72 695.655 1318.35 695.44C1318.98 695.216 1319.52 694.884 1319.97 694.445C1320.43 693.998 1320.78 693.443 1321.03 692.78L1323.86 693.575C1323.57 694.536 1323.06 695.382 1322.36 696.111C1321.66 696.832 1320.79 697.395 1319.75 697.801C1318.71 698.199 1317.55 698.398 1316.26 698.398ZM1328.62 698V678.909H1331.46V681.793H1331.66C1332.01 680.848 1332.64 680.082 1333.55 679.493C1334.46 678.905 1335.49 678.611 1336.63 678.611C1336.84 678.611 1337.11 678.615 1337.44 678.623C1337.76 678.632 1338 678.644 1338.17 678.661V681.643C1338.07 681.619 1337.84 681.581 1337.49 681.532C1337.14 681.474 1336.77 681.445 1336.38 681.445C1335.45 681.445 1334.62 681.639 1333.89 682.029C1333.17 682.41 1332.6 682.94 1332.18 683.62C1331.76 684.291 1331.56 685.057 1331.56 685.919V698H1328.62ZM1368.59 672.545H1371.68V689.399C1371.68 691.139 1371.27 692.693 1370.45 694.06C1369.63 695.419 1368.49 696.492 1367 697.279C1365.52 698.058 1363.78 698.447 1361.78 698.447C1359.79 698.447 1358.05 698.058 1356.56 697.279C1355.08 696.492 1353.93 695.419 1353.11 694.06C1352.29 692.693 1351.89 691.139 1351.89 689.399V672.545H1354.97V689.151C1354.97 690.393 1355.24 691.5 1355.79 692.469C1356.34 693.43 1357.12 694.188 1358.13 694.744C1359.15 695.29 1360.37 695.564 1361.78 695.564C1363.2 695.564 1364.42 695.29 1365.44 694.744C1366.46 694.188 1367.23 693.43 1367.77 692.469C1368.32 691.5 1368.59 690.393 1368.59 689.151V672.545ZM1378.87 672.545L1386.43 693.973H1386.73L1394.29 672.545H1397.52L1388.17 698H1384.99L1375.64 672.545H1378.87ZM1401.48 698V672.545H1410.08C1412.08 672.545 1413.71 672.906 1414.98 673.627C1416.26 674.339 1417.2 675.305 1417.81 676.523C1418.43 677.741 1418.73 679.1 1418.73 680.599C1418.73 682.099 1418.43 683.462 1417.81 684.689C1417.21 685.915 1416.27 686.893 1415.01 687.622C1413.74 688.343 1412.11 688.703 1410.13 688.703H1403.97V685.969H1410.03C1411.4 685.969 1412.5 685.733 1413.33 685.26C1414.16 684.788 1414.76 684.15 1415.13 683.346C1415.51 682.534 1415.7 681.619 1415.7 680.599C1415.7 679.58 1415.51 678.669 1415.13 677.865C1414.76 677.061 1414.15 676.432 1413.32 675.976C1412.48 675.512 1411.37 675.28 1409.98 675.28H1404.57V698H1401.48ZM1427.13 690.841V690.692C1427.15 689.109 1427.31 687.85 1427.63 686.913C1427.94 685.977 1428.39 685.219 1428.97 684.639C1429.55 684.059 1430.25 683.524 1431.06 683.036C1431.55 682.737 1431.99 682.385 1432.38 681.979C1432.76 681.565 1433.07 681.088 1433.3 680.55C1433.53 680.011 1433.64 679.415 1433.64 678.76C1433.64 677.948 1433.45 677.244 1433.07 676.647C1432.69 676.05 1432.18 675.591 1431.54 675.267C1430.9 674.944 1430.2 674.783 1429.42 674.783C1428.74 674.783 1428.08 674.924 1427.45 675.205C1426.82 675.487 1426.3 675.93 1425.88 676.535C1425.45 677.14 1425.21 677.931 1425.14 678.909H1422.01C1422.08 677.5 1422.44 676.295 1423.1 675.292C1423.77 674.29 1424.66 673.523 1425.75 672.993C1426.85 672.463 1428.08 672.197 1429.42 672.197C1430.88 672.197 1432.14 672.487 1433.22 673.067C1434.31 673.647 1435.14 674.443 1435.73 675.454C1436.33 676.465 1436.63 677.616 1436.63 678.909C1436.63 679.821 1436.49 680.645 1436.2 681.382C1435.93 682.12 1435.53 682.779 1435.01 683.359C1434.5 683.939 1433.88 684.452 1433.15 684.9C1432.42 685.356 1431.83 685.836 1431.39 686.342C1430.95 686.839 1430.64 687.431 1430.44 688.119C1430.24 688.807 1430.13 689.664 1430.11 690.692V690.841H1427.13ZM1428.72 698.199C1428.11 698.199 1427.58 697.979 1427.14 697.54C1426.7 697.101 1426.48 696.575 1426.48 695.962C1426.48 695.348 1426.7 694.822 1427.14 694.383C1427.58 693.944 1428.11 693.724 1428.72 693.724C1429.33 693.724 1429.86 693.944 1430.3 694.383C1430.74 694.822 1430.96 695.348 1430.96 695.962C1430.96 696.368 1430.86 696.741 1430.65 697.08C1430.45 697.42 1430.18 697.693 1429.84 697.901C1429.51 698.099 1429.14 698.199 1428.72 698.199Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"Header\" onClick={ClickHandler(\"Header\")}>\r\n <rect\r\n className=\"map-rect\"\r\n id=\"Rectangle 1\"\r\n x=\"720\"\r\n width=\"1000\"\r\n height=\"200\"\r\n rx=\"50\"\r\n fill=\"#9D393D\"\r\n />\r\n <path\r\n d=\"M987.04 68V38.1818H997.115C999.455 38.1818 1001.37 38.604 1002.85 39.4485C1004.35 40.2833 1005.45 41.4141 1006.17 42.8409C1006.89 44.2678 1007.25 45.8596 1007.25 47.6165C1007.25 49.3733 1006.89 50.9701 1006.17 52.4066C1005.46 53.8432 1004.37 54.9885 1002.88 55.8427C1001.4 56.6871 999.493 57.1094 997.174 57.1094H989.952V53.9062H997.057C998.659 53.9062 999.945 53.6296 1000.92 53.0763C1001.89 52.5231 1002.59 51.7757 1003.03 50.8342C1003.47 49.8829 1003.7 48.8104 1003.7 47.6165C1003.7 46.4226 1003.47 45.3549 1003.03 44.4134C1002.59 43.4718 1001.88 42.7341 1000.9 42.2003C999.92 41.6567 998.62 41.3849 996.999 41.3849H990.651V68H987.04ZM1012.6 68V45.6364H1015.92V49.0142H1016.15C1016.56 47.9077 1017.3 47.0098 1018.37 46.3207C1019.43 45.6315 1020.64 45.2869 1021.98 45.2869C1022.23 45.2869 1022.54 45.2918 1022.92 45.3015C1023.3 45.3112 1023.59 45.3258 1023.78 45.3452V48.8395C1023.66 48.8104 1023.4 48.7667 1022.98 48.7085C1022.57 48.6405 1022.14 48.6065 1021.68 48.6065C1020.6 48.6065 1019.63 48.8346 1018.77 49.2908C1017.93 49.7373 1017.26 50.3585 1016.76 51.1545C1016.28 51.9407 1016.04 52.8385 1016.04 53.848V68H1012.6ZM1036.55 68.4659C1034.4 68.4659 1032.54 67.9903 1030.97 67.0391C1029.42 66.0781 1028.22 64.7386 1027.38 63.0206C1026.54 61.2929 1026.13 59.2836 1026.13 56.9929C1026.13 54.7022 1026.54 52.6832 1027.38 50.9361C1028.22 49.1792 1029.4 47.8106 1030.9 46.8303C1032.42 45.8402 1034.18 45.3452 1036.2 45.3452C1037.37 45.3452 1038.52 45.5393 1039.65 45.9276C1040.79 46.3158 1041.82 46.9467 1042.75 47.8203C1043.68 48.6842 1044.43 49.8295 1044.98 51.2564C1045.53 52.6832 1045.81 54.4401 1045.81 56.527V57.983H1028.57V55.0128H1042.32C1042.32 53.7509 1042.06 52.625 1041.56 51.6349C1041.06 50.6449 1040.36 49.8635 1039.43 49.2908C1038.52 48.7182 1037.44 48.4318 1036.2 48.4318C1034.83 48.4318 1033.65 48.7715 1032.65 49.451C1031.66 50.1207 1030.9 50.9943 1030.36 52.0717C1029.83 53.1491 1029.56 54.3042 1029.56 55.5369V57.517C1029.56 59.206 1029.85 60.6377 1030.44 61.8121C1031.03 62.9769 1031.85 63.8651 1032.9 64.4766C1033.94 65.0784 1035.16 65.3793 1036.55 65.3793C1037.45 65.3793 1038.27 65.2531 1039 65.0007C1039.73 64.7386 1040.37 64.3504 1040.9 63.8359C1041.44 63.3118 1041.85 62.6615 1042.14 61.8849L1045.46 62.8168C1045.11 63.9427 1044.52 64.9328 1043.7 65.7869C1042.87 66.6314 1041.85 67.2914 1040.64 67.767C1039.43 68.233 1038.06 68.4659 1036.55 68.4659ZM1060.12 68.4659C1058.03 68.4659 1056.22 67.9709 1054.71 66.9808C1053.19 65.9908 1052.03 64.627 1051.21 62.8896C1050.4 61.1521 1049.99 59.1671 1049.99 56.9347C1049.99 54.6634 1050.41 52.659 1051.24 50.9215C1052.09 49.1744 1053.26 47.8106 1054.76 46.8303C1056.28 45.8402 1058.05 45.3452 1060.06 45.3452C1061.64 45.3452 1063.05 45.6364 1064.32 46.2188C1065.58 46.8011 1066.61 47.6165 1067.42 48.6648C1068.22 49.7131 1068.72 50.9361 1068.92 52.3338H1065.48C1065.22 51.3146 1064.64 50.4119 1063.73 49.6257C1062.84 48.8298 1061.64 48.4318 1060.12 48.4318C1058.78 48.4318 1057.61 48.7812 1056.6 49.4801C1055.6 50.1693 1054.82 51.1448 1054.25 52.4066C1053.7 53.6587 1053.42 55.1293 1053.42 56.8182C1053.42 58.5459 1053.7 60.0504 1054.24 61.3317C1054.79 62.6129 1055.57 63.6078 1056.57 64.3164C1057.58 65.025 1058.76 65.3793 1060.12 65.3793C1061.02 65.3793 1061.83 65.224 1062.55 64.9134C1063.28 64.6027 1063.9 64.1562 1064.4 63.5739C1064.91 62.9915 1065.27 62.2926 1065.48 61.4773H1068.92C1068.72 62.7973 1068.24 63.9864 1067.47 65.0444C1066.72 66.0927 1065.71 66.9274 1064.46 67.5487C1063.22 68.1602 1061.77 68.4659 1060.12 68.4659ZM1083.32 68.4659C1081.16 68.4659 1079.3 67.9903 1077.74 67.0391C1076.19 66.0781 1074.99 64.7386 1074.14 63.0206C1073.31 61.2929 1072.89 59.2836 1072.89 56.9929C1072.89 54.7022 1073.31 52.6832 1074.14 50.9361C1074.99 49.1792 1076.16 47.8106 1077.67 46.8303C1079.18 45.8402 1080.95 45.3452 1082.97 45.3452C1084.13 45.3452 1085.28 45.5393 1086.42 45.9276C1087.55 46.3158 1088.59 46.9467 1089.52 47.8203C1090.45 48.6842 1091.19 49.8295 1091.75 51.2564C1092.3 52.6832 1092.58 54.4401 1092.58 56.527V57.983H1075.34V55.0128H1089.08C1089.08 53.7509 1088.83 52.625 1088.32 51.6349C1087.83 50.6449 1087.12 49.8635 1086.2 49.2908C1085.29 48.7182 1084.21 48.4318 1082.97 48.4318C1081.6 48.4318 1080.41 48.7715 1079.41 49.451C1078.42 50.1207 1077.66 50.9943 1077.13 52.0717C1076.59 53.1491 1076.33 54.3042 1076.33 55.5369V57.517C1076.33 59.206 1076.62 60.6377 1077.2 61.8121C1077.79 62.9769 1078.61 63.8651 1079.66 64.4766C1080.71 65.0784 1081.93 65.3793 1083.32 65.3793C1084.22 65.3793 1085.03 65.2531 1085.76 65.0007C1086.5 64.7386 1087.14 64.3504 1087.67 63.8359C1088.2 63.3118 1088.62 62.6615 1088.91 61.8849L1092.23 62.8168C1091.88 63.9427 1091.29 64.9328 1090.46 65.7869C1089.64 66.6314 1088.62 67.2914 1087.41 67.767C1086.19 68.233 1084.83 68.4659 1083.32 68.4659ZM1106.25 68.4659C1104.38 68.4659 1102.74 67.9951 1101.31 67.0536C1099.88 66.1024 1098.77 64.7629 1097.96 63.0352C1097.16 61.2977 1096.75 59.2448 1096.75 56.8764C1096.75 54.5275 1097.16 52.4891 1097.96 50.7614C1098.77 49.0336 1099.89 47.699 1101.33 46.7575C1102.76 45.8159 1104.42 45.3452 1106.31 45.3452C1107.76 45.3452 1108.91 45.5878 1109.76 46.0732C1110.61 46.5488 1111.26 47.0923 1111.71 47.7038C1112.16 48.3056 1112.52 48.8007 1112.77 49.1889H1113.06V38.1818H1116.5V68H1113.18V64.5639H1112.77C1112.52 64.9716 1112.16 65.486 1111.69 66.1072C1111.23 66.7187 1110.56 67.2672 1109.7 67.7525C1108.83 68.2281 1107.68 68.4659 1106.25 68.4659ZM1106.71 65.3793C1108.09 65.3793 1109.26 65.0201 1110.21 64.3018C1111.16 63.5739 1111.88 62.5692 1112.38 61.288C1112.87 59.997 1113.12 58.5071 1113.12 56.8182C1113.12 55.1487 1112.88 53.6879 1112.39 52.4357C1111.91 51.1739 1111.19 50.1935 1110.24 49.4947C1109.29 48.7861 1108.11 48.4318 1106.71 48.4318C1105.26 48.4318 1104.04 48.8055 1103.07 49.5529C1102.11 50.2906 1101.39 51.2952 1100.9 52.5668C1100.43 53.8286 1100.19 55.2457 1100.19 56.8182C1100.19 58.41 1100.43 59.8563 1100.92 61.157C1101.41 62.4479 1102.14 63.4768 1103.1 64.2436C1104.07 65.0007 1105.28 65.3793 1106.71 65.3793ZM1123.27 68V45.6364H1126.7V68H1123.27ZM1125.01 41.9091C1124.34 41.9091 1123.77 41.681 1123.28 41.2248C1122.81 40.7686 1122.57 40.2202 1122.57 39.5795C1122.57 38.9389 1122.81 38.3905 1123.28 37.9343C1123.77 37.4781 1124.34 37.25 1125.01 37.25C1125.68 37.25 1126.26 37.4781 1126.73 37.9343C1127.22 38.3905 1127.46 38.9389 1127.46 39.5795C1127.46 40.2202 1127.22 40.7686 1126.73 41.2248C1126.26 41.681 1125.68 41.9091 1125.01 41.9091ZM1136.43 54.5469V68H1133V45.6364H1136.32V49.1307H1136.61C1137.13 47.995 1137.93 47.0826 1139 46.3935C1140.06 45.6946 1141.44 45.3452 1143.13 45.3452C1144.64 45.3452 1145.97 45.6558 1147.11 46.277C1148.24 46.8885 1149.12 47.8203 1149.76 49.0724C1150.39 50.3149 1150.7 51.8873 1150.7 53.7898V68H1147.27V54.0227C1147.27 52.2659 1146.81 50.8973 1145.9 49.9169C1144.98 48.9268 1143.73 48.4318 1142.14 48.4318C1141.04 48.4318 1140.06 48.6696 1139.2 49.1452C1138.35 49.6209 1137.67 50.3149 1137.18 51.2273C1136.68 52.1397 1136.43 53.2462 1136.43 54.5469ZM1166.01 76.8523C1164.35 76.8523 1162.92 76.6387 1161.73 76.2116C1160.53 75.7943 1159.54 75.241 1158.74 74.5518C1157.96 73.8724 1157.33 73.1444 1156.86 72.3679L1159.6 70.446C1159.91 70.8537 1160.3 71.3196 1160.78 71.8438C1161.26 72.3776 1161.91 72.8387 1162.73 73.2269C1163.57 73.6249 1164.66 73.8239 1166.01 73.8239C1167.81 73.8239 1169.3 73.3871 1170.48 72.5135C1171.65 71.6399 1172.24 70.2713 1172.24 68.4077V63.8651H1171.95C1171.7 64.2727 1171.34 64.7775 1170.87 65.3793C1170.41 65.9714 1169.75 66.5004 1168.89 66.9663C1168.04 67.4225 1166.88 67.6506 1165.42 67.6506C1163.62 67.6506 1162 67.2235 1160.56 66.3693C1159.14 65.5152 1158 64.2727 1157.17 62.642C1156.34 61.0114 1155.93 59.0312 1155.93 56.7017C1155.93 54.411 1156.33 52.4163 1157.14 50.7177C1157.95 49.0094 1159.07 47.6893 1160.5 46.7575C1161.94 45.8159 1163.6 45.3452 1165.48 45.3452C1166.94 45.3452 1168.09 45.5878 1168.95 46.0732C1169.81 46.5488 1170.47 47.0923 1170.93 47.7038C1171.39 48.3056 1171.75 48.8007 1172.01 49.1889H1172.36V45.6364H1175.67V68.6406C1175.67 70.5625 1175.24 72.1252 1174.36 73.3288C1173.5 74.5421 1172.34 75.4303 1170.87 75.9933C1169.41 76.5659 1167.79 76.8523 1166.01 76.8523ZM1165.89 64.5639C1167.27 64.5639 1168.43 64.2485 1169.39 63.6175C1170.34 62.9866 1171.06 62.0791 1171.55 60.8949C1172.05 59.7107 1172.3 58.2936 1172.3 56.6435C1172.3 55.0322 1172.05 53.6102 1171.57 52.3775C1171.08 51.1448 1170.37 50.179 1169.41 49.4801C1168.46 48.7812 1167.29 48.4318 1165.89 48.4318C1164.43 48.4318 1163.22 48.8007 1162.25 49.5384C1161.29 50.276 1160.57 51.2661 1160.08 52.5085C1159.61 53.7509 1159.37 55.1293 1159.37 56.6435C1159.37 58.1965 1159.61 59.57 1160.1 60.7638C1160.59 61.948 1161.32 62.8799 1162.28 63.5593C1163.25 64.229 1164.45 64.5639 1165.89 64.5639ZM1193.96 68V38.1818H1204.04C1206.37 38.1818 1208.28 38.5798 1209.77 39.3757C1211.27 40.1619 1212.37 41.2442 1213.09 42.6225C1213.81 44.0008 1214.17 45.5684 1214.17 47.3253C1214.17 49.0821 1213.81 50.64 1213.09 51.9989C1212.37 53.3578 1211.27 54.4255 1209.79 55.2021C1208.3 55.9689 1206.41 56.3523 1204.1 56.3523H1195.94V53.0909H1203.98C1205.57 53.0909 1206.85 52.858 1207.82 52.392C1208.8 51.9261 1209.51 51.2661 1209.95 50.4119C1210.39 49.5481 1210.62 48.5192 1210.62 47.3253C1210.62 46.1314 1210.39 45.0879 1209.95 44.195C1209.5 43.302 1208.79 42.6128 1207.81 42.1275C1206.83 41.6325 1205.53 41.3849 1203.92 41.3849H1197.57V68H1193.96ZM1208 54.6051L1215.34 68H1211.14L1203.92 54.6051H1208ZM1228.86 68.4659C1226.7 68.4659 1224.84 67.9903 1223.28 67.0391C1221.73 66.0781 1220.53 64.7386 1219.69 63.0206C1218.85 61.2929 1218.43 59.2836 1218.43 56.9929C1218.43 54.7022 1218.85 52.6832 1219.69 50.9361C1220.53 49.1792 1221.7 47.8106 1223.21 46.8303C1224.72 45.8402 1226.49 45.3452 1228.51 45.3452C1229.67 45.3452 1230.82 45.5393 1231.96 45.9276C1233.09 46.3158 1234.13 46.9467 1235.06 47.8203C1235.99 48.6842 1236.73 49.8295 1237.29 51.2564C1237.84 52.6832 1238.12 54.4401 1238.12 56.527V57.983H1220.88V55.0128H1234.62C1234.62 53.7509 1234.37 52.625 1233.87 51.6349C1233.37 50.6449 1232.66 49.8635 1231.74 49.2908C1230.83 48.7182 1229.75 48.4318 1228.51 48.4318C1227.14 48.4318 1225.96 48.7715 1224.96 49.451C1223.97 50.1207 1223.2 50.9943 1222.67 52.0717C1222.14 53.1491 1221.87 54.3042 1221.87 55.5369V57.517C1221.87 59.206 1222.16 60.6377 1222.74 61.8121C1223.33 62.9769 1224.15 63.8651 1225.2 64.4766C1226.25 65.0784 1227.47 65.3793 1228.86 65.3793C1229.76 65.3793 1230.58 65.2531 1231.3 65.0007C1232.04 64.7386 1232.68 64.3504 1233.21 63.8359C1233.74 63.3118 1234.16 62.6615 1234.45 61.8849L1237.77 62.8168C1237.42 63.9427 1236.83 64.9328 1236.01 65.7869C1235.18 66.6314 1234.16 67.2914 1232.95 67.767C1231.74 68.233 1230.37 68.4659 1228.86 68.4659ZM1258.6 76.3864V64.5639H1258.31C1258.06 64.9716 1257.7 65.486 1257.23 66.1072C1256.77 66.7187 1256.1 67.2672 1255.24 67.7525C1254.38 68.2281 1253.23 68.4659 1251.79 68.4659C1249.93 68.4659 1248.28 67.9951 1246.85 67.0536C1245.43 66.1024 1244.31 64.7629 1243.5 63.0352C1242.7 61.2977 1242.3 59.2448 1242.3 56.8764C1242.3 54.5275 1242.7 52.4891 1243.5 50.7614C1244.31 49.0336 1245.43 47.699 1246.87 46.7575C1248.3 45.8159 1249.96 45.3452 1251.85 45.3452C1253.3 45.3452 1254.45 45.5878 1255.3 46.0732C1256.15 46.5488 1256.8 47.0923 1257.25 47.7038C1257.71 48.3056 1258.06 48.8007 1258.31 49.1889H1258.72V45.6364H1262.04V76.3864H1258.6ZM1252.26 65.3793C1253.63 65.3793 1254.8 65.0201 1255.75 64.3018C1256.7 63.5739 1257.42 62.5692 1257.92 61.288C1258.41 59.997 1258.66 58.5071 1258.66 56.8182C1258.66 55.1487 1258.42 53.6879 1257.93 52.4357C1257.45 51.1739 1256.73 50.1935 1255.78 49.4947C1254.83 48.7861 1253.65 48.4318 1252.26 48.4318C1250.8 48.4318 1249.59 48.8055 1248.62 49.5529C1247.65 50.2906 1246.93 51.2952 1246.45 52.5668C1245.97 53.8286 1245.73 55.2457 1245.73 56.8182C1245.73 58.41 1245.98 59.8563 1246.46 61.157C1246.96 62.4479 1247.68 63.4768 1248.64 64.2436C1249.61 65.0007 1250.82 65.3793 1252.26 65.3793ZM1282.42 58.8565V45.6364H1285.86V68H1282.42V64.2145H1282.19C1281.67 65.3501 1280.85 66.3159 1279.74 67.1119C1278.64 67.8981 1277.24 68.2912 1275.55 68.2912C1274.15 68.2912 1272.91 67.9854 1271.82 67.3739C1270.74 66.7527 1269.88 65.8209 1269.26 64.5785C1268.64 63.3263 1268.33 61.7491 1268.33 59.8466V45.6364H1271.77V59.6136C1271.77 61.2443 1272.22 62.545 1273.13 63.5156C1274.06 64.4863 1275.23 64.9716 1276.66 64.9716C1277.51 64.9716 1278.38 64.7532 1279.26 64.3164C1280.16 63.8796 1280.9 63.2099 1281.51 62.3072C1282.12 61.4045 1282.42 60.2543 1282.42 58.8565ZM1292.15 68V45.6364H1295.59V68H1292.15ZM1293.9 41.9091C1293.23 41.9091 1292.65 41.681 1292.17 41.2248C1291.69 40.7686 1291.45 40.2202 1291.45 39.5795C1291.45 38.9389 1291.69 38.3905 1292.17 37.9343C1292.65 37.4781 1293.23 37.25 1293.9 37.25C1294.57 37.25 1295.14 37.4781 1295.62 37.9343C1296.1 38.3905 1296.35 38.9389 1296.35 39.5795C1296.35 40.2202 1296.1 40.7686 1295.62 41.2248C1295.14 41.681 1294.57 41.9091 1293.9 41.9091ZM1301.88 68V45.6364H1305.2V49.0142H1305.43C1305.84 47.9077 1306.58 47.0098 1307.65 46.3207C1308.72 45.6315 1309.92 45.2869 1311.26 45.2869C1311.51 45.2869 1311.83 45.2918 1312.2 45.3015C1312.58 45.3112 1312.87 45.3258 1313.06 45.3452V48.8395C1312.95 48.8104 1312.68 48.7667 1312.26 48.7085C1311.86 48.6405 1311.42 48.6065 1310.97 48.6065C1309.88 48.6065 1308.91 48.8346 1308.05 49.2908C1307.21 49.7373 1306.54 50.3585 1306.05 51.1545C1305.56 51.9407 1305.32 52.8385 1305.32 53.848V68H1301.88ZM1325.83 68.4659C1323.68 68.4659 1321.82 67.9903 1320.26 67.0391C1318.7 66.0781 1317.5 64.7386 1316.66 63.0206C1315.83 61.2929 1315.41 59.2836 1315.41 56.9929C1315.41 54.7022 1315.83 52.6832 1316.66 50.9361C1317.5 49.1792 1318.68 47.8106 1320.18 46.8303C1321.7 45.8402 1323.46 45.3452 1325.48 45.3452C1326.65 45.3452 1327.8 45.5393 1328.93 45.9276C1330.07 46.3158 1331.1 46.9467 1332.03 47.8203C1332.97 48.6842 1333.71 49.8295 1334.26 51.2564C1334.82 52.6832 1335.09 54.4401 1335.09 56.527V57.983H1317.85V55.0128H1331.6C1331.6 53.7509 1331.35 52.625 1330.84 51.6349C1330.35 50.6449 1329.64 49.8635 1328.72 49.2908C1327.8 48.7182 1326.73 48.4318 1325.48 48.4318C1324.11 48.4318 1322.93 48.7715 1321.93 49.451C1320.94 50.1207 1320.18 50.9943 1319.64 52.0717C1319.11 53.1491 1318.84 54.3042 1318.84 55.5369V57.517C1318.84 59.206 1319.13 60.6377 1319.72 61.8121C1320.31 62.9769 1321.13 63.8651 1322.18 64.4766C1323.23 65.0784 1324.44 65.3793 1325.83 65.3793C1326.74 65.3793 1327.55 65.2531 1328.28 65.0007C1329.02 64.7386 1329.65 64.3504 1330.19 63.8359C1330.72 63.3118 1331.13 62.6615 1331.42 61.8849L1334.74 62.8168C1334.39 63.9427 1333.81 64.9328 1332.98 65.7869C1332.16 66.6314 1331.14 67.2914 1329.92 67.767C1328.71 68.233 1327.35 68.4659 1325.83 68.4659ZM1340.32 68V45.6364H1343.64V49.1307H1343.93C1344.4 47.9368 1345.15 47.0098 1346.19 46.3498C1347.23 45.68 1348.47 45.3452 1349.93 45.3452C1351.4 45.3452 1352.63 45.68 1353.61 46.3498C1354.6 47.0098 1355.37 47.9368 1355.93 49.1307H1356.16C1356.73 47.9756 1357.59 47.0584 1358.74 46.3789C1359.88 45.6897 1361.26 45.3452 1362.86 45.3452C1364.86 45.3452 1366.49 45.9712 1367.76 47.2234C1369.04 48.4658 1369.67 50.4022 1369.67 53.0327V68H1366.24V53.0327C1366.24 51.3826 1365.78 50.2032 1364.88 49.4947C1363.98 48.7861 1362.92 48.4318 1361.69 48.4318C1360.12 48.4318 1358.9 48.9074 1358.04 49.8587C1357.17 50.8002 1356.74 51.9941 1356.74 53.4403V68H1353.25V52.6832C1353.25 51.4117 1352.84 50.3877 1352.01 49.6112C1351.19 48.8249 1350.12 48.4318 1348.82 48.4318C1347.93 48.4318 1347.09 48.6696 1346.32 49.1452C1345.55 49.6209 1344.93 50.2809 1344.45 51.1254C1343.99 51.9601 1343.76 52.9259 1343.76 54.0227V68H1340.32ZM1385.33 68.4659C1383.18 68.4659 1381.32 67.9903 1379.75 67.0391C1378.2 66.0781 1377 64.7386 1376.16 63.0206C1375.32 61.2929 1374.91 59.2836 1374.91 56.9929C1374.91 54.7022 1375.32 52.6832 1376.16 50.9361C1377 49.1792 1378.18 47.8106 1379.68 46.8303C1381.2 45.8402 1382.96 45.3452 1384.98 45.3452C1386.15 45.3452 1387.3 45.5393 1388.43 45.9276C1389.57 46.3158 1390.6 46.9467 1391.53 47.8203C1392.46 48.6842 1393.21 49.8295 1393.76 51.2564C1394.31 52.6832 1394.59 54.4401 1394.59 56.527V57.983H1377.35V55.0128H1391.1C1391.1 53.7509 1390.84 52.625 1390.34 51.6349C1389.84 50.6449 1389.14 49.8635 1388.21 49.2908C1387.3 48.7182 1386.22 48.4318 1384.98 48.4318C1383.61 48.4318 1382.43 48.7715 1381.43 49.451C1380.44 50.1207 1379.68 50.9943 1379.14 52.0717C1378.61 53.1491 1378.34 54.3042 1378.34 55.5369V57.517C1378.34 59.206 1378.63 60.6377 1379.22 61.8121C1379.81 62.9769 1380.63 63.8651 1381.68 64.4766C1382.72 65.0784 1383.94 65.3793 1385.33 65.3793C1386.23 65.3793 1387.05 65.2531 1387.78 65.0007C1388.51 64.7386 1389.15 64.3504 1389.68 63.8359C1390.22 63.3118 1390.63 62.6615 1390.92 61.8849L1394.24 62.8168C1393.89 63.9427 1393.3 64.9328 1392.48 65.7869C1391.65 66.6314 1390.63 67.2914 1389.42 67.767C1388.21 68.233 1386.84 68.4659 1385.33 68.4659ZM1403.25 54.5469V68H1399.82V45.6364H1403.14V49.1307H1403.43C1403.95 47.995 1404.75 47.0826 1405.82 46.3935C1406.88 45.6946 1408.26 45.3452 1409.95 45.3452C1411.46 45.3452 1412.79 45.6558 1413.93 46.277C1415.06 46.8885 1415.94 47.8203 1416.58 49.0724C1417.21 50.3149 1417.52 51.8873 1417.52 53.7898V68H1414.09V54.0227C1414.09 52.2659 1413.63 50.8973 1412.72 49.9169C1411.8 48.9268 1410.55 48.4318 1408.96 48.4318C1407.86 48.4318 1406.88 48.6696 1406.02 49.1452C1405.17 49.6209 1404.49 50.3149 1404 51.2273C1403.5 52.1397 1403.25 53.2462 1403.25 54.5469ZM1433.53 45.6364V48.5483H1421.94V45.6364H1433.53ZM1425.31 40.2784H1428.75V61.5938C1428.75 62.5644 1428.89 63.2924 1429.17 63.7777C1429.46 64.2533 1429.83 64.5736 1430.28 64.7386C1430.74 64.8939 1431.22 64.9716 1431.72 64.9716C1432.1 64.9716 1432.41 64.9522 1432.65 64.9134C1432.9 64.8648 1433.09 64.826 1433.24 64.7969L1433.93 67.8835C1433.7 67.9709 1433.38 68.0582 1432.96 68.1456C1432.54 68.2427 1432.01 68.2912 1431.37 68.2912C1430.4 68.2912 1429.45 68.0825 1428.52 67.6651C1427.6 67.2478 1426.83 66.612 1426.22 65.7578C1425.62 64.9036 1425.31 63.8262 1425.31 62.5256V40.2784ZM1454.14 50.6449L1451.05 51.5185C1450.85 51.004 1450.57 50.5041 1450.19 50.0188C1449.82 49.5238 1449.32 49.1161 1448.68 48.7958C1448.04 48.4755 1447.22 48.3153 1446.22 48.3153C1444.85 48.3153 1443.71 48.6308 1442.79 49.2617C1441.89 49.8829 1441.44 50.674 1441.44 51.6349C1441.44 52.4891 1441.75 53.1637 1442.37 53.6587C1442.99 54.1538 1443.96 54.5663 1445.28 54.8963L1448.6 55.7116C1450.6 56.197 1452.09 56.9395 1453.07 57.9393C1454.05 58.9293 1454.54 60.2057 1454.54 61.7685C1454.54 63.0497 1454.17 64.1951 1453.44 65.2045C1452.71 66.214 1451.69 67.0099 1450.38 67.5923C1449.07 68.1747 1447.55 68.4659 1445.81 68.4659C1443.53 68.4659 1441.64 67.9709 1440.14 66.9808C1438.65 65.9908 1437.7 64.5445 1437.3 62.642L1440.57 61.8267C1440.88 63.0303 1441.46 63.933 1442.33 64.5348C1443.2 65.1366 1444.34 65.4375 1445.75 65.4375C1447.35 65.4375 1448.62 65.0978 1449.56 64.4183C1450.52 63.7292 1450.99 62.9041 1450.99 61.9432C1450.99 61.1667 1450.72 60.5163 1450.18 59.9922C1449.63 59.4583 1448.8 59.0604 1447.67 58.7983L1443.94 57.9247C1441.9 57.4394 1440.39 56.6871 1439.43 55.668C1438.48 54.6391 1438 53.353 1438 51.8097C1438 50.5478 1438.36 49.4316 1439.07 48.4609C1439.78 47.4903 1440.76 46.7283 1441.99 46.1751C1443.24 45.6218 1444.64 45.3452 1446.22 45.3452C1448.43 45.3452 1450.17 45.8305 1451.43 46.8011C1452.7 47.7718 1453.6 49.053 1454.14 50.6449Z\"\r\n fill=\"white\"\r\n />\r\n <path d=\"M983.429 76.1534H1456.58V78.9489H983.429V76.1534Z\" fill=\"white\" />\r\n <path\r\n id=\"Know your targeted unique value proposition\"\r\n d=\"M852.553 147V121.545H855.635V134.173H855.934L867.368 121.545H871.395L860.706 133.03L871.395 147H867.667L858.817 135.168L855.635 138.747V147H852.553ZM877.921 135.516V147H874.987V127.909H877.821V130.892H878.07C878.517 129.923 879.197 129.144 880.108 128.555C881.02 127.959 882.196 127.661 883.638 127.661C884.931 127.661 886.062 127.926 887.031 128.456C888.001 128.978 888.755 129.773 889.293 130.842C889.832 131.903 890.101 133.245 890.101 134.869V147H887.168V135.068C887.168 133.568 886.778 132.4 885.999 131.563C885.221 130.718 884.152 130.295 882.793 130.295C881.856 130.295 881.02 130.498 880.282 130.904C879.553 131.31 878.977 131.903 878.555 132.682C878.132 133.461 877.921 134.405 877.921 135.516ZM903.217 147.398C901.493 147.398 899.981 146.988 898.68 146.167C897.388 145.347 896.377 144.199 895.647 142.724C894.927 141.25 894.566 139.526 894.566 137.554C894.566 135.565 894.927 133.829 895.647 132.346C896.377 130.863 897.388 129.711 898.68 128.891C899.981 128.071 901.493 127.661 903.217 127.661C904.94 127.661 906.448 128.071 907.741 128.891C909.042 129.711 910.053 130.863 910.774 132.346C911.503 133.829 911.867 135.565 911.867 137.554C911.867 139.526 911.503 141.25 910.774 142.724C910.053 144.199 909.042 145.347 907.741 146.167C906.448 146.988 904.94 147.398 903.217 147.398ZM903.217 144.763C904.526 144.763 905.603 144.427 906.448 143.756C907.293 143.085 907.919 142.202 908.325 141.109C908.731 140.015 908.934 138.83 908.934 137.554C908.934 136.278 908.731 135.089 908.325 133.987C907.919 132.885 907.293 131.994 906.448 131.315C905.603 130.635 904.526 130.295 903.217 130.295C901.908 130.295 900.83 130.635 899.985 131.315C899.14 131.994 898.514 132.885 898.108 133.987C897.702 135.089 897.499 136.278 897.499 137.554C897.499 138.83 897.702 140.015 898.108 141.109C898.514 142.202 899.14 143.085 899.985 143.756C900.83 144.427 901.908 144.763 903.217 144.763ZM920.021 147L914.204 127.909H917.286L921.413 142.526H921.612L925.688 127.909H928.82L932.847 142.476H933.046L937.173 127.909H940.255L934.438 147H931.555L927.379 132.334H927.08L922.904 147H920.021ZM955.866 154.159C955.369 154.159 954.925 154.118 954.536 154.035C954.147 153.96 953.877 153.886 953.728 153.811L954.474 151.226C955.186 151.408 955.816 151.474 956.363 151.425C956.91 151.375 957.395 151.131 957.817 150.691C958.248 150.261 958.642 149.56 958.998 148.591L959.545 147.099L952.485 127.909H955.667L960.937 143.122H961.136L966.406 127.909H969.587L961.484 149.784C961.119 150.77 960.668 151.586 960.129 152.233C959.59 152.887 958.965 153.372 958.252 153.687C957.548 154.002 956.752 154.159 955.866 154.159ZM980.531 147.398C978.808 147.398 977.295 146.988 975.995 146.167C974.702 145.347 973.691 144.199 972.962 142.724C972.241 141.25 971.881 139.526 971.881 137.554C971.881 135.565 972.241 133.829 972.962 132.346C973.691 130.863 974.702 129.711 975.995 128.891C977.295 128.071 978.808 127.661 980.531 127.661C982.255 127.661 983.763 128.071 985.055 128.891C986.356 129.711 987.367 130.863 988.088 132.346C988.817 133.829 989.182 135.565 989.182 137.554C989.182 139.526 988.817 141.25 988.088 142.724C987.367 144.199 986.356 145.347 985.055 146.167C983.763 146.988 982.255 147.398 980.531 147.398ZM980.531 144.763C981.84 144.763 982.918 144.427 983.763 143.756C984.608 143.085 985.233 142.202 985.639 141.109C986.045 140.015 986.248 138.83 986.248 137.554C986.248 136.278 986.045 135.089 985.639 133.987C985.233 132.885 984.608 131.994 983.763 131.315C982.918 130.635 981.84 130.295 980.531 130.295C979.222 130.295 978.145 130.635 977.3 131.315C976.454 131.994 975.829 132.885 975.423 133.987C975.017 135.089 974.814 136.278 974.814 137.554C974.814 138.83 975.017 140.015 975.423 141.109C975.829 142.202 976.454 143.085 977.3 143.756C978.145 144.427 979.222 144.763 980.531 144.763ZM1005.69 139.195V127.909H1008.62V147H1005.69V143.768H1005.49C1005.04 144.738 1004.35 145.562 1003.4 146.242C1002.46 146.913 1001.27 147.249 999.824 147.249C998.631 147.249 997.57 146.988 996.642 146.466C995.714 145.935 994.985 145.14 994.455 144.079C993.924 143.01 993.659 141.664 993.659 140.04V127.909H996.593V139.841C996.593 141.233 996.982 142.343 997.761 143.172C998.548 144 999.551 144.415 1000.77 144.415C1001.5 144.415 1002.24 144.228 1002.99 143.855C1003.76 143.483 1004.39 142.911 1004.91 142.14C1005.43 141.37 1005.69 140.388 1005.69 139.195ZM1014 147V127.909H1016.83V130.793H1017.03C1017.38 129.848 1018.01 129.082 1018.92 128.493C1019.83 127.905 1020.86 127.611 1022 127.611C1022.22 127.611 1022.49 127.615 1022.81 127.623C1023.13 127.632 1023.38 127.644 1023.54 127.661V130.643C1023.44 130.619 1023.21 130.581 1022.86 130.532C1022.51 130.474 1022.14 130.445 1021.75 130.445C1020.82 130.445 1020 130.639 1019.27 131.029C1018.55 131.41 1017.97 131.94 1017.55 132.62C1017.14 133.291 1016.93 134.057 1016.93 134.919V147H1014ZM1045.16 127.909V130.395H1035.27V127.909H1045.16ZM1038.16 123.335H1041.09V141.531C1041.09 142.36 1041.21 142.981 1041.45 143.396C1041.7 143.802 1042.01 144.075 1042.39 144.216C1042.78 144.348 1043.19 144.415 1043.62 144.415C1043.95 144.415 1044.21 144.398 1044.42 144.365C1044.63 144.324 1044.79 144.29 1044.92 144.266L1045.51 146.901C1045.31 146.975 1045.04 147.05 1044.68 147.124C1044.32 147.207 1043.87 147.249 1043.33 147.249C1042.5 147.249 1041.68 147.07 1040.89 146.714C1040.1 146.358 1039.45 145.815 1038.93 145.086C1038.41 144.357 1038.16 143.437 1038.16 142.327V123.335ZM1055.2 147.447C1053.99 147.447 1052.89 147.22 1051.9 146.764C1050.92 146.3 1050.13 145.633 1049.55 144.763C1048.97 143.884 1048.68 142.824 1048.68 141.581C1048.68 140.487 1048.9 139.601 1049.33 138.921C1049.76 138.233 1050.34 137.695 1051.06 137.305C1051.78 136.916 1052.57 136.626 1053.44 136.435C1054.32 136.237 1055.2 136.079 1056.09 135.963C1057.25 135.814 1058.19 135.702 1058.91 135.627C1059.64 135.545 1060.17 135.408 1060.5 135.217C1060.84 135.027 1061.01 134.695 1061.01 134.223V134.124C1061.01 132.897 1060.68 131.944 1060.01 131.265C1059.34 130.585 1058.34 130.246 1056.98 130.246C1055.58 130.246 1054.49 130.552 1053.69 131.165C1052.9 131.779 1052.34 132.433 1052.01 133.129L1049.23 132.135C1049.73 130.975 1050.39 130.072 1051.22 129.425C1052.05 128.771 1052.97 128.315 1053.95 128.058C1054.95 127.793 1055.92 127.661 1056.89 127.661C1057.5 127.661 1058.2 127.735 1059 127.884C1059.8 128.025 1060.58 128.319 1061.32 128.767C1062.08 129.214 1062.7 129.889 1063.2 130.793C1063.7 131.696 1063.95 132.906 1063.95 134.422V147H1061.01V144.415H1060.86C1060.66 144.829 1060.33 145.272 1059.87 145.745C1059.4 146.217 1058.79 146.619 1058.02 146.95C1057.25 147.282 1056.31 147.447 1055.2 147.447ZM1055.64 144.812C1056.8 144.812 1057.78 144.585 1058.58 144.129C1059.38 143.673 1059.98 143.085 1060.39 142.364C1060.8 141.643 1061.01 140.885 1061.01 140.089V137.405C1060.89 137.554 1060.61 137.691 1060.19 137.815C1059.78 137.931 1059.3 138.035 1058.75 138.126C1058.21 138.209 1057.69 138.283 1057.17 138.349C1056.67 138.407 1056.26 138.457 1055.94 138.499C1055.18 138.598 1054.47 138.76 1053.8 138.983C1053.15 139.199 1052.62 139.526 1052.21 139.965C1051.81 140.396 1051.62 140.984 1051.62 141.73C1051.62 142.749 1051.99 143.52 1052.75 144.042C1053.51 144.556 1054.47 144.812 1055.64 144.812ZM1069.3 147V127.909H1072.13V130.793H1072.33C1072.68 129.848 1073.31 129.082 1074.22 128.493C1075.13 127.905 1076.16 127.611 1077.3 127.611C1077.52 127.611 1077.79 127.615 1078.11 127.623C1078.43 127.632 1078.68 127.644 1078.84 127.661V130.643C1078.74 130.619 1078.52 130.581 1078.16 130.532C1077.81 130.474 1077.44 130.445 1077.05 130.445C1076.13 130.445 1075.3 130.639 1074.57 131.029C1073.85 131.41 1073.28 131.94 1072.85 132.62C1072.44 133.291 1072.23 134.057 1072.23 134.919V147H1069.3ZM1089.45 154.557C1088.03 154.557 1086.81 154.375 1085.79 154.01C1084.77 153.654 1083.92 153.181 1083.24 152.593C1082.57 152.013 1082.04 151.392 1081.64 150.729L1083.98 149.088C1084.24 149.436 1084.58 149.834 1084.98 150.281C1085.39 150.737 1085.95 151.131 1086.65 151.462C1087.36 151.802 1088.29 151.972 1089.45 151.972C1090.99 151.972 1092.26 151.599 1093.26 150.853C1094.26 150.107 1094.77 148.939 1094.77 147.348V143.47H1094.52C1094.3 143.818 1094 144.249 1093.6 144.763C1093.21 145.268 1092.64 145.72 1091.91 146.118C1091.18 146.507 1090.19 146.702 1088.95 146.702C1087.41 146.702 1086.02 146.337 1084.8 145.608C1083.58 144.879 1082.61 143.818 1081.9 142.426C1081.2 141.034 1080.85 139.344 1080.85 137.355C1080.85 135.4 1081.19 133.697 1081.88 132.247C1082.56 130.788 1083.52 129.662 1084.75 128.866C1085.97 128.062 1087.39 127.661 1089 127.661C1090.24 127.661 1091.23 127.868 1091.96 128.282C1092.69 128.688 1093.26 129.152 1093.65 129.674C1094.05 130.188 1094.35 130.61 1094.57 130.942H1094.87V127.909H1097.7V147.547C1097.7 149.188 1097.33 150.522 1096.58 151.549C1095.84 152.585 1094.85 153.343 1093.6 153.824C1092.35 154.312 1090.97 154.557 1089.45 154.557ZM1089.35 144.067C1090.52 144.067 1091.52 143.797 1092.33 143.259C1093.14 142.72 1093.76 141.946 1094.18 140.935C1094.6 139.924 1094.82 138.714 1094.82 137.305C1094.82 135.93 1094.61 134.716 1094.19 133.664C1093.78 132.611 1093.17 131.787 1092.35 131.19C1091.54 130.594 1090.54 130.295 1089.35 130.295C1088.1 130.295 1087.07 130.61 1086.24 131.24C1085.42 131.87 1084.8 132.715 1084.39 133.776C1083.98 134.836 1083.78 136.013 1083.78 137.305C1083.78 138.631 1083.99 139.804 1084.4 140.823C1084.82 141.834 1085.44 142.629 1086.26 143.209C1087.09 143.781 1088.12 144.067 1089.35 144.067ZM1111.07 147.398C1109.23 147.398 1107.65 146.992 1106.31 146.18C1104.99 145.359 1103.96 144.216 1103.24 142.749C1102.53 141.274 1102.17 139.559 1102.17 137.604C1102.17 135.648 1102.53 133.925 1103.24 132.433C1103.96 130.933 1104.97 129.765 1106.25 128.928C1107.54 128.083 1109.05 127.661 1110.77 127.661C1111.77 127.661 1112.75 127.826 1113.72 128.158C1114.69 128.489 1115.57 129.028 1116.37 129.773C1117.16 130.511 1117.8 131.489 1118.27 132.707C1118.74 133.925 1118.98 135.424 1118.98 137.206V138.449H1104.26V135.913H1115.99C1115.99 134.836 1115.78 133.875 1115.35 133.03C1114.93 132.185 1114.32 131.518 1113.53 131.029C1112.75 130.54 1111.84 130.295 1110.77 130.295C1109.61 130.295 1108.6 130.585 1107.74 131.165C1106.9 131.737 1106.25 132.483 1105.79 133.403C1105.33 134.322 1105.11 135.308 1105.11 136.361V138.051C1105.11 139.493 1105.36 140.715 1105.85 141.718C1106.36 142.712 1107.06 143.47 1107.95 143.992C1108.85 144.506 1109.89 144.763 1111.07 144.763C1111.84 144.763 1112.54 144.655 1113.16 144.44C1113.79 144.216 1114.33 143.884 1114.79 143.445C1115.24 142.998 1115.6 142.443 1115.85 141.78L1118.68 142.575C1118.38 143.536 1117.88 144.382 1117.18 145.111C1116.47 145.832 1115.6 146.395 1114.57 146.801C1113.53 147.199 1112.37 147.398 1111.07 147.398ZM1131.74 127.909V130.395H1121.85V127.909H1131.74ZM1124.73 123.335H1127.67V141.531C1127.67 142.36 1127.79 142.981 1128.03 143.396C1128.27 143.802 1128.59 144.075 1128.97 144.216C1129.36 144.348 1129.77 144.415 1130.2 144.415C1130.52 144.415 1130.79 144.398 1131 144.365C1131.2 144.324 1131.37 144.29 1131.49 144.266L1132.09 146.901C1131.89 146.975 1131.61 147.05 1131.26 147.124C1130.9 147.207 1130.45 147.249 1129.9 147.249C1129.07 147.249 1128.26 147.07 1127.47 146.714C1126.68 146.358 1126.02 145.815 1125.5 145.086C1124.99 144.357 1124.73 143.437 1124.73 142.327V123.335ZM1143.95 147.398C1142.11 147.398 1140.53 146.992 1139.19 146.18C1137.87 145.359 1136.84 144.216 1136.12 142.749C1135.41 141.274 1135.05 139.559 1135.05 137.604C1135.05 135.648 1135.41 133.925 1136.12 132.433C1136.84 130.933 1137.85 129.765 1139.13 128.928C1140.42 128.083 1141.93 127.661 1143.66 127.661C1144.65 127.661 1145.63 127.826 1146.6 128.158C1147.57 128.489 1148.45 129.028 1149.25 129.773C1150.04 130.511 1150.68 131.489 1151.15 132.707C1151.62 133.925 1151.86 135.424 1151.86 137.206V138.449H1137.14V135.913H1148.88C1148.88 134.836 1148.66 133.875 1148.23 133.03C1147.81 132.185 1147.2 131.518 1146.41 131.029C1145.64 130.54 1144.72 130.295 1143.66 130.295C1142.49 130.295 1141.48 130.585 1140.62 131.165C1139.78 131.737 1139.13 132.483 1138.67 133.403C1138.22 134.322 1137.99 135.308 1137.99 136.361V138.051C1137.99 139.493 1138.24 140.715 1138.73 141.718C1139.24 142.712 1139.94 143.47 1140.83 143.992C1141.73 144.506 1142.77 144.763 1143.95 144.763C1144.72 144.763 1145.42 144.655 1146.04 144.44C1146.67 144.216 1147.21 143.884 1147.67 143.445C1148.13 142.998 1148.48 142.443 1148.73 141.78L1151.56 142.575C1151.26 143.536 1150.76 144.382 1150.06 145.111C1149.35 145.832 1148.48 146.395 1147.45 146.801C1146.41 147.199 1145.25 147.398 1143.95 147.398ZM1163.53 147.398C1161.94 147.398 1160.53 146.996 1159.32 146.192C1158.1 145.38 1157.14 144.237 1156.46 142.762C1155.77 141.279 1155.43 139.526 1155.43 137.504C1155.43 135.499 1155.77 133.759 1156.46 132.284C1157.14 130.809 1158.1 129.67 1159.33 128.866C1160.55 128.062 1161.97 127.661 1163.58 127.661C1164.82 127.661 1165.8 127.868 1166.52 128.282C1167.25 128.688 1167.81 129.152 1168.19 129.674C1168.58 130.188 1168.88 130.61 1169.1 130.942H1169.35V121.545H1172.28V147H1169.45V144.067H1169.1C1168.88 144.415 1168.58 144.854 1168.18 145.384C1167.78 145.906 1167.21 146.374 1166.47 146.789C1165.74 147.195 1164.76 147.398 1163.53 147.398ZM1163.93 144.763C1165.1 144.763 1166.1 144.456 1166.91 143.843C1167.72 143.222 1168.34 142.364 1168.76 141.27C1169.18 140.168 1169.4 138.896 1169.4 137.455C1169.4 136.029 1169.19 134.782 1168.77 133.713C1168.36 132.636 1167.75 131.799 1166.93 131.203C1166.12 130.598 1165.12 130.295 1163.93 130.295C1162.68 130.295 1161.65 130.614 1160.82 131.252C1160 131.882 1159.38 132.74 1158.97 133.825C1158.56 134.902 1158.36 136.112 1158.36 137.455C1158.36 138.813 1158.57 140.048 1158.98 141.158C1159.4 142.26 1160.02 143.139 1160.84 143.793C1161.67 144.44 1162.7 144.763 1163.93 144.763ZM1199.93 139.195V127.909H1202.87V147H1199.93V143.768H1199.73C1199.29 144.738 1198.59 145.562 1197.65 146.242C1196.7 146.913 1195.51 147.249 1194.07 147.249C1192.87 147.249 1191.81 146.988 1190.89 146.466C1189.96 145.935 1189.23 145.14 1188.7 144.079C1188.17 143.01 1187.9 141.664 1187.9 140.04V127.909H1190.84V139.841C1190.84 141.233 1191.23 142.343 1192 143.172C1192.79 144 1193.79 144.415 1195.01 144.415C1195.74 144.415 1196.48 144.228 1197.24 143.855C1198 143.483 1198.64 142.911 1199.15 142.14C1199.67 141.37 1199.93 140.388 1199.93 139.195ZM1211.17 135.516V147H1208.24V127.909H1211.07V130.892H1211.32C1211.77 129.923 1212.45 129.144 1213.36 128.555C1214.27 127.959 1215.45 127.661 1216.89 127.661C1218.18 127.661 1219.31 127.926 1220.28 128.456C1221.25 128.978 1222.01 129.773 1222.55 130.842C1223.08 131.903 1223.35 133.245 1223.35 134.869V147H1220.42V135.068C1220.42 133.568 1220.03 132.4 1219.25 131.563C1218.47 130.718 1217.4 130.295 1216.04 130.295C1215.11 130.295 1214.27 130.498 1213.53 130.904C1212.8 131.31 1212.23 131.903 1211.81 132.682C1211.38 133.461 1211.17 134.405 1211.17 135.516ZM1228.71 147V127.909H1231.65V147H1228.71ZM1230.2 124.727C1229.63 124.727 1229.14 124.533 1228.73 124.143C1228.32 123.754 1228.12 123.286 1228.12 122.739C1228.12 122.192 1228.32 121.724 1228.73 121.334C1229.14 120.945 1229.63 120.75 1230.2 120.75C1230.78 120.75 1231.27 120.945 1231.67 121.334C1232.09 121.724 1232.29 122.192 1232.29 122.739C1232.29 123.286 1232.09 123.754 1231.67 124.143C1231.27 124.533 1230.78 124.727 1230.2 124.727ZM1250.04 154.159V144.067H1249.8C1249.58 144.415 1249.27 144.854 1248.88 145.384C1248.48 145.906 1247.91 146.374 1247.17 146.789C1246.44 147.195 1245.45 147.398 1244.23 147.398C1242.64 147.398 1241.23 146.996 1240.01 146.192C1238.8 145.38 1237.84 144.237 1237.16 142.762C1236.47 141.279 1236.12 139.526 1236.12 137.504C1236.12 135.499 1236.47 133.759 1237.16 132.284C1237.84 130.809 1238.8 129.67 1240.03 128.866C1241.25 128.062 1242.67 127.661 1244.28 127.661C1245.52 127.661 1246.5 127.868 1247.22 128.282C1247.95 128.688 1248.51 129.152 1248.89 129.674C1249.28 130.188 1249.58 130.61 1249.8 130.942H1250.14V127.909H1252.98V154.159H1250.04ZM1244.63 144.763C1245.8 144.763 1246.8 144.456 1247.61 143.843C1248.42 143.222 1249.04 142.364 1249.46 141.27C1249.88 140.168 1250.09 138.896 1250.09 137.455C1250.09 136.029 1249.89 134.782 1249.47 133.713C1249.06 132.636 1248.45 131.799 1247.63 131.203C1246.82 130.598 1245.82 130.295 1244.63 130.295C1243.38 130.295 1242.35 130.614 1241.52 131.252C1240.7 131.882 1240.08 132.74 1239.67 133.825C1239.26 134.902 1239.06 136.112 1239.06 137.455C1239.06 138.813 1239.26 140.048 1239.68 141.158C1240.1 142.26 1240.72 143.139 1241.54 143.793C1242.37 144.44 1243.4 144.763 1244.63 144.763ZM1270.38 139.195V127.909H1273.31V147H1270.38V143.768H1270.18C1269.73 144.738 1269.04 145.562 1268.09 146.242C1267.15 146.913 1265.95 147.249 1264.51 147.249C1263.32 147.249 1262.26 146.988 1261.33 146.466C1260.4 145.935 1259.67 145.14 1259.14 144.079C1258.61 143.01 1258.35 141.664 1258.35 140.04V127.909H1261.28V139.841C1261.28 141.233 1261.67 142.343 1262.45 143.172C1263.24 144 1264.24 144.415 1265.46 144.415C1266.19 144.415 1266.93 144.228 1267.68 143.855C1268.44 143.483 1269.08 142.911 1269.59 142.14C1270.12 141.37 1270.38 140.388 1270.38 139.195ZM1286.69 147.398C1284.85 147.398 1283.26 146.992 1281.93 146.18C1280.6 145.359 1279.58 144.216 1278.86 142.749C1278.15 141.274 1277.79 139.559 1277.79 137.604C1277.79 135.648 1278.15 133.925 1278.86 132.433C1279.58 130.933 1280.58 129.765 1281.87 128.928C1283.16 128.083 1284.67 127.661 1286.39 127.661C1287.38 127.661 1288.37 127.826 1289.34 128.158C1290.3 128.489 1291.19 129.028 1291.98 129.773C1292.78 130.511 1293.41 131.489 1293.88 132.707C1294.36 133.925 1294.59 135.424 1294.59 137.206V138.449H1279.88V135.913H1291.61C1291.61 134.836 1291.39 133.875 1290.96 133.03C1290.54 132.185 1289.94 131.518 1289.15 131.029C1288.37 130.54 1287.45 130.295 1286.39 130.295C1285.22 130.295 1284.21 130.585 1283.36 131.165C1282.51 131.737 1281.86 132.483 1281.41 133.403C1280.95 134.322 1280.72 135.308 1280.72 136.361V138.051C1280.72 139.493 1280.97 140.715 1281.47 141.718C1281.97 142.712 1282.67 143.47 1283.57 143.992C1284.46 144.506 1285.5 144.763 1286.69 144.763C1287.46 144.763 1288.15 144.655 1288.78 144.44C1289.41 144.216 1289.95 143.884 1290.4 143.445C1290.86 142.998 1291.21 142.443 1291.46 141.78L1294.29 142.575C1294 143.536 1293.49 144.382 1292.79 145.111C1292.09 145.832 1291.22 146.395 1290.18 146.801C1289.14 147.199 1287.98 147.398 1286.69 147.398ZM1324.51 127.909L1317.45 147H1314.47L1307.41 127.909H1310.59L1315.86 143.122H1316.06L1321.33 127.909H1324.51ZM1333.42 147.447C1332.21 147.447 1331.11 147.22 1330.12 146.764C1329.14 146.3 1328.36 145.633 1327.78 144.763C1327.2 143.884 1326.91 142.824 1326.91 141.581C1326.91 140.487 1327.12 139.601 1327.55 138.921C1327.98 138.233 1328.56 137.695 1329.28 137.305C1330 136.916 1330.8 136.626 1331.67 136.435C1332.54 136.237 1333.43 136.079 1334.31 135.963C1335.47 135.814 1336.41 135.702 1337.13 135.627C1337.86 135.545 1338.39 135.408 1338.72 135.217C1339.06 135.027 1339.23 134.695 1339.23 134.223V134.124C1339.23 132.897 1338.9 131.944 1338.23 131.265C1337.56 130.585 1336.56 130.246 1335.21 130.246C1333.81 130.246 1332.71 130.552 1331.91 131.165C1331.12 131.779 1330.56 132.433 1330.24 133.129L1327.45 132.135C1327.95 130.975 1328.61 130.072 1329.44 129.425C1330.28 128.771 1331.19 128.315 1332.17 128.058C1333.17 127.793 1334.15 127.661 1335.11 127.661C1335.72 127.661 1336.43 127.735 1337.22 127.884C1338.02 128.025 1338.8 128.319 1339.55 128.767C1340.3 129.214 1340.92 129.889 1341.42 130.793C1341.92 131.696 1342.17 132.906 1342.17 134.422V147H1339.23V144.415H1339.09C1338.89 144.829 1338.56 145.272 1338.09 145.745C1337.63 146.217 1337.01 146.619 1336.24 146.95C1335.47 147.282 1334.53 147.447 1333.42 147.447ZM1333.87 144.812C1335.03 144.812 1336 144.585 1336.8 144.129C1337.6 143.673 1338.21 143.085 1338.61 142.364C1339.03 141.643 1339.23 140.885 1339.23 140.089V137.405C1339.11 137.554 1338.84 137.691 1338.41 137.815C1338 137.931 1337.52 138.035 1336.97 138.126C1336.43 138.209 1335.91 138.283 1335.39 138.349C1334.89 138.407 1334.48 138.457 1334.16 138.499C1333.4 138.598 1332.69 138.76 1332.03 138.983C1331.37 139.199 1330.84 139.526 1330.43 139.965C1330.04 140.396 1329.84 140.984 1329.84 141.73C1329.84 142.749 1330.22 143.52 1330.97 144.042C1331.73 144.556 1332.7 144.812 1333.87 144.812ZM1350.45 121.545V147H1347.52V121.545H1350.45ZM1367.86 139.195V127.909H1370.79V147H1367.86V143.768H1367.66C1367.21 144.738 1366.52 145.562 1365.57 146.242C1364.63 146.913 1363.43 147.249 1361.99 147.249C1360.8 147.249 1359.74 146.988 1358.81 146.466C1357.88 145.935 1357.15 145.14 1356.62 144.079C1356.09 143.01 1355.83 141.664 1355.83 140.04V127.909H1358.76V139.841C1358.76 141.233 1359.15 142.343 1359.93 143.172C1360.72 144 1361.72 144.415 1362.94 144.415C1363.67 144.415 1364.41 144.228 1365.16 143.855C1365.92 143.483 1366.56 142.911 1367.08 142.14C1367.6 141.37 1367.86 140.388 1367.86 139.195ZM1384.17 147.398C1382.33 147.398 1380.74 146.992 1379.41 146.18C1378.08 145.359 1377.06 144.216 1376.34 142.749C1375.63 141.274 1375.27 139.559 1375.27 137.604C1375.27 135.648 1375.63 133.925 1376.34 132.433C1377.06 130.933 1378.06 129.765 1379.35 128.928C1380.64 128.083 1382.15 127.661 1383.87 127.661C1384.86 127.661 1385.85 127.826 1386.82 128.158C1387.79 128.489 1388.67 129.028 1389.46 129.773C1390.26 130.511 1390.89 131.489 1391.36 132.707C1391.84 133.925 1392.07 135.424 1392.07 137.206V138.449H1377.36V135.913H1389.09C1389.09 134.836 1388.87 133.875 1388.44 133.03C1388.02 132.185 1387.42 131.518 1386.63 131.029C1385.85 130.54 1384.93 130.295 1383.87 130.295C1382.7 130.295 1381.69 130.585 1380.84 131.165C1379.99 131.737 1379.34 132.483 1378.89 133.403C1378.43 134.322 1378.2 135.308 1378.2 136.361V138.051C1378.2 139.493 1378.45 140.715 1378.95 141.718C1379.45 142.712 1380.15 143.47 1381.05 143.992C1381.94 144.506 1382.98 144.763 1384.17 144.763C1384.94 144.763 1385.64 144.655 1386.26 144.44C1386.89 144.216 1387.43 143.884 1387.88 143.445C1388.34 142.998 1388.69 142.443 1388.94 141.78L1391.77 142.575C1391.48 143.536 1390.98 144.382 1390.27 145.111C1389.57 145.832 1388.7 146.395 1387.66 146.801C1386.63 147.199 1385.46 147.398 1384.17 147.398ZM1406.38 154.159V127.909H1409.21V130.942H1409.56C1409.78 130.61 1410.07 130.188 1410.46 129.674C1410.85 129.152 1411.4 128.688 1412.12 128.282C1412.85 127.868 1413.84 127.661 1415.08 127.661C1416.69 127.661 1418.1 128.062 1419.33 128.866C1420.56 129.67 1421.51 130.809 1422.2 132.284C1422.89 133.759 1423.23 135.499 1423.23 137.504C1423.23 139.526 1422.89 141.279 1422.2 142.762C1421.51 144.237 1420.56 145.38 1419.34 146.192C1418.12 146.996 1416.72 147.398 1415.13 147.398C1413.9 147.398 1412.92 147.195 1412.18 146.789C1411.45 146.374 1410.88 145.906 1410.48 145.384C1410.08 144.854 1409.78 144.415 1409.56 144.067H1409.31V154.159H1406.38ZM1409.26 137.455C1409.26 138.896 1409.47 140.168 1409.9 141.27C1410.32 142.364 1410.94 143.222 1411.75 143.843C1412.56 144.456 1413.55 144.763 1414.73 144.763C1415.96 144.763 1416.98 144.44 1417.8 143.793C1418.63 143.139 1419.25 142.26 1419.67 141.158C1420.09 140.048 1420.3 138.813 1420.3 137.455C1420.3 136.112 1420.09 134.902 1419.68 133.825C1419.27 132.74 1418.65 131.882 1417.83 131.252C1417.01 130.614 1415.97 130.295 1414.73 130.295C1413.54 130.295 1412.54 130.598 1411.72 131.203C1410.91 131.799 1410.3 132.636 1409.88 133.713C1409.47 134.782 1409.26 136.029 1409.26 137.455ZM1427.71 147V127.909H1430.54V130.793H1430.74C1431.09 129.848 1431.72 129.082 1432.63 128.493C1433.54 127.905 1434.57 127.611 1435.71 127.611C1435.93 127.611 1436.2 127.615 1436.52 127.623C1436.84 127.632 1437.09 127.644 1437.25 127.661V130.643C1437.15 130.619 1436.93 130.581 1436.57 130.532C1436.22 130.474 1435.85 130.445 1435.46 130.445C1434.53 130.445 1433.71 130.639 1432.98 131.029C1432.26 131.41 1431.68 131.94 1431.26 132.62C1430.85 133.291 1430.64 134.057 1430.64 134.919V147H1427.71ZM1447.9 147.398C1446.18 147.398 1444.67 146.988 1443.37 146.167C1442.08 145.347 1441.06 144.199 1440.33 142.724C1439.61 141.25 1439.25 139.526 1439.25 137.554C1439.25 135.565 1439.61 133.829 1440.33 132.346C1441.06 130.863 1442.08 129.711 1443.37 128.891C1444.67 128.071 1446.18 127.661 1447.9 127.661C1449.63 127.661 1451.14 128.071 1452.43 128.891C1453.73 129.711 1454.74 130.863 1455.46 132.346C1456.19 133.829 1456.55 135.565 1456.55 137.554C1456.55 139.526 1456.19 141.25 1455.46 142.724C1454.74 144.199 1453.73 145.347 1452.43 146.167C1451.14 146.988 1449.63 147.398 1447.9 147.398ZM1447.9 144.763C1449.21 144.763 1450.29 144.427 1451.14 143.756C1451.98 143.085 1452.61 142.202 1453.01 141.109C1453.42 140.015 1453.62 138.83 1453.62 137.554C1453.62 136.278 1453.42 135.089 1453.01 133.987C1452.61 132.885 1451.98 131.994 1451.14 131.315C1450.29 130.635 1449.21 130.295 1447.9 130.295C1446.6 130.295 1445.52 130.635 1444.67 131.315C1443.83 131.994 1443.2 132.885 1442.8 133.987C1442.39 135.089 1442.19 136.278 1442.19 137.554C1442.19 138.83 1442.39 140.015 1442.8 141.109C1443.2 142.202 1443.83 143.085 1444.67 143.756C1445.52 144.427 1446.6 144.763 1447.9 144.763ZM1461.03 154.159V127.909H1463.87V130.942H1464.21C1464.43 130.61 1464.73 130.188 1465.11 129.674C1465.5 129.152 1466.05 128.688 1466.77 128.282C1467.5 127.868 1468.49 127.661 1469.73 127.661C1471.34 127.661 1472.76 128.062 1473.98 128.866C1475.21 129.67 1476.17 130.809 1476.85 132.284C1477.54 133.759 1477.89 135.499 1477.89 137.504C1477.89 139.526 1477.54 141.279 1476.85 142.762C1476.17 144.237 1475.21 145.38 1474 146.192C1472.78 146.996 1471.37 147.398 1469.78 147.398C1468.56 147.398 1467.57 147.195 1466.84 146.789C1466.1 146.374 1465.53 145.906 1465.13 145.384C1464.74 144.854 1464.43 144.415 1464.21 144.067H1463.97V154.159H1461.03ZM1463.92 137.455C1463.92 138.896 1464.13 140.168 1464.55 141.27C1464.97 142.364 1465.59 143.222 1466.4 143.843C1467.21 144.456 1468.21 144.763 1469.38 144.763C1470.61 144.763 1471.63 144.44 1472.45 143.793C1473.28 143.139 1473.9 142.26 1474.32 141.158C1474.74 140.048 1474.95 138.813 1474.95 137.455C1474.95 136.112 1474.75 134.902 1474.33 133.825C1473.93 132.74 1473.31 131.882 1472.48 131.252C1471.66 130.614 1470.63 130.295 1469.38 130.295C1468.19 130.295 1467.19 130.598 1466.38 131.203C1465.56 131.799 1464.95 132.636 1464.54 133.713C1464.12 134.782 1463.92 136.029 1463.92 137.455ZM1490.12 147.398C1488.39 147.398 1486.88 146.988 1485.58 146.167C1484.29 145.347 1483.28 144.199 1482.55 142.724C1481.83 141.25 1481.47 139.526 1481.47 137.554C1481.47 135.565 1481.83 133.829 1482.55 132.346C1483.28 130.863 1484.29 129.711 1485.58 128.891C1486.88 128.071 1488.39 127.661 1490.12 127.661C1491.84 127.661 1493.35 128.071 1494.64 128.891C1495.94 129.711 1496.95 130.863 1497.67 132.346C1498.4 133.829 1498.77 135.565 1498.77 137.554C1498.77 139.526 1498.4 141.25 1497.67 142.724C1496.95 144.199 1495.94 145.347 1494.64 146.167C1493.35 146.988 1491.84 147.398 1490.12 147.398ZM1490.12 144.763C1491.43 144.763 1492.5 144.427 1493.35 143.756C1494.19 143.085 1494.82 142.202 1495.22 141.109C1495.63 140.015 1495.83 138.83 1495.83 137.554C1495.83 136.278 1495.63 135.089 1495.22 133.987C1494.82 132.885 1494.19 131.994 1493.35 131.315C1492.5 130.635 1491.43 130.295 1490.12 130.295C1488.81 130.295 1487.73 130.635 1486.88 131.315C1486.04 131.994 1485.41 132.885 1485.01 133.987C1484.6 135.089 1484.4 136.278 1484.4 137.554C1484.4 138.83 1484.6 140.015 1485.01 141.109C1485.41 142.202 1486.04 143.085 1486.88 143.756C1487.73 144.427 1488.81 144.763 1490.12 144.763ZM1516.77 132.185L1514.13 132.93C1513.97 132.491 1513.72 132.065 1513.4 131.65C1513.08 131.228 1512.65 130.88 1512.11 130.606C1511.56 130.333 1510.86 130.196 1510.01 130.196C1508.84 130.196 1507.86 130.465 1507.08 131.004C1506.31 131.534 1505.93 132.21 1505.93 133.03C1505.93 133.759 1506.19 134.335 1506.72 134.757C1507.25 135.18 1508.08 135.532 1509.21 135.814L1512.04 136.51C1513.75 136.924 1515.02 137.558 1515.86 138.412C1516.7 139.257 1517.11 140.346 1517.11 141.68C1517.11 142.774 1516.8 143.752 1516.17 144.614C1515.55 145.475 1514.68 146.155 1513.56 146.652C1512.44 147.149 1511.14 147.398 1509.66 147.398C1507.71 147.398 1506.1 146.975 1504.82 146.13C1503.55 145.285 1502.74 144.05 1502.4 142.426L1505.18 141.73C1505.45 142.758 1505.95 143.528 1506.69 144.042C1507.43 144.556 1508.41 144.812 1509.61 144.812C1510.98 144.812 1512.06 144.522 1512.86 143.942C1513.68 143.354 1514.08 142.65 1514.08 141.83C1514.08 141.167 1513.85 140.612 1513.39 140.164C1512.92 139.708 1512.21 139.369 1511.25 139.145L1508.07 138.399C1506.32 137.985 1505.03 137.343 1504.21 136.473C1503.4 135.594 1503 134.496 1503 133.179C1503 132.102 1503.3 131.149 1503.9 130.32C1504.52 129.492 1505.35 128.841 1506.4 128.369C1507.46 127.897 1508.66 127.661 1510.01 127.661C1511.89 127.661 1513.38 128.075 1514.46 128.903C1515.54 129.732 1516.31 130.826 1516.77 132.185ZM1521.53 147V127.909H1524.46V147H1521.53ZM1523.02 124.727C1522.45 124.727 1521.96 124.533 1521.54 124.143C1521.14 123.754 1520.93 123.286 1520.93 122.739C1520.93 122.192 1521.14 121.724 1521.54 121.334C1521.96 120.945 1522.45 120.75 1523.02 120.75C1523.59 120.75 1524.08 120.945 1524.49 121.334C1524.9 121.724 1525.11 122.192 1525.11 122.739C1525.11 123.286 1524.9 123.754 1524.49 124.143C1524.08 124.533 1523.59 124.727 1523.02 124.727ZM1538.14 127.909V130.395H1528.25V127.909H1538.14ZM1531.13 123.335H1534.06V141.531C1534.06 142.36 1534.18 142.981 1534.42 143.396C1534.67 143.802 1534.99 144.075 1535.37 144.216C1535.76 144.348 1536.17 144.415 1536.6 144.415C1536.92 144.415 1537.19 144.398 1537.39 144.365C1537.6 144.324 1537.77 144.29 1537.89 144.266L1538.49 146.901C1538.29 146.975 1538.01 147.05 1537.65 147.124C1537.3 147.207 1536.85 147.249 1536.3 147.249C1535.47 147.249 1534.66 147.07 1533.86 146.714C1533.08 146.358 1532.42 145.815 1531.9 145.086C1531.39 144.357 1531.13 143.437 1531.13 142.327V123.335ZM1542.55 147V127.909H1545.48V147H1542.55ZM1544.04 124.727C1543.47 124.727 1542.98 124.533 1542.56 124.143C1542.16 123.754 1541.95 123.286 1541.95 122.739C1541.95 122.192 1542.16 121.724 1542.56 121.334C1542.98 120.945 1543.47 120.75 1544.04 120.75C1544.61 120.75 1545.1 120.945 1545.51 121.334C1545.92 121.724 1546.13 122.192 1546.13 122.739C1546.13 123.286 1545.92 123.754 1545.51 124.143C1545.1 124.533 1544.61 124.727 1544.04 124.727ZM1558.61 147.398C1556.89 147.398 1555.38 146.988 1554.08 146.167C1552.78 145.347 1551.77 144.199 1551.04 142.724C1550.32 141.25 1549.96 139.526 1549.96 137.554C1549.96 135.565 1550.32 133.829 1551.04 132.346C1551.77 130.863 1552.78 129.711 1554.08 128.891C1555.38 128.071 1556.89 127.661 1558.61 127.661C1560.34 127.661 1561.84 128.071 1563.14 128.891C1564.44 129.711 1565.45 130.863 1566.17 132.346C1566.9 133.829 1567.26 135.565 1567.26 137.554C1567.26 139.526 1566.9 141.25 1566.17 142.724C1565.45 144.199 1564.44 145.347 1563.14 146.167C1561.84 146.988 1560.34 147.398 1558.61 147.398ZM1558.61 144.763C1559.92 144.763 1561 144.427 1561.84 143.756C1562.69 143.085 1563.31 142.202 1563.72 141.109C1564.13 140.015 1564.33 138.83 1564.33 137.554C1564.33 136.278 1564.13 135.089 1563.72 133.987C1563.31 132.885 1562.69 131.994 1561.84 131.315C1561 130.635 1559.92 130.295 1558.61 130.295C1557.3 130.295 1556.23 130.635 1555.38 131.315C1554.54 131.994 1553.91 132.885 1553.5 133.987C1553.1 135.089 1552.89 136.278 1552.89 137.554C1552.89 138.83 1553.1 140.015 1553.5 141.109C1553.91 142.202 1554.54 143.085 1555.38 143.756C1556.23 144.427 1557.3 144.763 1558.61 144.763ZM1574.67 135.516V147H1571.74V127.909H1574.57V130.892H1574.82C1575.27 129.923 1575.95 129.144 1576.86 128.555C1577.77 127.959 1578.95 127.661 1580.39 127.661C1581.68 127.661 1582.81 127.926 1583.78 128.456C1584.75 128.978 1585.51 129.773 1586.05 130.842C1586.58 131.903 1586.85 133.245 1586.85 134.869V147H1583.92V135.068C1583.92 133.568 1583.53 132.4 1582.75 131.563C1581.97 130.718 1580.9 130.295 1579.55 130.295C1578.61 130.295 1577.77 130.498 1577.04 130.904C1576.31 131.31 1575.73 131.903 1575.31 132.682C1574.88 133.461 1574.67 134.405 1574.67 135.516Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n </svg>\r\n );\r\n}\r\n","export default function Map() {\r\n return <div style={{ minHeight: window.innerHeight - 100 }}>Map</div>;\r\n}\r\n","import { useNavigate } from \"react-router-dom\";\r\nimport { Pathways } from \"lib/data/Pathways\";\r\n\r\nexport default function UniqueValueMap() {\r\n const navigate = useNavigate();\r\n const paths: { [key: string]: string } = {\r\n JobsToBeDone: Pathways.CJobsToBeDonePathway.url,\r\n PainPoints: Pathways.PainPointsPathway.url,\r\n UniqueValue: Pathways.UniqueValuePathway.url,\r\n };\r\n function ClickHandler(id: string) {\r\n return () => {\r\n navigate(paths[id] ?? \"\");\r\n };\r\n }\r\n return (\r\n <div>\r\n <svg\r\n width=\"2564\"\r\n height=\"2102\"\r\n viewBox=\"0 0 2564 2132\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className=\"w-100 h-100\"\r\n >\r\n <g id=\"BuyerUtilityMap\" className=\"map-btn\" onClick={ClickHandler(\"BuyerUtilityMap\")}>\r\n <rect\r\n id=\"Rectangle 22\"\r\n x=\"2273.5\"\r\n y=\"367.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Buyer Utility Map\"\r\n d=\"M2280.11 445V419.545H2289.01C2290.79 419.545 2292.25 419.852 2293.4 420.465C2294.55 421.07 2295.41 421.886 2295.97 422.914C2296.54 423.933 2296.82 425.064 2296.82 426.307C2296.82 427.401 2296.62 428.304 2296.23 429.016C2295.85 429.729 2295.35 430.292 2294.72 430.707C2294.1 431.121 2293.42 431.428 2292.69 431.626V431.875C2293.47 431.925 2294.25 432.198 2295.04 432.695C2295.83 433.192 2296.49 433.905 2297.02 434.833C2297.55 435.761 2297.81 436.896 2297.81 438.239C2297.81 439.515 2297.52 440.662 2296.94 441.681C2296.36 442.701 2295.45 443.509 2294.19 444.105C2292.94 444.702 2291.32 445 2289.31 445H2280.11ZM2283.2 442.266H2289.31C2291.32 442.266 2292.75 441.876 2293.6 441.097C2294.45 440.31 2294.88 439.357 2294.88 438.239C2294.88 437.377 2294.66 436.581 2294.22 435.852C2293.78 435.115 2293.15 434.527 2292.34 434.087C2291.53 433.64 2290.57 433.416 2289.46 433.416H2283.2V442.266ZM2283.2 430.732H2288.91C2289.84 430.732 2290.68 430.549 2291.42 430.185C2292.18 429.82 2292.77 429.306 2293.21 428.643C2293.66 427.981 2293.88 427.202 2293.88 426.307C2293.88 425.188 2293.49 424.239 2292.72 423.461C2291.94 422.673 2290.7 422.28 2289.01 422.28H2283.2V430.732ZM2314.51 437.195V425.909H2317.44V445H2314.51V441.768H2314.31C2313.86 442.738 2313.17 443.562 2312.22 444.242C2311.28 444.913 2310.09 445.249 2308.64 445.249C2307.45 445.249 2306.39 444.988 2305.46 444.466C2304.53 443.935 2303.8 443.14 2303.27 442.079C2302.74 441.01 2302.48 439.664 2302.48 438.04V425.909H2305.41V437.841C2305.41 439.233 2305.8 440.343 2306.58 441.172C2307.37 442 2308.37 442.415 2309.59 442.415C2310.32 442.415 2311.06 442.228 2311.81 441.855C2312.58 441.483 2313.21 440.911 2313.73 440.14C2314.25 439.37 2314.51 438.388 2314.51 437.195ZM2324.7 452.159C2324.21 452.159 2323.76 452.118 2323.37 452.035C2322.99 451.96 2322.72 451.886 2322.57 451.811L2323.31 449.226C2324.03 449.408 2324.66 449.474 2325.2 449.425C2325.75 449.375 2326.23 449.131 2326.66 448.691C2327.09 448.261 2327.48 447.56 2327.84 446.591L2328.38 445.099L2321.32 425.909H2324.51L2329.78 441.122H2329.97L2335.24 425.909H2338.43L2330.32 447.784C2329.96 448.77 2329.51 449.586 2328.97 450.233C2328.43 450.887 2327.8 451.372 2327.09 451.687C2326.39 452.002 2325.59 452.159 2324.7 452.159ZM2349.62 445.398C2347.78 445.398 2346.19 444.992 2344.86 444.18C2343.53 443.359 2342.51 442.216 2341.79 440.749C2341.08 439.274 2340.72 437.559 2340.72 435.604C2340.72 433.648 2341.08 431.925 2341.79 430.433C2342.51 428.933 2343.51 427.765 2344.8 426.928C2346.09 426.083 2347.6 425.661 2349.32 425.661C2350.31 425.661 2351.3 425.826 2352.27 426.158C2353.24 426.489 2354.12 427.028 2354.91 427.773C2355.71 428.511 2356.34 429.489 2356.81 430.707C2357.29 431.925 2357.52 433.424 2357.52 435.206V436.449H2342.81V433.913H2354.54C2354.54 432.836 2354.33 431.875 2353.89 431.03C2353.47 430.185 2352.87 429.518 2352.08 429.029C2351.3 428.54 2350.38 428.295 2349.32 428.295C2348.15 428.295 2347.14 428.585 2346.29 429.165C2345.44 429.737 2344.79 430.483 2344.34 431.403C2343.88 432.322 2343.65 433.308 2343.65 434.361V436.051C2343.65 437.493 2343.9 438.715 2344.4 439.718C2344.9 440.712 2345.6 441.47 2346.5 441.992C2347.39 442.506 2348.43 442.763 2349.62 442.763C2350.39 442.763 2351.09 442.655 2351.71 442.44C2352.34 442.216 2352.88 441.884 2353.33 441.445C2353.79 440.998 2354.14 440.443 2354.39 439.78L2357.23 440.575C2356.93 441.536 2356.43 442.382 2355.72 443.111C2355.02 443.832 2354.15 444.395 2353.11 444.801C2352.08 445.199 2350.91 445.398 2349.62 445.398ZM2361.99 445V425.909H2364.82V428.793H2365.02C2365.37 427.848 2366 427.082 2366.91 426.493C2367.82 425.905 2368.85 425.611 2369.99 425.611C2370.21 425.611 2370.47 425.615 2370.8 425.623C2371.12 425.632 2371.37 425.644 2371.53 425.661V428.643C2371.43 428.619 2371.2 428.581 2370.85 428.532C2370.5 428.474 2370.13 428.445 2369.74 428.445C2368.81 428.445 2367.98 428.639 2367.26 429.029C2366.53 429.41 2365.96 429.94 2365.54 430.62C2365.13 431.291 2364.92 432.057 2364.92 432.919V445H2361.99ZM2401.95 419.545H2405.04V436.399C2405.04 438.139 2404.63 439.693 2403.81 441.06C2402.99 442.419 2401.85 443.492 2400.36 444.279C2398.88 445.058 2397.14 445.447 2395.14 445.447C2393.15 445.447 2391.41 445.058 2389.92 444.279C2388.44 443.492 2387.29 442.419 2386.47 441.06C2385.66 439.693 2385.25 438.139 2385.25 436.399V419.545H2388.33V436.151C2388.33 437.393 2388.61 438.5 2389.15 439.469C2389.7 440.43 2390.48 441.188 2391.49 441.744C2392.51 442.29 2393.73 442.564 2395.14 442.564C2396.56 442.564 2397.78 442.29 2398.8 441.744C2399.82 441.188 2400.6 440.43 2401.13 439.469C2401.68 438.5 2401.95 437.393 2401.95 436.151V419.545ZM2419.1 425.909V428.395H2409.2V425.909H2419.1ZM2412.09 421.335H2415.02V439.531C2415.02 440.36 2415.14 440.981 2415.38 441.396C2415.63 441.802 2415.94 442.075 2416.32 442.216C2416.71 442.348 2417.12 442.415 2417.56 442.415C2417.88 442.415 2418.14 442.398 2418.35 442.365C2418.56 442.324 2418.72 442.29 2418.85 442.266L2419.44 444.901C2419.25 444.975 2418.97 445.05 2418.61 445.124C2418.26 445.207 2417.8 445.249 2417.26 445.249C2416.43 445.249 2415.62 445.07 2414.82 444.714C2414.03 444.358 2413.38 443.815 2412.86 443.086C2412.34 442.357 2412.09 441.437 2412.09 440.327V421.335ZM2423.51 445V425.909H2426.44V445H2423.51ZM2425 422.727C2424.43 422.727 2423.94 422.533 2423.52 422.143C2423.12 421.754 2422.91 421.286 2422.91 420.739C2422.91 420.192 2423.12 419.724 2423.52 419.334C2423.94 418.945 2424.43 418.75 2425 418.75C2425.57 418.75 2426.06 418.945 2426.47 419.334C2426.88 419.724 2427.09 420.192 2427.09 420.739C2427.09 421.286 2426.88 421.754 2426.47 422.143C2426.06 422.533 2425.57 422.727 2425 422.727ZM2434.75 419.545V445H2431.81V419.545H2434.75ZM2440.12 445V425.909H2443.05V445H2440.12ZM2441.61 422.727C2441.04 422.727 2440.55 422.533 2440.13 422.143C2439.73 421.754 2439.52 421.286 2439.52 420.739C2439.52 420.192 2439.73 419.724 2440.13 419.334C2440.55 418.945 2441.04 418.75 2441.61 418.75C2442.18 418.75 2442.67 418.945 2443.08 419.334C2443.49 419.724 2443.7 420.192 2443.7 420.739C2443.7 421.286 2443.49 421.754 2443.08 422.143C2442.67 422.533 2442.18 422.727 2441.61 422.727ZM2456.73 425.909V428.395H2446.83V425.909H2456.73ZM2449.72 421.335H2452.65V439.531C2452.65 440.36 2452.77 440.981 2453.01 441.396C2453.26 441.802 2453.58 442.075 2453.96 442.216C2454.35 442.348 2454.76 442.415 2455.19 442.415C2455.51 442.415 2455.78 442.398 2455.98 442.365C2456.19 442.324 2456.36 442.29 2456.48 442.266L2457.08 444.901C2456.88 444.975 2456.6 445.05 2456.24 445.124C2455.89 445.207 2455.44 445.249 2454.89 445.249C2454.06 445.249 2453.25 445.07 2452.45 444.714C2451.67 444.358 2451.01 443.815 2450.49 443.086C2449.98 442.357 2449.72 441.437 2449.72 440.327V421.335ZM2463.03 452.159C2462.53 452.159 2462.09 452.118 2461.7 452.035C2461.31 451.96 2461.04 451.886 2460.89 451.811L2461.64 449.226C2462.35 449.408 2462.98 449.474 2463.53 449.425C2464.07 449.375 2464.56 449.131 2464.98 448.691C2465.41 448.261 2465.81 447.56 2466.16 446.591L2466.71 445.099L2459.65 425.909H2462.83L2468.1 441.122H2468.3L2473.57 425.909H2476.75L2468.65 447.784C2468.28 448.77 2467.83 449.586 2467.29 450.233C2466.75 450.887 2466.13 451.372 2465.42 451.687C2464.71 452.002 2463.92 452.159 2463.03 452.159ZM2490.86 419.545H2494.54L2503.19 440.675H2503.49L2512.14 419.545H2515.82V445H2512.94V425.661H2512.69L2504.74 445H2501.95L2494 425.661H2493.75V445H2490.86V419.545ZM2527.22 445.447C2526.01 445.447 2524.91 445.22 2523.93 444.764C2522.94 444.3 2522.16 443.633 2521.58 442.763C2521 441.884 2520.71 440.824 2520.71 439.581C2520.71 438.487 2520.93 437.601 2521.36 436.921C2521.79 436.233 2522.36 435.695 2523.08 435.305C2523.8 434.916 2524.6 434.626 2525.47 434.435C2526.35 434.237 2527.23 434.079 2528.12 433.963C2529.28 433.814 2530.22 433.702 2530.94 433.627C2531.67 433.545 2532.2 433.408 2532.53 433.217C2532.87 433.027 2533.04 432.695 2533.04 432.223V432.124C2533.04 430.897 2532.7 429.944 2532.03 429.265C2531.37 428.585 2530.36 428.246 2529.01 428.246C2527.61 428.246 2526.51 428.552 2525.72 429.165C2524.92 429.779 2524.36 430.433 2524.04 431.129L2521.26 430.135C2521.75 428.975 2522.42 428.072 2523.25 427.425C2524.08 426.771 2524.99 426.315 2525.98 426.058C2526.97 425.793 2527.95 425.661 2528.91 425.661C2529.53 425.661 2530.23 425.735 2531.03 425.884C2531.83 426.025 2532.6 426.319 2533.35 426.767C2534.1 427.214 2534.73 427.889 2535.23 428.793C2535.72 429.696 2535.97 430.906 2535.97 432.422V445H2533.04V442.415H2532.89C2532.69 442.829 2532.36 443.272 2531.9 443.745C2531.43 444.217 2530.81 444.619 2530.04 444.95C2529.27 445.282 2528.33 445.447 2527.22 445.447ZM2527.67 442.812C2528.83 442.812 2529.81 442.585 2530.6 442.129C2531.41 441.673 2532.01 441.085 2532.42 440.364C2532.83 439.643 2533.04 438.885 2533.04 438.089V435.405C2532.91 435.554 2532.64 435.691 2532.22 435.815C2531.8 435.931 2531.32 436.035 2530.78 436.126C2530.24 436.209 2529.71 436.283 2529.2 436.349C2528.69 436.407 2528.28 436.457 2527.97 436.499C2527.21 436.598 2526.49 436.76 2525.83 436.983C2525.18 437.199 2524.65 437.526 2524.24 437.965C2523.84 438.396 2523.64 438.984 2523.64 439.73C2523.64 440.749 2524.02 441.52 2524.77 442.042C2525.54 442.556 2526.5 442.812 2527.67 442.812ZM2541.33 452.159V425.909H2544.16V428.942H2544.51C2544.72 428.61 2545.02 428.188 2545.4 427.674C2545.79 427.152 2546.35 426.688 2547.07 426.282C2547.8 425.868 2548.78 425.661 2550.03 425.661C2551.63 425.661 2553.05 426.062 2554.28 426.866C2555.5 427.67 2556.46 428.809 2557.15 430.284C2557.84 431.759 2558.18 433.499 2558.18 435.504C2558.18 437.526 2557.84 439.279 2557.15 440.762C2556.46 442.237 2555.51 443.38 2554.29 444.192C2553.07 444.996 2551.67 445.398 2550.08 445.398C2548.85 445.398 2547.87 445.195 2547.13 444.789C2546.39 444.374 2545.83 443.906 2545.43 443.384C2545.03 442.854 2544.72 442.415 2544.51 442.067H2544.26V452.159H2541.33ZM2544.21 435.455C2544.21 436.896 2544.42 438.168 2544.84 439.27C2545.27 440.364 2545.88 441.222 2546.7 441.843C2547.51 442.456 2548.5 442.763 2549.68 442.763C2550.9 442.763 2551.93 442.44 2552.75 441.793C2553.58 441.139 2554.2 440.26 2554.61 439.158C2555.04 438.048 2555.25 436.813 2555.25 435.455C2555.25 434.112 2555.04 432.902 2554.63 431.825C2554.22 430.74 2553.6 429.882 2552.77 429.252C2551.95 428.614 2550.92 428.295 2549.68 428.295C2548.49 428.295 2547.48 428.598 2546.67 429.203C2545.86 429.799 2545.25 430.636 2544.83 431.713C2544.42 432.782 2544.21 434.029 2544.21 435.455Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g\r\n id=\"ThreeLevelsOfProduct\"\r\n className=\"map-btn\"\r\n onClick={ClickHandler(\"ThreeLevelsOfProduct\")}\r\n >\r\n <rect\r\n id=\"Rectangle 21\"\r\n x=\"1808.5\"\r\n y=\"367.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"3 Levels of Product\"\r\n d=\"M1874.38 424.348C1872.74 424.348 1871.28 424.066 1869.99 423.503C1868.72 422.939 1867.7 422.156 1866.95 421.154C1866.2 420.143 1865.8 418.97 1865.73 417.636H1868.86C1868.93 418.457 1869.21 419.165 1869.71 419.762C1870.21 420.35 1870.86 420.806 1871.66 421.129C1872.46 421.452 1873.35 421.614 1874.33 421.614C1875.43 421.614 1876.4 421.423 1877.24 421.042C1878.09 420.661 1878.75 420.13 1879.23 419.451C1879.71 418.772 1879.95 417.984 1879.95 417.089C1879.95 416.153 1879.72 415.329 1879.25 414.616C1878.79 413.895 1878.11 413.332 1877.22 412.926C1876.32 412.52 1875.23 412.317 1873.93 412.317H1871.9V409.582H1873.93C1874.95 409.582 1875.83 409.4 1876.59 409.036C1877.36 408.671 1877.97 408.157 1878.4 407.494C1878.84 406.831 1879.06 406.053 1879.06 405.158C1879.06 404.296 1878.86 403.546 1878.48 402.908C1878.1 402.27 1877.56 401.773 1876.87 401.417C1876.18 401.06 1875.37 400.882 1874.43 400.882C1873.55 400.882 1872.72 401.044 1871.95 401.367C1871.18 401.682 1870.55 402.142 1870.06 402.746C1869.57 403.343 1869.3 404.064 1869.26 404.909H1866.28C1866.33 403.575 1866.73 402.407 1867.48 401.404C1868.24 400.393 1869.22 399.606 1870.44 399.043C1871.67 398.479 1873.01 398.197 1874.48 398.197C1876.06 398.197 1877.41 398.516 1878.53 399.154C1879.66 399.784 1880.53 400.617 1881.13 401.653C1881.74 402.688 1882.04 403.807 1882.04 405.009C1882.04 406.442 1881.66 407.664 1880.91 408.675C1880.16 409.686 1879.15 410.386 1877.86 410.776V410.974C1879.47 411.24 1880.72 411.923 1881.63 413.025C1882.53 414.119 1882.98 415.474 1882.98 417.089C1882.98 418.473 1882.61 419.716 1881.85 420.818C1881.11 421.912 1880.09 422.774 1878.79 423.403C1877.5 424.033 1876.03 424.348 1874.38 424.348ZM1898.36 424V398.545H1901.44V421.266H1913.27V424H1898.36ZM1925.65 424.398C1923.81 424.398 1922.23 423.992 1920.89 423.18C1919.57 422.359 1918.54 421.216 1917.82 419.749C1917.11 418.274 1916.75 416.559 1916.75 414.604C1916.75 412.648 1917.11 410.925 1917.82 409.433C1918.54 407.933 1919.54 406.765 1920.83 405.928C1922.12 405.083 1923.63 404.661 1925.35 404.661C1926.35 404.661 1927.33 404.826 1928.3 405.158C1929.27 405.489 1930.15 406.028 1930.95 406.773C1931.74 407.511 1932.38 408.489 1932.85 409.707C1933.32 410.925 1933.56 412.424 1933.56 414.206V415.449H1918.84V412.913H1930.57C1930.57 411.836 1930.36 410.875 1929.93 410.03C1929.5 409.185 1928.9 408.518 1928.11 408.029C1927.33 407.54 1926.41 407.295 1925.35 407.295C1924.18 407.295 1923.17 407.585 1922.32 408.165C1921.48 408.737 1920.82 409.483 1920.37 410.403C1919.91 411.322 1919.69 412.308 1919.69 413.361V415.051C1919.69 416.493 1919.93 417.715 1920.43 418.718C1920.94 419.712 1921.64 420.47 1922.53 420.992C1923.43 421.506 1924.47 421.763 1925.65 421.763C1926.42 421.763 1927.12 421.655 1927.74 421.44C1928.37 421.216 1928.91 420.884 1929.37 420.445C1929.82 419.998 1930.18 419.443 1930.42 418.78L1933.26 419.575C1932.96 420.536 1932.46 421.382 1931.75 422.111C1931.05 422.832 1930.18 423.395 1929.14 423.801C1928.11 424.199 1926.94 424.398 1925.65 424.398ZM1953.05 404.909L1945.99 424H1943.01L1935.95 404.909H1939.13L1944.4 420.122H1944.6L1949.87 404.909H1953.05ZM1964.24 424.398C1962.4 424.398 1960.81 423.992 1959.48 423.18C1958.15 422.359 1957.13 421.216 1956.41 419.749C1955.7 418.274 1955.34 416.559 1955.34 414.604C1955.34 412.648 1955.7 410.925 1956.41 409.433C1957.13 407.933 1958.13 406.765 1959.42 405.928C1960.71 405.083 1962.22 404.661 1963.94 404.661C1964.94 404.661 1965.92 404.826 1966.89 405.158C1967.86 405.489 1968.74 406.028 1969.53 406.773C1970.33 407.511 1970.96 408.489 1971.44 409.707C1971.91 410.925 1972.15 412.424 1972.15 414.206V415.449H1957.43V412.913H1969.16C1969.16 411.836 1968.95 410.875 1968.52 410.03C1968.09 409.185 1967.49 408.518 1966.7 408.029C1965.92 407.54 1965 407.295 1963.94 407.295C1962.77 407.295 1961.76 407.585 1960.91 408.165C1960.06 408.737 1959.41 409.483 1958.96 410.403C1958.5 411.322 1958.27 412.308 1958.27 413.361V415.051C1958.27 416.493 1958.52 417.715 1959.02 418.718C1959.53 419.712 1960.23 420.47 1961.12 420.992C1962.02 421.506 1963.06 421.763 1964.24 421.763C1965.01 421.763 1965.71 421.655 1966.33 421.44C1966.96 421.216 1967.5 420.884 1967.96 420.445C1968.41 419.998 1968.76 419.443 1969.01 418.78L1971.85 419.575C1971.55 420.536 1971.05 421.382 1970.34 422.111C1969.64 422.832 1968.77 423.395 1967.73 423.801C1966.7 424.199 1965.53 424.398 1964.24 424.398ZM1979.54 398.545V424H1976.61V398.545H1979.54ZM1998.44 409.185L1995.8 409.93C1995.63 409.491 1995.39 409.065 1995.07 408.65C1994.75 408.228 1994.32 407.88 1993.77 407.606C1993.23 407.333 1992.53 407.196 1991.67 407.196C1990.51 407.196 1989.53 407.465 1988.75 408.004C1987.98 408.534 1987.6 409.21 1987.6 410.03C1987.6 410.759 1987.86 411.335 1988.39 411.757C1988.92 412.18 1989.75 412.532 1990.88 412.814L1993.71 413.51C1995.42 413.924 1996.69 414.558 1997.53 415.412C1998.36 416.257 1998.78 417.346 1998.78 418.68C1998.78 419.774 1998.47 420.752 1997.84 421.614C1997.22 422.475 1996.35 423.155 1995.23 423.652C1994.11 424.149 1992.81 424.398 1991.33 424.398C1989.38 424.398 1987.77 423.975 1986.49 423.13C1985.22 422.285 1984.41 421.05 1984.07 419.426L1986.85 418.73C1987.12 419.758 1987.62 420.528 1988.36 421.042C1989.1 421.556 1990.07 421.812 1991.28 421.812C1992.64 421.812 1993.73 421.522 1994.53 420.942C1995.34 420.354 1995.75 419.65 1995.75 418.83C1995.75 418.167 1995.52 417.612 1995.05 417.164C1994.59 416.708 1993.88 416.369 1992.92 416.145L1989.74 415.399C1987.99 414.985 1986.7 414.343 1985.88 413.473C1985.07 412.594 1984.66 411.496 1984.66 410.179C1984.66 409.102 1984.97 408.149 1985.57 407.32C1986.18 406.492 1987.02 405.841 1988.07 405.369C1989.13 404.897 1990.33 404.661 1991.67 404.661C1993.56 404.661 1995.05 405.075 1996.12 405.903C1997.21 406.732 1997.98 407.826 1998.44 409.185ZM2020.8 424.398C2019.07 424.398 2017.56 423.988 2016.26 423.167C2014.97 422.347 2013.96 421.199 2013.23 419.724C2012.51 418.25 2012.15 416.526 2012.15 414.554C2012.15 412.565 2012.51 410.829 2013.23 409.346C2013.96 407.863 2014.97 406.711 2016.26 405.891C2017.56 405.071 2019.07 404.661 2020.8 404.661C2022.52 404.661 2024.03 405.071 2025.32 405.891C2026.62 406.711 2027.63 407.863 2028.36 409.346C2029.08 410.829 2029.45 412.565 2029.45 414.554C2029.45 416.526 2029.08 418.25 2028.36 419.724C2027.63 421.199 2026.62 422.347 2025.32 423.167C2024.03 423.988 2022.52 424.398 2020.8 424.398ZM2020.8 421.763C2022.11 421.763 2023.18 421.427 2024.03 420.756C2024.87 420.085 2025.5 419.202 2025.91 418.109C2026.31 417.015 2026.52 415.83 2026.52 414.554C2026.52 413.278 2026.31 412.089 2025.91 410.987C2025.5 409.885 2024.87 408.994 2024.03 408.315C2023.18 407.635 2022.11 407.295 2020.8 407.295C2019.49 407.295 2018.41 407.635 2017.57 408.315C2016.72 408.994 2016.1 409.885 2015.69 410.987C2015.28 412.089 2015.08 413.278 2015.08 414.554C2015.08 415.83 2015.28 417.015 2015.69 418.109C2016.1 419.202 2016.72 420.085 2017.57 420.756C2018.41 421.427 2019.49 421.763 2020.8 421.763ZM2042.43 404.909V407.395H2032.14V404.909H2042.43ZM2035.22 424V402.274C2035.22 401.18 2035.48 400.269 2035.99 399.54C2036.5 398.811 2037.17 398.264 2037.99 397.899C2038.81 397.535 2039.68 397.352 2040.59 397.352C2041.31 397.352 2041.9 397.41 2042.35 397.526C2042.81 397.642 2043.15 397.75 2043.37 397.849L2042.53 400.385C2042.38 400.335 2042.17 400.273 2041.91 400.199C2041.65 400.124 2041.31 400.087 2040.89 400.087C2039.92 400.087 2039.22 400.331 2038.79 400.82C2038.36 401.309 2038.15 402.026 2038.15 402.97V424H2035.22ZM1891.64 466V440.545H1900.24C1902.24 440.545 1903.87 440.906 1905.14 441.627C1906.41 442.339 1907.36 443.305 1907.97 444.523C1908.59 445.741 1908.89 447.1 1908.89 448.599C1908.89 450.099 1908.59 451.462 1907.97 452.689C1907.37 453.915 1906.43 454.893 1905.16 455.622C1903.9 456.343 1902.27 456.703 1900.29 456.703H1894.13V453.969H1900.19C1901.56 453.969 1902.66 453.733 1903.49 453.26C1904.31 452.788 1904.92 452.15 1905.29 451.346C1905.67 450.534 1905.86 449.619 1905.86 448.599C1905.86 447.58 1905.67 446.669 1905.29 445.865C1904.92 445.061 1904.31 444.432 1903.47 443.976C1902.64 443.512 1901.53 443.28 1900.14 443.28H1894.72V466H1891.64ZM1913.46 466V446.909H1916.29V449.793H1916.49C1916.84 448.848 1917.47 448.082 1918.38 447.493C1919.29 446.905 1920.32 446.611 1921.46 446.611C1921.68 446.611 1921.95 446.615 1922.27 446.623C1922.6 446.632 1922.84 446.644 1923.01 446.661V449.643C1922.91 449.619 1922.68 449.581 1922.32 449.532C1921.97 449.474 1921.61 449.445 1921.22 449.445C1920.29 449.445 1919.46 449.639 1918.73 450.029C1918.01 450.41 1917.44 450.94 1917.01 451.62C1916.6 452.291 1916.39 453.057 1916.39 453.919V466H1913.46ZM1933.66 466.398C1931.93 466.398 1930.42 465.988 1929.12 465.167C1927.83 464.347 1926.82 463.199 1926.09 461.724C1925.37 460.25 1925.01 458.526 1925.01 456.554C1925.01 454.565 1925.37 452.829 1926.09 451.346C1926.82 449.863 1927.83 448.711 1929.12 447.891C1930.42 447.071 1931.93 446.661 1933.66 446.661C1935.38 446.661 1936.89 447.071 1938.18 447.891C1939.48 448.711 1940.49 449.863 1941.21 451.346C1941.94 452.829 1942.31 454.565 1942.31 456.554C1942.31 458.526 1941.94 460.25 1941.21 461.724C1940.49 463.199 1939.48 464.347 1938.18 465.167C1936.89 465.988 1935.38 466.398 1933.66 466.398ZM1933.66 463.763C1934.97 463.763 1936.04 463.427 1936.89 462.756C1937.73 462.085 1938.36 461.202 1938.77 460.109C1939.17 459.015 1939.37 457.83 1939.37 456.554C1939.37 455.278 1939.17 454.089 1938.77 452.987C1938.36 451.885 1937.73 450.994 1936.89 450.315C1936.04 449.635 1934.97 449.295 1933.66 449.295C1932.35 449.295 1931.27 449.635 1930.43 450.315C1929.58 450.994 1928.95 451.885 1928.55 452.987C1928.14 454.089 1927.94 455.278 1927.94 456.554C1927.94 457.83 1928.14 459.015 1928.55 460.109C1928.95 461.202 1929.58 462.085 1930.43 462.756C1931.27 463.427 1932.35 463.763 1933.66 463.763ZM1953.99 466.398C1952.4 466.398 1951 465.996 1949.78 465.192C1948.56 464.38 1947.61 463.237 1946.92 461.762C1946.23 460.279 1945.89 458.526 1945.89 456.504C1945.89 454.499 1946.23 452.759 1946.92 451.284C1947.61 449.809 1948.57 448.67 1949.79 447.866C1951.02 447.062 1952.44 446.661 1954.04 446.661C1955.29 446.661 1956.27 446.868 1956.99 447.282C1957.72 447.688 1958.27 448.152 1958.65 448.674C1959.04 449.188 1959.35 449.61 1959.56 449.942H1959.81V440.545H1962.74V466H1959.91V463.067H1959.56C1959.35 463.415 1959.04 463.854 1958.64 464.384C1958.24 464.906 1957.68 465.374 1956.94 465.789C1956.2 466.195 1955.22 466.398 1953.99 466.398ZM1954.39 463.763C1955.57 463.763 1956.56 463.456 1957.37 462.843C1958.19 462.222 1958.8 461.364 1959.23 460.27C1959.65 459.168 1959.86 457.896 1959.86 456.455C1959.86 455.029 1959.65 453.782 1959.24 452.713C1958.82 451.636 1958.21 450.799 1957.4 450.203C1956.59 449.598 1955.58 449.295 1954.39 449.295C1953.15 449.295 1952.11 449.614 1951.28 450.252C1950.46 450.882 1949.85 451.74 1949.43 452.825C1949.03 453.902 1948.82 455.112 1948.82 456.455C1948.82 457.813 1949.03 459.048 1949.45 460.158C1949.87 461.26 1950.49 462.139 1951.31 462.793C1952.14 463.44 1953.17 463.763 1954.39 463.763ZM1980.55 458.195V446.909H1983.49V466H1980.55V462.768H1980.36C1979.91 463.738 1979.21 464.562 1978.27 465.242C1977.32 465.913 1976.13 466.249 1974.69 466.249C1973.5 466.249 1972.43 465.988 1971.51 465.466C1970.58 464.935 1969.85 464.14 1969.32 463.079C1968.79 462.01 1968.52 460.664 1968.52 459.04V446.909H1971.46V458.841C1971.46 460.233 1971.85 461.343 1972.63 462.172C1973.41 463 1974.41 463.415 1975.63 463.415C1976.36 463.415 1977.1 463.228 1977.86 462.855C1978.62 462.483 1979.26 461.911 1979.77 461.14C1980.29 460.37 1980.55 459.388 1980.55 458.195ZM1996.62 466.398C1994.83 466.398 1993.29 465.975 1991.99 465.13C1990.7 464.285 1989.71 463.121 1989.01 461.637C1988.31 460.154 1987.97 458.46 1987.97 456.554C1987.97 454.615 1988.32 452.904 1989.03 451.421C1989.76 449.929 1990.76 448.765 1992.04 447.928C1993.33 447.083 1994.84 446.661 1996.57 446.661C1997.91 446.661 1999.12 446.909 2000.2 447.406C2001.27 447.903 2002.16 448.599 2002.84 449.494C2003.53 450.389 2003.96 451.433 2004.12 452.626H2001.19C2000.97 451.756 2000.47 450.986 1999.7 450.315C1998.94 449.635 1997.91 449.295 1996.62 449.295C1995.47 449.295 1994.47 449.594 1993.61 450.19C1992.75 450.779 1992.09 451.611 1991.61 452.689C1991.13 453.757 1990.9 455.013 1990.9 456.455C1990.9 457.929 1991.13 459.214 1991.59 460.308C1992.07 461.401 1992.73 462.251 1993.58 462.855C1994.45 463.46 1995.46 463.763 1996.62 463.763C1997.38 463.763 1998.07 463.63 1998.69 463.365C1999.31 463.1 1999.84 462.719 2000.27 462.222C2000.7 461.724 2001.01 461.128 2001.19 460.432H2004.12C2003.96 461.559 2003.55 462.574 2002.89 463.477C2002.25 464.372 2001.39 465.084 2000.32 465.615C1999.26 466.137 1998.02 466.398 1996.62 466.398ZM2016.71 446.909V449.395H2006.82V446.909H2016.71ZM2009.7 442.335H2012.64V460.531C2012.64 461.36 2012.76 461.981 2013 462.396C2013.25 462.802 2013.56 463.075 2013.94 463.216C2014.33 463.348 2014.74 463.415 2015.17 463.415C2015.5 463.415 2015.76 463.398 2015.97 463.365C2016.18 463.324 2016.34 463.29 2016.47 463.266L2017.06 465.901C2016.86 465.975 2016.59 466.05 2016.23 466.124C2015.87 466.207 2015.42 466.249 2014.87 466.249C2014.05 466.249 2013.23 466.07 2012.44 465.714C2011.65 465.358 2011 464.815 2010.47 464.086C2009.96 463.357 2009.7 462.437 2009.7 461.327V442.335Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"FourTypesOfValue\" className=\"map-btn\" onClick={ClickHandler(\"FourTypesOfValue\")}>\r\n <rect\r\n id=\"Rectangle 20\"\r\n x=\"1807.5\"\r\n y=\"532.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"4 Types of Value\"\r\n d=\"M1816.62 604.78V602.244L1827.81 584.545H1829.65V588.473H1828.41L1819.95 601.847V602.045H1835.02V604.78H1816.62ZM1828.6 610V604.009V602.828V584.545H1831.54V610H1828.6ZM1848.58 587.28V584.545H1867.67V587.28H1859.66V610H1856.58V587.28H1848.58ZM1871.73 617.159C1871.23 617.159 1870.79 617.118 1870.4 617.035C1870.01 616.96 1869.74 616.886 1869.59 616.811L1870.34 614.226C1871.05 614.408 1871.68 614.474 1872.22 614.425C1872.77 614.375 1873.26 614.131 1873.68 613.691C1874.11 613.261 1874.5 612.56 1874.86 611.591L1875.41 610.099L1868.35 590.909H1871.53L1876.8 606.122H1877L1882.27 590.909H1885.45L1877.35 612.784C1876.98 613.77 1876.53 614.586 1875.99 615.233C1875.45 615.887 1874.83 616.372 1874.11 616.687C1873.41 617.002 1872.61 617.159 1871.73 617.159ZM1889.32 617.159V590.909H1892.15V593.942H1892.5C1892.72 593.61 1893.02 593.188 1893.4 592.674C1893.79 592.152 1894.34 591.688 1895.06 591.282C1895.79 590.868 1896.78 590.661 1898.02 590.661C1899.63 590.661 1901.05 591.062 1902.27 591.866C1903.5 592.67 1904.45 593.809 1905.14 595.284C1905.83 596.759 1906.17 598.499 1906.17 600.504C1906.17 602.526 1905.83 604.279 1905.14 605.762C1904.45 607.237 1903.5 608.38 1902.28 609.192C1901.07 609.996 1899.66 610.398 1898.07 610.398C1896.84 610.398 1895.86 610.195 1895.12 609.789C1894.39 609.374 1893.82 608.906 1893.42 608.384C1893.02 607.854 1892.72 607.415 1892.5 607.067H1892.25V617.159H1889.32ZM1892.2 600.455C1892.2 601.896 1892.42 603.168 1892.84 604.27C1893.26 605.364 1893.88 606.222 1894.69 606.843C1895.5 607.456 1896.5 607.763 1897.67 607.763C1898.9 607.763 1899.92 607.44 1900.74 606.793C1901.57 606.139 1902.19 605.26 1902.61 604.158C1903.03 603.048 1903.24 601.813 1903.24 600.455C1903.24 599.112 1903.03 597.902 1902.62 596.825C1902.21 595.74 1901.6 594.882 1900.77 594.252C1899.95 593.614 1898.92 593.295 1897.67 593.295C1896.48 593.295 1895.48 593.598 1894.66 594.203C1893.85 594.799 1893.24 595.636 1892.83 596.713C1892.41 597.782 1892.2 599.029 1892.2 600.455ZM1918.65 610.398C1916.81 610.398 1915.23 609.992 1913.89 609.18C1912.57 608.359 1911.54 607.216 1910.82 605.749C1910.11 604.274 1909.75 602.559 1909.75 600.604C1909.75 598.648 1910.11 596.925 1910.82 595.433C1911.54 593.933 1912.55 592.765 1913.83 591.928C1915.12 591.083 1916.63 590.661 1918.35 590.661C1919.35 590.661 1920.33 590.826 1921.3 591.158C1922.27 591.489 1923.15 592.028 1923.95 592.773C1924.74 593.511 1925.38 594.489 1925.85 595.707C1926.32 596.925 1926.56 598.424 1926.56 600.206V601.449H1911.84V598.913H1923.57C1923.57 597.836 1923.36 596.875 1922.93 596.03C1922.51 595.185 1921.9 594.518 1921.11 594.029C1920.33 593.54 1919.42 593.295 1918.35 593.295C1917.19 593.295 1916.18 593.585 1915.32 594.165C1914.48 594.737 1913.83 595.483 1913.37 596.403C1912.91 597.322 1912.69 598.308 1912.69 599.361V601.051C1912.69 602.493 1912.94 603.715 1913.43 604.718C1913.94 605.712 1914.64 606.47 1915.53 606.992C1916.43 607.506 1917.47 607.763 1918.65 607.763C1919.42 607.763 1920.12 607.655 1920.74 607.44C1921.37 607.216 1921.91 606.884 1922.37 606.445C1922.82 605.998 1923.18 605.443 1923.43 604.78L1926.26 605.575C1925.96 606.536 1925.46 607.382 1924.76 608.111C1924.05 608.832 1923.18 609.395 1922.15 609.801C1921.11 610.199 1919.95 610.398 1918.65 610.398ZM1944.54 595.185L1941.91 595.93C1941.74 595.491 1941.5 595.065 1941.17 594.65C1940.86 594.228 1940.43 593.88 1939.88 593.606C1939.33 593.333 1938.63 593.196 1937.78 593.196C1936.61 593.196 1935.64 593.465 1934.86 594.004C1934.09 594.534 1933.7 595.21 1933.7 596.03C1933.7 596.759 1933.97 597.335 1934.5 597.757C1935.03 598.18 1935.86 598.532 1936.99 598.814L1939.82 599.51C1941.53 599.924 1942.8 600.558 1943.64 601.412C1944.47 602.257 1944.89 603.346 1944.89 604.68C1944.89 605.774 1944.58 606.752 1943.95 607.614C1943.32 608.475 1942.45 609.155 1941.34 609.652C1940.22 610.149 1938.92 610.398 1937.43 610.398C1935.49 610.398 1933.87 609.975 1932.6 609.13C1931.32 608.285 1930.51 607.05 1930.17 605.426L1932.96 604.73C1933.22 605.758 1933.72 606.528 1934.46 607.042C1935.21 607.556 1936.18 607.812 1937.38 607.812C1938.75 607.812 1939.84 607.522 1940.64 606.942C1941.45 606.354 1941.86 605.65 1941.86 604.83C1941.86 604.167 1941.63 603.612 1941.16 603.164C1940.7 602.708 1939.99 602.369 1939.02 602.145L1935.84 601.399C1934.09 600.985 1932.81 600.343 1931.99 599.473C1931.18 598.594 1930.77 597.496 1930.77 596.179C1930.77 595.102 1931.07 594.149 1931.68 593.32C1932.29 592.492 1933.12 591.841 1934.18 591.369C1935.24 590.897 1936.44 590.661 1937.78 590.661C1939.67 590.661 1941.15 591.075 1942.23 591.903C1943.32 592.732 1944.09 593.826 1944.54 595.185ZM1966.91 610.398C1965.18 610.398 1963.67 609.988 1962.37 609.167C1961.08 608.347 1960.07 607.199 1959.34 605.724C1958.62 604.25 1958.25 602.526 1958.25 600.554C1958.25 598.565 1958.62 596.829 1959.34 595.346C1960.07 593.863 1961.08 592.711 1962.37 591.891C1963.67 591.071 1965.18 590.661 1966.91 590.661C1968.63 590.661 1970.14 591.071 1971.43 591.891C1972.73 592.711 1973.74 593.863 1974.46 595.346C1975.19 596.829 1975.56 598.565 1975.56 600.554C1975.56 602.526 1975.19 604.25 1974.46 605.724C1973.74 607.199 1972.73 608.347 1971.43 609.167C1970.14 609.988 1968.63 610.398 1966.91 610.398ZM1966.91 607.763C1968.21 607.763 1969.29 607.427 1970.14 606.756C1970.98 606.085 1971.61 605.202 1972.01 604.109C1972.42 603.015 1972.62 601.83 1972.62 600.554C1972.62 599.278 1972.42 598.089 1972.01 596.987C1971.61 595.885 1970.98 594.994 1970.14 594.315C1969.29 593.635 1968.21 593.295 1966.91 593.295C1965.6 593.295 1964.52 593.635 1963.67 594.315C1962.83 594.994 1962.2 595.885 1961.8 596.987C1961.39 598.089 1961.19 599.278 1961.19 600.554C1961.19 601.83 1961.39 603.015 1961.8 604.109C1962.2 605.202 1962.83 606.085 1963.67 606.756C1964.52 607.427 1965.6 607.763 1966.91 607.763ZM1988.53 590.909V593.395H1978.24V590.909H1988.53ZM1981.33 610V588.274C1981.33 587.18 1981.58 586.269 1982.1 585.54C1982.61 584.811 1983.28 584.264 1984.1 583.899C1984.92 583.535 1985.78 583.352 1986.7 583.352C1987.42 583.352 1988 583.41 1988.46 583.526C1988.92 583.642 1989.26 583.75 1989.48 583.849L1988.63 586.385C1988.48 586.335 1988.28 586.273 1988.01 586.199C1987.76 586.124 1987.42 586.087 1986.99 586.087C1986.02 586.087 1985.32 586.331 1984.89 586.82C1984.47 587.309 1984.26 588.026 1984.26 588.97V610H1981.33ZM2003.93 584.545L2011.49 605.973H2011.79L2019.34 584.545H2022.57L2013.23 610H2010.05L2000.7 584.545H2003.93ZM2029.98 610.447C2028.77 610.447 2027.67 610.22 2026.69 609.764C2025.7 609.3 2024.92 608.633 2024.34 607.763C2023.76 606.884 2023.47 605.824 2023.47 604.581C2023.47 603.487 2023.68 602.601 2024.12 601.921C2024.55 601.233 2025.12 600.695 2025.84 600.305C2026.56 599.916 2027.36 599.626 2028.23 599.435C2029.11 599.237 2029.99 599.079 2030.88 598.963C2032.04 598.814 2032.98 598.702 2033.7 598.627C2034.43 598.545 2034.96 598.408 2035.29 598.217C2035.63 598.027 2035.8 597.695 2035.8 597.223V597.124C2035.8 595.897 2035.46 594.944 2034.79 594.265C2034.13 593.585 2033.12 593.246 2031.77 593.246C2030.37 593.246 2029.27 593.552 2028.48 594.165C2027.68 594.779 2027.12 595.433 2026.8 596.129L2024.02 595.135C2024.51 593.975 2025.18 593.072 2026 592.425C2026.84 591.771 2027.75 591.315 2028.74 591.058C2029.73 590.793 2030.71 590.661 2031.67 590.661C2032.29 590.661 2032.99 590.735 2033.79 590.884C2034.59 591.025 2035.36 591.319 2036.11 591.767C2036.86 592.214 2037.49 592.889 2037.99 593.793C2038.48 594.696 2038.73 595.906 2038.73 597.422V610H2035.8V607.415H2035.65C2035.45 607.829 2035.12 608.272 2034.66 608.745C2034.19 609.217 2033.57 609.619 2032.8 609.95C2032.03 610.282 2031.09 610.447 2029.98 610.447ZM2030.43 607.812C2031.59 607.812 2032.57 607.585 2033.36 607.129C2034.17 606.673 2034.77 606.085 2035.18 605.364C2035.59 604.643 2035.8 603.885 2035.8 603.089V600.405C2035.67 600.554 2035.4 600.691 2034.98 600.815C2034.56 600.931 2034.08 601.035 2033.54 601.126C2033 601.209 2032.47 601.283 2031.96 601.349C2031.45 601.407 2031.04 601.457 2030.73 601.499C2029.97 601.598 2029.25 601.76 2028.59 601.983C2027.94 602.199 2027.41 602.526 2027 602.965C2026.6 603.396 2026.4 603.984 2026.4 604.73C2026.4 605.749 2026.78 606.52 2027.53 607.042C2028.3 607.556 2029.26 607.812 2030.43 607.812ZM2047.02 584.545V610H2044.09V584.545H2047.02ZM2064.42 602.195V590.909H2067.36V610H2064.42V606.768H2064.22C2063.78 607.738 2063.08 608.562 2062.14 609.242C2061.19 609.913 2060 610.249 2058.56 610.249C2057.36 610.249 2056.3 609.988 2055.37 609.466C2054.45 608.935 2053.72 608.14 2053.19 607.079C2052.66 606.01 2052.39 604.664 2052.39 603.04V590.909H2055.32V602.841C2055.32 604.233 2055.71 605.343 2056.49 606.172C2057.28 607 2058.28 607.415 2059.5 607.415C2060.23 607.415 2060.97 607.228 2061.73 606.855C2062.49 606.483 2063.13 605.911 2063.64 605.14C2064.16 604.37 2064.42 603.388 2064.42 602.195ZM2080.73 610.398C2078.89 610.398 2077.31 609.992 2075.97 609.18C2074.65 608.359 2073.62 607.216 2072.9 605.749C2072.19 604.274 2071.83 602.559 2071.83 600.604C2071.83 598.648 2072.19 596.925 2072.9 595.433C2073.62 593.933 2074.63 592.765 2075.91 591.928C2077.2 591.083 2078.71 590.661 2080.43 590.661C2081.43 590.661 2082.41 590.826 2083.38 591.158C2084.35 591.489 2085.23 592.028 2086.03 592.773C2086.82 593.511 2087.46 594.489 2087.93 595.707C2088.4 596.925 2088.64 598.424 2088.64 600.206V601.449H2073.92V598.913H2085.65C2085.65 597.836 2085.44 596.875 2085.01 596.03C2084.59 595.185 2083.98 594.518 2083.19 594.029C2082.41 593.54 2081.5 593.295 2080.43 593.295C2079.27 593.295 2078.26 593.585 2077.4 594.165C2076.56 594.737 2075.91 595.483 2075.45 596.403C2074.99 597.322 2074.77 598.308 2074.77 599.361V601.051C2074.77 602.493 2075.02 603.715 2075.51 604.718C2076.02 605.712 2076.72 606.47 2077.61 606.992C2078.51 607.506 2079.55 607.763 2080.73 607.763C2081.5 607.763 2082.2 607.655 2082.82 607.44C2083.45 607.216 2083.99 606.884 2084.45 606.445C2084.9 605.998 2085.26 605.443 2085.51 604.78L2088.34 605.575C2088.04 606.536 2087.54 607.382 2086.84 608.111C2086.13 608.832 2085.26 609.395 2084.23 609.801C2083.19 610.199 2082.03 610.398 2080.73 610.398Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"StrategyCanvas\" className=\"map-btn\" onClick={ClickHandler(\"StrategyCanvas\")}>\r\n <rect\r\n id=\"Rectangle 19\"\r\n x=\"2273.5\"\r\n y=\"532.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Strategy Canvas\"\r\n d=\"M2298.9 590.909C2298.75 589.65 2298.15 588.672 2297.09 587.976C2296.03 587.28 2294.73 586.932 2293.19 586.932C2292.06 586.932 2291.07 587.114 2290.23 587.479C2289.39 587.843 2288.74 588.345 2288.26 588.983C2287.8 589.621 2287.57 590.346 2287.57 591.158C2287.57 591.837 2287.73 592.421 2288.05 592.91C2288.38 593.391 2288.81 593.793 2289.32 594.116C2289.83 594.431 2290.37 594.692 2290.94 594.899C2291.5 595.098 2292.02 595.259 2292.49 595.384L2295.08 596.08C2295.74 596.254 2296.48 596.494 2297.29 596.8C2298.11 597.107 2298.89 597.525 2299.64 598.056C2300.39 598.578 2301.01 599.249 2301.5 600.069C2301.99 600.89 2302.23 601.896 2302.23 603.089C2302.23 604.465 2301.87 605.708 2301.15 606.818C2300.44 607.929 2299.4 608.811 2298.02 609.466C2296.65 610.12 2294.99 610.447 2293.04 610.447C2291.21 610.447 2289.64 610.153 2288.3 609.565C2286.98 608.977 2285.93 608.156 2285.17 607.104C2284.42 606.052 2283.99 604.83 2283.89 603.438H2287.07C2287.15 604.399 2287.48 605.194 2288.04 605.824C2288.61 606.445 2289.33 606.909 2290.2 607.216C2291.08 607.514 2292.03 607.663 2293.04 607.663C2294.21 607.663 2295.27 607.473 2296.21 607.092C2297.14 606.702 2297.88 606.164 2298.43 605.476C2298.98 604.78 2299.25 603.968 2299.25 603.04C2299.25 602.195 2299.02 601.507 2298.54 600.977C2298.07 600.446 2297.45 600.015 2296.68 599.684C2295.91 599.353 2295.08 599.062 2294.18 598.814L2291.05 597.919C2289.06 597.347 2287.49 596.531 2286.33 595.471C2285.17 594.41 2284.59 593.022 2284.59 591.307C2284.59 589.882 2284.97 588.639 2285.74 587.578C2286.52 586.509 2287.56 585.681 2288.87 585.092C2290.19 584.496 2291.66 584.197 2293.29 584.197C2294.93 584.197 2296.38 584.492 2297.66 585.08C2298.94 585.66 2299.95 586.455 2300.69 587.466C2301.45 588.477 2301.85 589.625 2301.89 590.909H2298.9ZM2315.21 590.909V593.395H2305.31V590.909H2315.21ZM2308.2 586.335H2311.13V604.531C2311.13 605.36 2311.25 605.981 2311.49 606.396C2311.74 606.802 2312.05 607.075 2312.44 607.216C2312.83 607.348 2313.24 607.415 2313.67 607.415C2313.99 607.415 2314.25 607.398 2314.46 607.365C2314.67 607.324 2314.83 607.29 2314.96 607.266L2315.56 609.901C2315.36 609.975 2315.08 610.05 2314.72 610.124C2314.37 610.207 2313.91 610.249 2313.37 610.249C2312.54 610.249 2311.73 610.07 2310.93 609.714C2310.14 609.358 2309.49 608.815 2308.97 608.086C2308.45 607.357 2308.2 606.437 2308.2 605.327V586.335ZM2319.62 610V590.909H2322.45V593.793H2322.65C2323 592.848 2323.63 592.082 2324.54 591.493C2325.45 590.905 2326.48 590.611 2327.62 590.611C2327.84 590.611 2328.11 590.615 2328.43 590.623C2328.76 590.632 2329 590.644 2329.17 590.661V593.643C2329.07 593.619 2328.84 593.581 2328.48 593.532C2328.13 593.474 2327.76 593.445 2327.38 593.445C2326.45 593.445 2325.62 593.639 2324.89 594.029C2324.17 594.41 2323.6 594.94 2323.17 595.62C2322.76 596.291 2322.55 597.057 2322.55 597.919V610H2319.62ZM2338.26 610.447C2337.05 610.447 2335.95 610.22 2334.97 609.764C2333.98 609.3 2333.2 608.633 2332.62 607.763C2332.04 606.884 2331.75 605.824 2331.75 604.581C2331.75 603.487 2331.96 602.601 2332.39 601.921C2332.82 601.233 2333.4 600.695 2334.12 600.305C2334.84 599.916 2335.64 599.626 2336.51 599.435C2337.39 599.237 2338.27 599.079 2339.15 598.963C2340.32 598.814 2341.26 598.702 2341.98 598.627C2342.71 598.545 2343.24 598.408 2343.57 598.217C2343.91 598.027 2344.08 597.695 2344.08 597.223V597.124C2344.08 595.897 2343.74 594.944 2343.07 594.265C2342.41 593.585 2341.4 593.246 2340.05 593.246C2338.65 593.246 2337.55 593.552 2336.76 594.165C2335.96 594.779 2335.4 595.433 2335.08 596.129L2332.29 595.135C2332.79 593.975 2333.45 593.072 2334.28 592.425C2335.12 591.771 2336.03 591.315 2337.02 591.058C2338.01 590.793 2338.99 590.661 2339.95 590.661C2340.56 590.661 2341.27 590.735 2342.06 590.884C2342.87 591.025 2343.64 591.319 2344.39 591.767C2345.14 592.214 2345.77 592.889 2346.26 593.793C2346.76 594.696 2347.01 595.906 2347.01 597.422V610H2344.08V607.415H2343.93C2343.73 607.829 2343.4 608.272 2342.93 608.745C2342.47 609.217 2341.85 609.619 2341.08 609.95C2340.31 610.282 2339.37 610.447 2338.26 610.447ZM2338.71 607.812C2339.87 607.812 2340.85 607.585 2341.64 607.129C2342.44 606.673 2343.05 606.085 2343.46 605.364C2343.87 604.643 2344.08 603.885 2344.08 603.089V600.405C2343.95 600.554 2343.68 600.691 2343.26 600.815C2342.84 600.931 2342.36 601.035 2341.81 601.126C2341.28 601.209 2340.75 601.283 2340.24 601.349C2339.73 601.407 2339.32 601.457 2339.01 601.499C2338.24 601.598 2337.53 601.76 2336.87 601.983C2336.21 602.199 2335.68 602.526 2335.28 602.965C2334.88 603.396 2334.68 603.984 2334.68 604.73C2334.68 605.749 2335.06 606.52 2335.81 607.042C2336.57 607.556 2337.54 607.812 2338.71 607.812ZM2360.67 590.909V593.395H2350.77V590.909H2360.67ZM2353.66 586.335H2356.59V604.531C2356.59 605.36 2356.71 605.981 2356.95 606.396C2357.2 606.802 2357.51 607.075 2357.89 607.216C2358.28 607.348 2358.69 607.415 2359.13 607.415C2359.45 607.415 2359.71 607.398 2359.92 607.365C2360.13 607.324 2360.29 607.29 2360.42 607.266L2361.01 609.901C2360.82 609.975 2360.54 610.05 2360.18 610.124C2359.83 610.207 2359.37 610.249 2358.83 610.249C2358 610.249 2357.19 610.07 2356.39 609.714C2355.6 609.358 2354.95 608.815 2354.43 608.086C2353.91 607.357 2353.66 606.437 2353.66 605.327V586.335ZM2372.88 610.398C2371.04 610.398 2369.45 609.992 2368.12 609.18C2366.79 608.359 2365.77 607.216 2365.05 605.749C2364.34 604.274 2363.98 602.559 2363.98 600.604C2363.98 598.648 2364.34 596.925 2365.05 595.433C2365.77 593.933 2366.77 592.765 2368.06 591.928C2369.35 591.083 2370.86 590.661 2372.58 590.661C2373.57 590.661 2374.56 590.826 2375.53 591.158C2376.49 591.489 2377.38 592.028 2378.17 592.773C2378.97 593.511 2379.6 594.489 2380.07 595.707C2380.55 596.925 2380.78 598.424 2380.78 600.206V601.449H2366.07V598.913H2377.8C2377.8 597.836 2377.58 596.875 2377.15 596.03C2376.73 595.185 2376.13 594.518 2375.34 594.029C2374.56 593.54 2373.64 593.295 2372.58 593.295C2371.41 593.295 2370.4 593.585 2369.55 594.165C2368.7 594.737 2368.05 595.483 2367.6 596.403C2367.14 597.322 2366.91 598.308 2366.91 599.361V601.051C2366.91 602.493 2367.16 603.715 2367.66 604.718C2368.16 605.712 2368.86 606.47 2369.76 606.992C2370.65 607.506 2371.69 607.763 2372.88 607.763C2373.65 607.763 2374.34 607.655 2374.97 607.44C2375.6 607.216 2376.14 606.884 2376.59 606.445C2377.05 605.998 2377.4 605.443 2377.65 604.78L2380.48 605.575C2380.19 606.536 2379.68 607.382 2378.98 608.111C2378.28 608.832 2377.41 609.395 2376.37 609.801C2375.33 610.199 2374.17 610.398 2372.88 610.398ZM2392.95 617.557C2391.53 617.557 2390.32 617.375 2389.3 617.01C2388.28 616.654 2387.43 616.181 2386.75 615.593C2386.08 615.013 2385.54 614.392 2385.15 613.729L2387.48 612.088C2387.75 612.436 2388.08 612.834 2388.49 613.281C2388.89 613.737 2389.45 614.131 2390.15 614.462C2390.87 614.802 2391.8 614.972 2392.95 614.972C2394.49 614.972 2395.76 614.599 2396.77 613.853C2397.77 613.107 2398.27 611.939 2398.27 610.348V606.47H2398.02C2397.81 606.818 2397.5 607.249 2397.1 607.763C2396.71 608.268 2396.15 608.72 2395.41 609.118C2394.68 609.507 2393.7 609.702 2392.45 609.702C2390.91 609.702 2389.53 609.337 2388.3 608.608C2387.08 607.879 2386.12 606.818 2385.41 605.426C2384.7 604.034 2384.35 602.344 2384.35 600.355C2384.35 598.4 2384.69 596.697 2385.38 595.247C2386.07 593.788 2387.03 592.662 2388.25 591.866C2389.48 591.062 2390.9 590.661 2392.5 590.661C2393.75 590.661 2394.73 590.868 2395.46 591.282C2396.2 591.688 2396.76 592.152 2397.15 592.674C2397.55 593.188 2397.86 593.61 2398.07 593.942H2398.37V590.909H2401.2V610.547C2401.2 612.188 2400.83 613.522 2400.08 614.549C2399.35 615.585 2398.35 616.343 2397.1 616.824C2395.86 617.312 2394.48 617.557 2392.95 617.557ZM2392.85 607.067C2394.03 607.067 2395.02 606.797 2395.83 606.259C2396.65 605.72 2397.26 604.946 2397.69 603.935C2398.11 602.924 2398.32 601.714 2398.32 600.305C2398.32 598.93 2398.11 597.716 2397.7 596.664C2397.28 595.611 2396.67 594.787 2395.86 594.19C2395.05 593.594 2394.04 593.295 2392.85 593.295C2391.61 593.295 2390.57 593.61 2389.74 594.24C2388.92 594.87 2388.31 595.715 2387.89 596.776C2387.49 597.836 2387.28 599.013 2387.28 600.305C2387.28 601.631 2387.49 602.804 2387.9 603.823C2388.33 604.834 2388.95 605.629 2389.77 606.209C2390.6 606.781 2391.62 607.067 2392.85 607.067ZM2408.46 617.159C2407.96 617.159 2407.52 617.118 2407.13 617.035C2406.74 616.96 2406.47 616.886 2406.32 616.811L2407.07 614.226C2407.78 614.408 2408.41 614.474 2408.96 614.425C2409.51 614.375 2409.99 614.131 2410.41 613.691C2410.84 613.261 2411.24 612.56 2411.59 611.591L2412.14 610.099L2405.08 590.909H2408.26L2413.53 606.122H2413.73L2419 590.909H2422.18L2414.08 612.784C2413.72 613.77 2413.26 614.586 2412.73 615.233C2412.19 615.887 2411.56 616.372 2410.85 616.687C2410.14 617.002 2409.35 617.159 2408.46 617.159ZM2456.78 592.5H2453.7C2453.52 591.613 2453.2 590.835 2452.74 590.163C2452.29 589.492 2451.75 588.929 2451.1 588.473C2450.46 588.009 2449.75 587.661 2448.97 587.429C2448.2 587.197 2447.38 587.081 2446.54 587.081C2445 587.081 2443.6 587.47 2442.35 588.249C2441.11 589.028 2440.12 590.176 2439.38 591.692C2438.65 593.208 2438.29 595.069 2438.29 597.273C2438.29 599.477 2438.65 601.337 2439.38 602.853C2440.12 604.37 2441.11 605.517 2442.35 606.296C2443.6 607.075 2445 607.464 2446.54 607.464C2447.38 607.464 2448.2 607.348 2448.97 607.116C2449.75 606.884 2450.46 606.541 2451.1 606.085C2451.75 605.621 2452.29 605.053 2452.74 604.382C2453.2 603.703 2453.52 602.924 2453.7 602.045H2456.78C2456.55 603.346 2456.13 604.511 2455.51 605.538C2454.9 606.565 2454.14 607.44 2453.23 608.161C2452.31 608.873 2451.29 609.416 2450.16 609.789C2449.03 610.162 2447.82 610.348 2446.54 610.348C2444.37 610.348 2442.44 609.818 2440.75 608.757C2439.06 607.696 2437.73 606.188 2436.76 604.233C2435.79 602.277 2435.3 599.957 2435.3 597.273C2435.3 594.588 2435.79 592.268 2436.76 590.312C2437.73 588.357 2439.06 586.849 2440.75 585.788C2442.44 584.728 2444.37 584.197 2446.54 584.197C2447.82 584.197 2449.03 584.384 2450.16 584.757C2451.29 585.13 2452.31 585.676 2453.23 586.397C2454.14 587.11 2454.9 587.98 2455.51 589.007C2456.13 590.027 2456.55 591.191 2456.78 592.5ZM2466.98 610.447C2465.77 610.447 2464.67 610.22 2463.69 609.764C2462.7 609.3 2461.92 608.633 2461.34 607.763C2460.76 606.884 2460.47 605.824 2460.47 604.581C2460.47 603.487 2460.68 602.601 2461.11 601.921C2461.55 601.233 2462.12 600.695 2462.84 600.305C2463.56 599.916 2464.36 599.626 2465.23 599.435C2466.11 599.237 2466.99 599.079 2467.88 598.963C2469.04 598.814 2469.98 598.702 2470.7 598.627C2471.43 598.545 2471.96 598.408 2472.29 598.217C2472.63 598.027 2472.8 597.695 2472.8 597.223V597.124C2472.8 595.897 2472.46 594.944 2471.79 594.265C2471.13 593.585 2470.12 593.246 2468.77 593.246C2467.37 593.246 2466.27 593.552 2465.48 594.165C2464.68 594.779 2464.12 595.433 2463.8 596.129L2461.01 595.135C2461.51 593.975 2462.17 593.072 2463 592.425C2463.84 591.771 2464.75 591.315 2465.74 591.058C2466.73 590.793 2467.71 590.661 2468.67 590.661C2469.28 590.661 2469.99 590.735 2470.78 590.884C2471.59 591.025 2472.36 591.319 2473.11 591.767C2473.86 592.214 2474.49 592.889 2474.99 593.793C2475.48 594.696 2475.73 595.906 2475.73 597.422V610H2472.8V607.415H2472.65C2472.45 607.829 2472.12 608.272 2471.65 608.745C2471.19 609.217 2470.57 609.619 2469.8 609.95C2469.03 610.282 2468.09 610.447 2466.98 610.447ZM2467.43 607.812C2468.59 607.812 2469.57 607.585 2470.36 607.129C2471.17 606.673 2471.77 606.085 2472.18 605.364C2472.59 604.643 2472.8 603.885 2472.8 603.089V600.405C2472.67 600.554 2472.4 600.691 2471.98 600.815C2471.56 600.931 2471.08 601.035 2470.54 601.126C2470 601.209 2469.47 601.283 2468.96 601.349C2468.45 601.407 2468.04 601.457 2467.73 601.499C2466.96 601.598 2466.25 601.76 2465.59 601.983C2464.93 602.199 2464.4 602.526 2464 602.965C2463.6 603.396 2463.4 603.984 2463.4 604.73C2463.4 605.749 2463.78 606.52 2464.53 607.042C2465.29 607.556 2466.26 607.812 2467.43 607.812ZM2484.02 598.516V610H2481.08V590.909H2483.92V593.892H2484.17C2484.61 592.923 2485.29 592.144 2486.21 591.555C2487.12 590.959 2488.29 590.661 2489.74 590.661C2491.03 590.661 2492.16 590.926 2493.13 591.456C2494.1 591.978 2494.85 592.773 2495.39 593.842C2495.93 594.903 2496.2 596.245 2496.2 597.869V610H2493.26V598.068C2493.26 596.568 2492.88 595.4 2492.1 594.563C2491.32 593.718 2490.25 593.295 2488.89 593.295C2487.95 593.295 2487.12 593.498 2486.38 593.904C2485.65 594.31 2485.07 594.903 2484.65 595.682C2484.23 596.461 2484.02 597.405 2484.02 598.516ZM2516.49 590.909L2509.43 610H2506.44L2499.38 590.909H2502.56L2507.83 606.122H2508.03L2513.3 590.909H2516.49ZM2525.39 610.447C2524.18 610.447 2523.09 610.22 2522.1 609.764C2521.11 609.3 2520.33 608.633 2519.75 607.763C2519.17 606.884 2518.88 605.824 2518.88 604.581C2518.88 603.487 2519.1 602.601 2519.53 601.921C2519.96 601.233 2520.53 600.695 2521.26 600.305C2521.98 599.916 2522.77 599.626 2523.64 599.435C2524.52 599.237 2525.4 599.079 2526.29 598.963C2527.45 598.814 2528.39 598.702 2529.11 598.627C2529.84 598.545 2530.37 598.408 2530.7 598.217C2531.04 598.027 2531.21 597.695 2531.21 597.223V597.124C2531.21 595.897 2530.88 594.944 2530.2 594.265C2529.54 593.585 2528.53 593.246 2527.18 593.246C2525.78 593.246 2524.69 593.552 2523.89 594.165C2523.09 594.779 2522.54 595.433 2522.21 596.129L2519.43 595.135C2519.93 593.975 2520.59 593.072 2521.42 592.425C2522.25 591.771 2523.16 591.315 2524.15 591.058C2525.15 590.793 2526.12 590.661 2527.08 590.661C2527.7 590.661 2528.4 590.735 2529.2 590.884C2530 591.025 2530.78 591.319 2531.52 591.767C2532.28 592.214 2532.9 592.889 2533.4 593.793C2533.9 594.696 2534.14 595.906 2534.14 597.422V610H2531.21V607.415H2531.06C2530.86 607.829 2530.53 608.272 2530.07 608.745C2529.6 609.217 2528.99 609.619 2528.22 609.95C2527.44 610.282 2526.5 610.447 2525.39 610.447ZM2525.84 607.812C2527 607.812 2527.98 607.585 2528.77 607.129C2529.58 606.673 2530.18 606.085 2530.59 605.364C2531 604.643 2531.21 603.885 2531.21 603.089V600.405C2531.09 600.554 2530.81 600.691 2530.39 600.815C2529.98 600.931 2529.5 601.035 2528.95 601.126C2528.41 601.209 2527.88 601.283 2527.37 601.349C2526.86 601.407 2526.45 601.457 2526.14 601.499C2525.38 601.598 2524.66 601.76 2524 601.983C2523.35 602.199 2522.82 602.526 2522.41 602.965C2522.01 603.396 2521.81 603.984 2521.81 604.73C2521.81 605.749 2522.19 606.52 2522.95 607.042C2523.71 607.556 2524.67 607.812 2525.84 607.812ZM2553.02 595.185L2550.39 595.93C2550.22 595.491 2549.98 595.065 2549.65 594.65C2549.34 594.228 2548.91 593.88 2548.36 593.606C2547.81 593.333 2547.11 593.196 2546.26 593.196C2545.09 593.196 2544.12 593.465 2543.34 594.004C2542.57 594.534 2542.18 595.21 2542.18 596.03C2542.18 596.759 2542.45 597.335 2542.98 597.757C2543.51 598.18 2544.34 598.532 2545.46 598.814L2548.3 599.51C2550 599.924 2551.28 600.558 2552.11 601.412C2552.95 602.257 2553.37 603.346 2553.37 604.68C2553.37 605.774 2553.05 606.752 2552.42 607.614C2551.8 608.475 2550.93 609.155 2549.81 609.652C2548.7 610.149 2547.39 610.398 2545.91 610.398C2543.96 610.398 2542.35 609.975 2541.08 609.13C2539.8 608.285 2538.99 607.05 2538.65 605.426L2541.44 604.73C2541.7 605.758 2542.2 606.528 2542.94 607.042C2543.69 607.556 2544.66 607.812 2545.86 607.812C2547.23 607.812 2548.31 607.522 2549.12 606.942C2549.93 606.354 2550.34 605.65 2550.34 604.83C2550.34 604.167 2550.1 603.612 2549.64 603.164C2549.18 602.708 2548.46 602.369 2547.5 602.145L2544.32 601.399C2542.57 600.985 2541.29 600.343 2540.47 599.473C2539.66 598.594 2539.25 597.496 2539.25 596.179C2539.25 595.102 2539.55 594.149 2540.16 593.32C2540.77 592.492 2541.6 591.841 2542.65 591.369C2543.72 590.897 2544.92 590.661 2546.26 590.661C2548.15 590.661 2549.63 591.075 2550.71 591.903C2551.79 592.732 2552.56 593.826 2553.02 595.185Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"JourneyMapping\" className=\"map-btn\" onClick={ClickHandler(\"JourneyMapping\")}>\r\n <rect\r\n id=\"Rectangle 6\"\r\n x=\"1435.5\"\r\n y=\"1168.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Journey Mapping\"\r\n d=\"M1450.1 1220.55H1453.18V1238.74C1453.18 1240.37 1452.88 1241.75 1452.28 1242.88C1451.69 1244.02 1450.85 1244.88 1449.76 1245.47C1448.68 1246.05 1447.4 1246.35 1445.92 1246.35C1444.53 1246.35 1443.29 1246.1 1442.2 1245.59C1441.12 1245.08 1440.27 1244.35 1439.64 1243.4C1439.02 1242.46 1438.71 1241.33 1438.71 1240.03H1441.74C1441.74 1240.75 1441.92 1241.38 1442.28 1241.92C1442.64 1242.45 1443.14 1242.87 1443.77 1243.17C1444.4 1243.46 1445.12 1243.61 1445.92 1243.61C1446.81 1243.61 1447.56 1243.43 1448.18 1243.05C1448.8 1242.68 1449.28 1242.13 1449.6 1241.41C1449.93 1240.68 1450.1 1239.79 1450.1 1238.74V1220.55ZM1466.71 1246.4C1464.99 1246.4 1463.48 1245.99 1462.18 1245.17C1460.89 1244.35 1459.87 1243.2 1459.15 1241.72C1458.42 1240.25 1458.06 1238.53 1458.06 1236.55C1458.06 1234.57 1458.42 1232.83 1459.15 1231.35C1459.87 1229.86 1460.89 1228.71 1462.18 1227.89C1463.48 1227.07 1464.99 1226.66 1466.71 1226.66C1468.44 1226.66 1469.95 1227.07 1471.24 1227.89C1472.54 1228.71 1473.55 1229.86 1474.27 1231.35C1475 1232.83 1475.36 1234.57 1475.36 1236.55C1475.36 1238.53 1475 1240.25 1474.27 1241.72C1473.55 1243.2 1472.54 1244.35 1471.24 1245.17C1469.95 1245.99 1468.44 1246.4 1466.71 1246.4ZM1466.71 1243.76C1468.02 1243.76 1469.1 1243.43 1469.95 1242.76C1470.79 1242.08 1471.42 1241.2 1471.82 1240.11C1472.23 1239.01 1472.43 1237.83 1472.43 1236.55C1472.43 1235.28 1472.23 1234.09 1471.82 1232.99C1471.42 1231.88 1470.79 1230.99 1469.95 1230.31C1469.1 1229.64 1468.02 1229.3 1466.71 1229.3C1465.41 1229.3 1464.33 1229.64 1463.48 1230.31C1462.64 1230.99 1462.01 1231.88 1461.61 1232.99C1461.2 1234.09 1461 1235.28 1461 1236.55C1461 1237.83 1461.2 1239.01 1461.61 1240.11C1462.01 1241.2 1462.64 1242.08 1463.48 1242.76C1464.33 1243.43 1465.41 1243.76 1466.71 1243.76ZM1491.87 1238.19V1226.91H1494.81V1246H1491.87V1242.77H1491.67C1491.23 1243.74 1490.53 1244.56 1489.59 1245.24C1488.64 1245.91 1487.45 1246.25 1486.01 1246.25C1484.81 1246.25 1483.75 1245.99 1482.83 1245.47C1481.9 1244.94 1481.17 1244.14 1480.64 1243.08C1480.11 1242.01 1479.84 1240.66 1479.84 1239.04V1226.91H1482.78V1238.84C1482.78 1240.23 1483.17 1241.34 1483.94 1242.17C1484.73 1243 1485.73 1243.41 1486.95 1243.41C1487.68 1243.41 1488.42 1243.23 1489.18 1242.86C1489.94 1242.48 1490.58 1241.91 1491.09 1241.14C1491.61 1240.37 1491.87 1239.39 1491.87 1238.19ZM1500.18 1246V1226.91H1503.01V1229.79H1503.21C1503.56 1228.85 1504.19 1228.08 1505.1 1227.49C1506.01 1226.9 1507.04 1226.61 1508.18 1226.61C1508.4 1226.61 1508.67 1226.61 1508.99 1226.62C1509.31 1226.63 1509.56 1226.64 1509.72 1226.66V1229.64C1509.63 1229.62 1509.4 1229.58 1509.04 1229.53C1508.69 1229.47 1508.32 1229.44 1507.93 1229.44C1507.01 1229.44 1506.18 1229.64 1505.45 1230.03C1504.73 1230.41 1504.16 1230.94 1503.73 1231.62C1503.32 1232.29 1503.11 1233.06 1503.11 1233.92V1246H1500.18ZM1516.13 1234.52V1246H1513.2V1226.91H1516.04V1229.89H1516.28C1516.73 1228.92 1517.41 1228.14 1518.32 1227.56C1519.23 1226.96 1520.41 1226.66 1521.85 1226.66C1523.14 1226.66 1524.28 1226.93 1525.25 1227.46C1526.21 1227.98 1526.97 1228.77 1527.51 1229.84C1528.05 1230.9 1528.32 1232.25 1528.32 1233.87V1246H1525.38V1234.07C1525.38 1232.57 1524.99 1231.4 1524.21 1230.56C1523.43 1229.72 1522.37 1229.3 1521.01 1229.3C1520.07 1229.3 1519.23 1229.5 1518.5 1229.9C1517.77 1230.31 1517.19 1230.9 1516.77 1231.68C1516.35 1232.46 1516.13 1233.41 1516.13 1234.52ZM1541.68 1246.4C1539.84 1246.4 1538.25 1245.99 1536.92 1245.18C1535.59 1244.36 1534.57 1243.22 1533.85 1241.75C1533.14 1240.27 1532.78 1238.56 1532.78 1236.6C1532.78 1234.65 1533.14 1232.92 1533.85 1231.43C1534.57 1229.93 1535.57 1228.77 1536.86 1227.93C1538.15 1227.08 1539.66 1226.66 1541.38 1226.66C1542.38 1226.66 1543.36 1226.83 1544.33 1227.16C1545.3 1227.49 1546.18 1228.03 1546.97 1228.77C1547.77 1229.51 1548.4 1230.49 1548.88 1231.71C1549.35 1232.92 1549.58 1234.42 1549.58 1236.21V1237.45H1534.87V1234.91H1546.6C1546.6 1233.84 1546.39 1232.87 1545.96 1232.03C1545.53 1231.18 1544.93 1230.52 1544.14 1230.03C1543.36 1229.54 1542.44 1229.3 1541.38 1229.3C1540.21 1229.3 1539.2 1229.59 1538.35 1230.17C1537.5 1230.74 1536.85 1231.48 1536.4 1232.4C1535.94 1233.32 1535.71 1234.31 1535.71 1235.36V1237.05C1535.71 1238.49 1535.96 1239.72 1536.46 1240.72C1536.96 1241.71 1537.67 1242.47 1538.56 1242.99C1539.45 1243.51 1540.49 1243.76 1541.68 1243.76C1542.45 1243.76 1543.15 1243.66 1543.77 1243.44C1544.4 1243.22 1544.94 1242.88 1545.4 1242.45C1545.85 1242 1546.2 1241.44 1546.45 1240.78L1549.29 1241.58C1548.99 1242.54 1548.49 1243.38 1547.78 1244.11C1547.08 1244.83 1546.21 1245.4 1545.17 1245.8C1544.14 1246.2 1542.97 1246.4 1541.68 1246.4ZM1555.35 1253.16C1554.86 1253.16 1554.41 1253.12 1554.02 1253.03C1553.64 1252.96 1553.37 1252.89 1553.22 1252.81L1553.96 1250.23C1554.68 1250.41 1555.3 1250.47 1555.85 1250.42C1556.4 1250.38 1556.88 1250.13 1557.31 1249.69C1557.74 1249.26 1558.13 1248.56 1558.49 1247.59L1559.03 1246.1L1551.97 1226.91H1555.16L1560.43 1242.12H1560.62L1565.89 1226.91H1569.08L1560.97 1248.78C1560.61 1249.77 1560.16 1250.59 1559.62 1251.23C1559.08 1251.89 1558.45 1252.37 1557.74 1252.69C1557.04 1253 1556.24 1253.16 1555.35 1253.16ZM1583.19 1220.55H1586.87L1595.52 1241.67H1595.82L1604.47 1220.55H1608.15V1246H1605.26V1226.66H1605.01L1597.06 1246H1594.28L1586.32 1226.66H1586.07V1246H1583.19V1220.55ZM1619.55 1246.45C1618.34 1246.45 1617.24 1246.22 1616.25 1245.76C1615.27 1245.3 1614.48 1244.63 1613.9 1243.76C1613.32 1242.88 1613.03 1241.82 1613.03 1240.58C1613.03 1239.49 1613.25 1238.6 1613.68 1237.92C1614.11 1237.23 1614.69 1236.69 1615.41 1236.31C1616.13 1235.92 1616.92 1235.63 1617.79 1235.44C1618.67 1235.24 1619.56 1235.08 1620.44 1234.96C1621.6 1234.81 1622.54 1234.7 1623.26 1234.63C1623.99 1234.54 1624.52 1234.41 1624.85 1234.22C1625.19 1234.03 1625.36 1233.7 1625.36 1233.22V1233.12C1625.36 1231.9 1625.03 1230.94 1624.36 1230.26C1623.69 1229.59 1622.69 1229.25 1621.34 1229.25C1619.94 1229.25 1618.84 1229.55 1618.04 1230.17C1617.25 1230.78 1616.69 1231.43 1616.37 1232.13L1613.58 1231.13C1614.08 1229.97 1614.74 1229.07 1615.57 1228.43C1616.41 1227.77 1617.32 1227.32 1618.3 1227.06C1619.3 1226.79 1620.28 1226.66 1621.24 1226.66C1621.85 1226.66 1622.55 1226.74 1623.35 1226.88C1624.15 1227.03 1624.93 1227.32 1625.67 1227.77C1626.43 1228.21 1627.05 1228.89 1627.55 1229.79C1628.05 1230.7 1628.3 1231.91 1628.3 1233.42V1246H1625.36V1243.41H1625.21C1625.02 1243.83 1624.68 1244.27 1624.22 1244.74C1623.76 1245.22 1623.14 1245.62 1622.37 1245.95C1621.6 1246.28 1620.66 1246.45 1619.55 1246.45ZM1619.99 1243.81C1621.15 1243.81 1622.13 1243.58 1622.93 1243.13C1623.73 1242.67 1624.34 1242.08 1624.74 1241.36C1625.16 1240.64 1625.36 1239.88 1625.36 1239.09V1236.4C1625.24 1236.55 1624.97 1236.69 1624.54 1236.81C1624.13 1236.93 1623.65 1237.03 1623.1 1237.13C1622.56 1237.21 1622.04 1237.28 1621.52 1237.35C1621.02 1237.41 1620.61 1237.46 1620.29 1237.5C1619.53 1237.6 1618.82 1237.76 1618.16 1237.98C1617.5 1238.2 1616.97 1238.53 1616.56 1238.97C1616.17 1239.4 1615.97 1239.98 1615.97 1240.73C1615.97 1241.75 1616.34 1242.52 1617.1 1243.04C1617.86 1243.56 1618.83 1243.81 1619.99 1243.81ZM1633.65 1253.16V1226.91H1636.48V1229.94H1636.83C1637.05 1229.61 1637.35 1229.19 1637.73 1228.67C1638.12 1228.15 1638.67 1227.69 1639.39 1227.28C1640.12 1226.87 1641.11 1226.66 1642.35 1226.66C1643.96 1226.66 1645.38 1227.06 1646.6 1227.87C1647.83 1228.67 1648.79 1229.81 1649.47 1231.28C1650.16 1232.76 1650.5 1234.5 1650.5 1236.5C1650.5 1238.53 1650.16 1240.28 1649.47 1241.76C1648.79 1243.24 1647.83 1244.38 1646.61 1245.19C1645.4 1246 1643.99 1246.4 1642.4 1246.4C1641.17 1246.4 1640.19 1246.19 1639.46 1245.79C1638.72 1245.37 1638.15 1244.91 1637.75 1244.38C1637.35 1243.85 1637.05 1243.41 1636.83 1243.07H1636.58V1253.16H1633.65ZM1636.53 1236.45C1636.53 1237.9 1636.75 1239.17 1637.17 1240.27C1637.59 1241.36 1638.21 1242.22 1639.02 1242.84C1639.83 1243.46 1640.83 1243.76 1642 1243.76C1643.23 1243.76 1644.25 1243.44 1645.07 1242.79C1645.9 1242.14 1646.52 1241.26 1646.94 1240.16C1647.36 1239.05 1647.57 1237.81 1647.57 1236.45C1647.57 1235.11 1647.36 1233.9 1646.95 1232.83C1646.54 1231.74 1645.93 1230.88 1645.1 1230.25C1644.28 1229.61 1643.25 1229.3 1642 1229.3C1640.81 1229.3 1639.81 1229.6 1639 1230.2C1638.18 1230.8 1637.57 1231.64 1637.16 1232.71C1636.74 1233.78 1636.53 1235.03 1636.53 1236.45ZM1654.98 1253.16V1226.91H1657.81V1229.94H1658.16C1658.38 1229.61 1658.67 1229.19 1659.06 1228.67C1659.45 1228.15 1660 1227.69 1660.72 1227.28C1661.45 1226.87 1662.44 1226.66 1663.68 1226.66C1665.29 1226.66 1666.7 1227.06 1667.93 1227.87C1669.16 1228.67 1670.11 1229.81 1670.8 1231.28C1671.49 1232.76 1671.83 1234.5 1671.83 1236.5C1671.83 1238.53 1671.49 1240.28 1670.8 1241.76C1670.11 1243.24 1669.16 1244.38 1667.94 1245.19C1666.72 1246 1665.32 1246.4 1663.73 1246.4C1662.5 1246.4 1661.52 1246.19 1660.78 1245.79C1660.05 1245.37 1659.48 1244.91 1659.08 1244.38C1658.68 1243.85 1658.38 1243.41 1658.16 1243.07H1657.91V1253.16H1654.98ZM1657.86 1236.45C1657.86 1237.9 1658.07 1239.17 1658.5 1240.27C1658.92 1241.36 1659.54 1242.22 1660.35 1242.84C1661.16 1243.46 1662.15 1243.76 1663.33 1243.76C1664.56 1243.76 1665.58 1243.44 1666.4 1242.79C1667.23 1242.14 1667.85 1241.26 1668.27 1240.16C1668.69 1239.05 1668.9 1237.81 1668.9 1236.45C1668.9 1235.11 1668.69 1233.9 1668.28 1232.83C1667.87 1231.74 1667.25 1230.88 1666.43 1230.25C1665.61 1229.61 1664.57 1229.3 1663.33 1229.3C1662.14 1229.3 1661.14 1229.6 1660.32 1230.2C1659.51 1230.8 1658.9 1231.64 1658.48 1232.71C1658.07 1233.78 1657.86 1235.03 1657.86 1236.45ZM1676.31 1246V1226.91H1679.24V1246H1676.31ZM1677.8 1223.73C1677.23 1223.73 1676.73 1223.53 1676.32 1223.14C1675.91 1222.75 1675.71 1222.29 1675.71 1221.74C1675.71 1221.19 1675.91 1220.72 1676.32 1220.33C1676.73 1219.94 1677.23 1219.75 1677.8 1219.75C1678.37 1219.75 1678.86 1219.94 1679.27 1220.33C1679.68 1220.72 1679.89 1221.19 1679.89 1221.74C1679.89 1222.29 1679.68 1222.75 1679.27 1223.14C1678.86 1223.53 1678.37 1223.73 1677.8 1223.73ZM1687.55 1234.52V1246H1684.61V1226.91H1687.45V1229.89H1687.7C1688.14 1228.92 1688.82 1228.14 1689.73 1227.56C1690.65 1226.96 1691.82 1226.66 1693.26 1226.66C1694.56 1226.66 1695.69 1226.93 1696.66 1227.46C1697.63 1227.98 1698.38 1228.77 1698.92 1229.84C1699.46 1230.9 1699.73 1232.25 1699.73 1233.87V1246H1696.79V1234.07C1696.79 1232.57 1696.4 1231.4 1695.62 1230.56C1694.85 1229.72 1693.78 1229.3 1692.42 1229.3C1691.48 1229.3 1690.65 1229.5 1689.91 1229.9C1689.18 1230.31 1688.6 1230.9 1688.18 1231.68C1687.76 1232.46 1687.55 1233.41 1687.55 1234.52ZM1712.79 1253.56C1711.38 1253.56 1710.16 1253.37 1709.14 1253.01C1708.12 1252.65 1707.27 1252.18 1706.59 1251.59C1705.92 1251.01 1705.38 1250.39 1704.99 1249.73L1707.32 1248.09C1707.59 1248.44 1707.92 1248.83 1708.33 1249.28C1708.74 1249.74 1709.29 1250.13 1710 1250.46C1710.71 1250.8 1711.64 1250.97 1712.79 1250.97C1714.33 1250.97 1715.61 1250.6 1716.61 1249.85C1717.61 1249.11 1718.11 1247.94 1718.11 1246.35V1242.47H1717.86C1717.65 1242.82 1717.34 1243.25 1716.94 1243.76C1716.55 1244.27 1715.99 1244.72 1715.25 1245.12C1714.52 1245.51 1713.54 1245.7 1712.3 1245.7C1710.75 1245.7 1709.37 1245.34 1708.14 1244.61C1706.93 1243.88 1705.96 1242.82 1705.25 1241.43C1704.54 1240.03 1704.19 1238.34 1704.19 1236.36C1704.19 1234.4 1704.54 1232.7 1705.22 1231.25C1705.91 1229.79 1706.87 1228.66 1708.09 1227.87C1709.32 1227.06 1710.74 1226.66 1712.35 1226.66C1713.59 1226.66 1714.57 1226.87 1715.3 1227.28C1716.04 1227.69 1716.6 1228.15 1716.99 1228.67C1717.39 1229.19 1717.7 1229.61 1717.91 1229.94H1718.21V1226.91H1721.05V1246.55C1721.05 1248.19 1720.67 1249.52 1719.93 1250.55C1719.19 1251.58 1718.19 1252.34 1716.94 1252.82C1715.7 1253.31 1714.32 1253.56 1712.79 1253.56ZM1712.69 1243.07C1713.87 1243.07 1714.86 1242.8 1715.68 1242.26C1716.49 1241.72 1717.11 1240.95 1717.53 1239.93C1717.95 1238.92 1718.16 1237.71 1718.16 1236.31C1718.16 1234.93 1717.95 1233.72 1717.54 1232.66C1717.13 1231.61 1716.51 1230.79 1715.7 1230.19C1714.89 1229.59 1713.89 1229.3 1712.69 1229.3C1711.45 1229.3 1710.41 1229.61 1709.59 1230.24C1708.77 1230.87 1708.15 1231.71 1707.73 1232.78C1707.33 1233.84 1707.12 1235.01 1707.12 1236.31C1707.12 1237.63 1707.33 1238.8 1707.75 1239.82C1708.17 1240.83 1708.79 1241.63 1709.61 1242.21C1710.44 1242.78 1711.47 1243.07 1712.69 1243.07Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g\r\n id=\"HumanCenteredDesign\"\r\n className=\"map-btn\"\r\n onClick={ClickHandler(\"HumanCenteredDesign\")}\r\n >\r\n <rect\r\n id=\"Rectangle 15\"\r\n x=\"963.5\"\r\n y=\"1168.5\"\r\n width=\"290\"\r\n height=\"129\"\r\n rx=\"24.5\"\r\n fill=\"#D9D9D9\"\r\n stroke=\"black\"\r\n />\r\n <path\r\n id=\"Human-centered Design\"\r\n d=\"M971.189 1225V1199.55H974.272V1210.88H987.844V1199.55H990.927V1225H987.844V1213.62H974.272V1225H971.189ZM1008.73 1217.19V1205.91H1011.66V1225H1008.73V1221.77H1008.53C1008.08 1222.74 1007.39 1223.56 1006.44 1224.24C1005.5 1224.91 1004.31 1225.25 1002.86 1225.25C1001.67 1225.25 1000.61 1224.99 999.683 1224.47C998.755 1223.94 998.026 1223.14 997.495 1222.08C996.965 1221.01 996.7 1219.66 996.7 1218.04V1205.91H999.633V1217.84C999.633 1219.23 1000.02 1220.34 1000.8 1221.17C1001.59 1222 1002.59 1222.41 1003.81 1222.41C1004.54 1222.41 1005.28 1222.23 1006.03 1221.86C1006.8 1221.48 1007.43 1220.91 1007.95 1220.14C1008.47 1219.37 1008.73 1218.39 1008.73 1217.19ZM1017.04 1225V1205.91H1019.87V1208.89H1020.12C1020.52 1207.87 1021.16 1207.08 1022.05 1206.52C1022.93 1205.95 1024 1205.66 1025.24 1205.66C1026.5 1205.66 1027.55 1205.95 1028.38 1206.52C1029.23 1207.08 1029.89 1207.87 1030.36 1208.89H1030.56C1031.05 1207.91 1031.78 1207.12 1032.76 1206.54C1033.74 1205.95 1034.91 1205.66 1036.28 1205.66C1037.98 1205.66 1039.38 1206.19 1040.47 1207.26C1041.55 1208.32 1042.09 1209.98 1042.09 1212.22V1225H1039.16V1212.22C1039.16 1210.81 1038.77 1209.81 1038 1209.2C1037.23 1208.6 1036.33 1208.3 1035.28 1208.3C1033.94 1208.3 1032.9 1208.7 1032.16 1209.51C1031.43 1210.32 1031.06 1211.34 1031.06 1212.57V1225H1028.07V1211.92C1028.07 1210.84 1027.72 1209.97 1027.02 1209.3C1026.31 1208.63 1025.41 1208.3 1024.3 1208.3C1023.53 1208.3 1022.82 1208.5 1022.16 1208.9C1021.5 1209.31 1020.97 1209.87 1020.57 1210.59C1020.17 1211.31 1019.97 1212.13 1019.97 1213.07V1225H1017.04ZM1053.07 1225.45C1051.86 1225.45 1050.77 1225.22 1049.78 1224.76C1048.79 1224.3 1048.01 1223.63 1047.43 1222.76C1046.85 1221.88 1046.56 1220.82 1046.56 1219.58C1046.56 1218.49 1046.78 1217.6 1047.21 1216.92C1047.64 1216.23 1048.21 1215.69 1048.94 1215.31C1049.66 1214.92 1050.45 1214.63 1051.32 1214.44C1052.2 1214.24 1053.08 1214.08 1053.97 1213.96C1055.13 1213.81 1056.07 1213.7 1056.79 1213.63C1057.52 1213.54 1058.05 1213.41 1058.38 1213.22C1058.72 1213.03 1058.89 1212.7 1058.89 1212.22V1212.12C1058.89 1210.9 1058.56 1209.94 1057.88 1209.26C1057.22 1208.59 1056.21 1208.25 1054.86 1208.25C1053.46 1208.25 1052.37 1208.55 1051.57 1209.17C1050.78 1209.78 1050.22 1210.43 1049.89 1211.13L1047.11 1210.13C1047.61 1208.97 1048.27 1208.07 1049.1 1207.43C1049.93 1206.77 1050.85 1206.32 1051.83 1206.06C1052.83 1205.79 1053.8 1205.66 1054.76 1205.66C1055.38 1205.66 1056.08 1205.74 1056.88 1205.88C1057.68 1206.03 1058.46 1206.32 1059.2 1206.77C1059.96 1207.21 1060.58 1207.89 1061.08 1208.79C1061.58 1209.7 1061.82 1210.91 1061.82 1212.42V1225H1058.89V1222.41H1058.74C1058.54 1222.83 1058.21 1223.27 1057.75 1223.74C1057.28 1224.22 1056.67 1224.62 1055.9 1224.95C1055.13 1225.28 1054.18 1225.45 1053.07 1225.45ZM1053.52 1222.81C1054.68 1222.81 1055.66 1222.58 1056.46 1222.13C1057.26 1221.67 1057.86 1221.08 1058.27 1220.36C1058.68 1219.64 1058.89 1218.88 1058.89 1218.09V1215.4C1058.77 1215.55 1058.49 1215.69 1058.07 1215.81C1057.66 1215.93 1057.18 1216.03 1056.63 1216.13C1056.09 1216.21 1055.56 1216.28 1055.05 1216.35C1054.55 1216.41 1054.14 1216.46 1053.82 1216.5C1053.06 1216.6 1052.35 1216.76 1051.68 1216.98C1051.03 1217.2 1050.5 1217.53 1050.09 1217.97C1049.69 1218.4 1049.49 1218.98 1049.49 1219.73C1049.49 1220.75 1049.87 1221.52 1050.63 1222.04C1051.39 1222.56 1052.35 1222.81 1053.52 1222.81ZM1070.11 1213.52V1225H1067.18V1205.91H1070.01V1208.89H1070.26C1070.71 1207.92 1071.39 1207.14 1072.3 1206.56C1073.21 1205.96 1074.39 1205.66 1075.83 1205.66C1077.12 1205.66 1078.25 1205.93 1079.22 1206.46C1080.19 1206.98 1080.95 1207.77 1081.48 1208.84C1082.02 1209.9 1082.29 1211.25 1082.29 1212.87V1225H1079.36V1213.07C1079.36 1211.57 1078.97 1210.4 1078.19 1209.56C1077.41 1208.72 1076.34 1208.3 1074.98 1208.3C1074.05 1208.3 1073.21 1208.5 1072.47 1208.9C1071.74 1209.31 1071.17 1209.9 1070.75 1210.68C1070.32 1211.46 1070.11 1212.41 1070.11 1213.52ZM1098.59 1212.72V1215.45H1087.45V1212.72H1098.59ZM1111.51 1225.4C1109.72 1225.4 1108.18 1224.98 1106.88 1224.13C1105.59 1223.28 1104.6 1222.12 1103.9 1220.64C1103.2 1219.15 1102.86 1217.46 1102.86 1215.55C1102.86 1213.62 1103.21 1211.9 1103.92 1210.42C1104.65 1208.93 1105.65 1207.77 1106.93 1206.93C1108.23 1206.08 1109.73 1205.66 1111.46 1205.66C1112.8 1205.66 1114.01 1205.91 1115.09 1206.41C1116.16 1206.9 1117.05 1207.6 1117.73 1208.49C1118.42 1209.39 1118.85 1210.43 1119.01 1211.63H1116.08C1115.86 1210.76 1115.36 1209.99 1114.59 1209.31C1113.83 1208.64 1112.8 1208.3 1111.51 1208.3C1110.36 1208.3 1109.36 1208.59 1108.5 1209.19C1107.64 1209.78 1106.98 1210.61 1106.5 1211.69C1106.03 1212.76 1105.79 1214.01 1105.79 1215.45C1105.79 1216.93 1106.02 1218.21 1106.48 1219.31C1106.96 1220.4 1107.62 1221.25 1108.47 1221.86C1109.34 1222.46 1110.35 1222.76 1111.51 1222.76C1112.27 1222.76 1112.96 1222.63 1113.58 1222.37C1114.2 1222.1 1114.73 1221.72 1115.16 1221.22C1115.59 1220.72 1115.9 1220.13 1116.08 1219.43H1119.01C1118.85 1220.56 1118.44 1221.57 1117.78 1222.48C1117.14 1223.37 1116.28 1224.08 1115.21 1224.61C1114.15 1225.14 1112.91 1225.4 1111.51 1225.4ZM1131.31 1225.4C1129.47 1225.4 1127.88 1224.99 1126.55 1224.18C1125.22 1223.36 1124.2 1222.22 1123.48 1220.75C1122.76 1219.27 1122.41 1217.56 1122.41 1215.6C1122.41 1213.65 1122.76 1211.92 1123.48 1210.43C1124.2 1208.93 1125.2 1207.77 1126.48 1206.93C1127.78 1206.08 1129.28 1205.66 1131.01 1205.66C1132 1205.66 1132.98 1205.83 1133.95 1206.16C1134.92 1206.49 1135.8 1207.03 1136.6 1207.77C1137.4 1208.51 1138.03 1209.49 1138.5 1210.71C1138.97 1211.92 1139.21 1213.42 1139.21 1215.21V1216.45H1124.49V1213.91H1136.23C1136.23 1212.84 1136.01 1211.87 1135.58 1211.03C1135.16 1210.18 1134.55 1209.52 1133.77 1209.03C1132.99 1208.54 1132.07 1208.3 1131.01 1208.3C1129.84 1208.3 1128.83 1208.59 1127.97 1209.17C1127.13 1209.74 1126.48 1210.48 1126.02 1211.4C1125.57 1212.32 1125.34 1213.31 1125.34 1214.36V1216.05C1125.34 1217.49 1125.59 1218.72 1126.09 1219.72C1126.59 1220.71 1127.29 1221.47 1128.19 1221.99C1129.08 1222.51 1130.12 1222.76 1131.31 1222.76C1132.08 1222.76 1132.77 1222.66 1133.39 1222.44C1134.02 1222.22 1134.57 1221.88 1135.02 1221.45C1135.48 1221 1135.83 1220.44 1136.08 1219.78L1138.91 1220.58C1138.61 1221.54 1138.11 1222.38 1137.41 1223.11C1136.7 1223.83 1135.83 1224.4 1134.8 1224.8C1133.76 1225.2 1132.6 1225.4 1131.31 1225.4ZM1146.61 1213.52V1225H1143.67V1205.91H1146.51V1208.89H1146.75C1147.2 1207.92 1147.88 1207.14 1148.79 1206.56C1149.7 1205.96 1150.88 1205.66 1152.32 1205.66C1153.62 1205.66 1154.75 1205.93 1155.72 1206.46C1156.69 1206.98 1157.44 1207.77 1157.98 1208.84C1158.52 1209.9 1158.79 1211.25 1158.79 1212.87V1225H1155.85V1213.07C1155.85 1211.57 1155.46 1210.4 1154.68 1209.56C1153.91 1208.72 1152.84 1208.3 1151.48 1208.3C1150.54 1208.3 1149.7 1208.5 1148.97 1208.9C1148.24 1209.31 1147.66 1209.9 1147.24 1210.68C1146.82 1211.46 1146.61 1212.41 1146.61 1213.52ZM1172.45 1205.91V1208.39H1162.56V1205.91H1172.45ZM1165.44 1201.34H1168.37V1219.53C1168.37 1220.36 1168.49 1220.98 1168.73 1221.4C1168.98 1221.8 1169.3 1222.08 1169.68 1222.22C1170.07 1222.35 1170.48 1222.41 1170.91 1222.41C1171.23 1222.41 1171.5 1222.4 1171.7 1222.37C1171.91 1222.32 1172.08 1222.29 1172.2 1222.27L1172.8 1224.9C1172.6 1224.98 1172.32 1225.05 1171.96 1225.12C1171.61 1225.21 1171.16 1225.25 1170.61 1225.25C1169.78 1225.25 1168.97 1225.07 1168.17 1224.71C1167.39 1224.36 1166.73 1223.82 1166.21 1223.09C1165.7 1222.36 1165.44 1221.44 1165.44 1220.33V1201.34ZM1184.66 1225.4C1182.82 1225.4 1181.23 1224.99 1179.9 1224.18C1178.57 1223.36 1177.55 1222.22 1176.83 1220.75C1176.12 1219.27 1175.76 1217.56 1175.76 1215.6C1175.76 1213.65 1176.12 1211.92 1176.83 1210.43C1177.55 1208.93 1178.55 1207.77 1179.84 1206.93C1181.13 1206.08 1182.64 1205.66 1184.36 1205.66C1185.36 1205.66 1186.34 1205.83 1187.31 1206.16C1188.28 1206.49 1189.16 1207.03 1189.95 1207.77C1190.75 1208.51 1191.38 1209.49 1191.86 1210.71C1192.33 1211.92 1192.56 1213.42 1192.56 1215.21V1216.45H1177.85V1213.91H1189.58C1189.58 1212.84 1189.37 1211.87 1188.94 1211.03C1188.51 1210.18 1187.91 1209.52 1187.12 1209.03C1186.34 1208.54 1185.42 1208.3 1184.36 1208.3C1183.19 1208.3 1182.18 1208.59 1181.33 1209.17C1180.48 1209.74 1179.83 1210.48 1179.38 1211.4C1178.92 1212.32 1178.69 1213.31 1178.69 1214.36V1216.05C1178.69 1217.49 1178.94 1218.72 1179.44 1219.72C1179.95 1220.71 1180.65 1221.47 1181.54 1221.99C1182.44 1222.51 1183.48 1222.76 1184.66 1222.76C1185.43 1222.76 1186.13 1222.66 1186.75 1222.44C1187.38 1222.22 1187.92 1221.88 1188.38 1221.45C1188.83 1221 1189.18 1220.44 1189.43 1219.78L1192.27 1220.58C1191.97 1221.54 1191.47 1222.38 1190.76 1223.11C1190.06 1223.83 1189.19 1224.4 1188.15 1224.8C1187.12 1225.2 1185.95 1225.4 1184.66 1225.4ZM1197.03 1225V1205.91H1199.86V1208.79H1200.06C1200.41 1207.85 1201.04 1207.08 1201.95 1206.49C1202.86 1205.9 1203.89 1205.61 1205.03 1205.61C1205.25 1205.61 1205.52 1205.61 1205.84 1205.62C1206.16 1205.63 1206.41 1205.64 1206.57 1205.66V1208.64C1206.47 1208.62 1206.25 1208.58 1205.89 1208.53C1205.54 1208.47 1205.17 1208.44 1204.78 1208.44C1203.85 1208.44 1203.03 1208.64 1202.3 1209.03C1201.58 1209.41 1201 1209.94 1200.58 1210.62C1200.17 1211.29 1199.96 1212.06 1199.96 1212.92V1225H1197.03ZM1217.47 1225.4C1215.63 1225.4 1214.05 1224.99 1212.71 1224.18C1211.39 1223.36 1210.36 1222.22 1209.64 1220.75C1208.93 1219.27 1208.57 1217.56 1208.57 1215.6C1208.57 1213.65 1208.93 1211.92 1209.64 1210.43C1210.36 1208.93 1211.37 1207.77 1212.65 1206.93C1213.94 1206.08 1215.45 1205.66 1217.17 1205.66C1218.17 1205.66 1219.15 1205.83 1220.12 1206.16C1221.09 1206.49 1221.97 1207.03 1222.77 1207.77C1223.56 1208.51 1224.2 1209.49 1224.67 1210.71C1225.14 1211.92 1225.38 1213.42 1225.38 1215.21V1216.45H1210.66V1213.91H1222.39C1222.39 1212.84 1222.18 1211.87 1221.75 1211.03C1221.33 1210.18 1220.72 1209.52 1219.93 1209.03C1219.15 1208.54 1218.23 1208.3 1217.17 1208.3C1216.01 1208.3 1215 1208.59 1214.14 1209.17C1213.3 1209.74 1212.65 1210.48 1212.19 1211.4C1211.73 1212.32 1211.51 1213.31 1211.51 1214.36V1216.05C1211.51 1217.49 1211.76 1218.72 1212.25 1219.72C1212.76 1220.71 1213.46 1221.47 1214.35 1221.99C1215.25 1222.51 1216.29 1222.76 1217.47 1222.76C1218.24 1222.76 1218.94 1222.66 1219.56 1222.44C1220.19 1222.22 1220.73 1221.88 1221.19 1221.45C1221.64 1221 1222 1220.44 1222.25 1219.78L1225.08 1220.58C1224.78 1221.54 1224.28 1222.38 1223.58 1223.11C1222.87 1223.83 1222 1224.4 1220.97 1224.8C1219.93 1225.2 1218.77 1225.4 1217.47 1225.4ZM1237.05 1225.4C1235.46 1225.4 1234.05 1225 1232.83 1224.19C1231.62 1223.38 1230.66 1222.24 1229.98 1220.76C1229.29 1219.28 1228.94 1217.53 1228.94 1215.5C1228.94 1213.5 1229.29 1211.76 1229.98 1210.28C1230.66 1208.81 1231.62 1207.67 1232.85 1206.87C1234.07 1206.06 1235.49 1205.66 1237.1 1205.66C1238.34 1205.66 1239.32 1205.87 1240.04 1206.28C1240.77 1206.69 1241.33 1207.15 1241.71 1207.67C1242.1 1208.19 1242.4 1208.61 1242.62 1208.94H1242.87V1199.55H1245.8V1225H1242.96V1222.07H1242.62C1242.4 1222.41 1242.09 1222.85 1241.7 1223.38C1241.3 1223.91 1240.73 1224.37 1239.99 1224.79C1239.26 1225.19 1238.27 1225.4 1237.05 1225.4ZM1237.45 1222.76C1238.62 1222.76 1239.62 1222.46 1240.43 1221.84C1241.24 1221.22 1241.86 1220.36 1242.28 1219.27C1242.7 1218.17 1242.91 1216.9 1242.91 1215.45C1242.91 1214.03 1242.71 1212.78 1242.29 1211.71C1241.88 1210.64 1241.27 1209.8 1240.45 1209.2C1239.64 1208.6 1238.64 1208.3 1237.45 1208.3C1236.2 1208.3 1235.17 1208.61 1234.34 1209.25C1233.52 1209.88 1232.9 1210.74 1232.49 1211.83C1232.08 1212.9 1231.88 1214.11 1231.88 1215.45C1231.88 1216.81 1232.08 1218.05 1232.5 1219.16C1232.92 1220.26 1233.54 1221.14 1234.36 1221.79C1235.19 1222.44 1236.22 1222.76 1237.45 1222.76ZM1062.48 1267H1054.62V1241.55H1062.83C1065.29 1241.55 1067.41 1242.06 1069.16 1243.07C1070.92 1244.09 1072.27 1245.54 1073.2 1247.44C1074.14 1249.33 1074.61 1251.59 1074.61 1254.22C1074.61 1256.87 1074.14 1259.16 1073.19 1261.07C1072.25 1262.98 1070.87 1264.44 1069.06 1265.47C1067.26 1266.49 1065.06 1267 1062.48 1267ZM1057.7 1264.27H1062.28C1064.38 1264.27 1066.13 1263.86 1067.51 1263.05C1068.89 1262.24 1069.93 1261.08 1070.61 1259.58C1071.29 1258.08 1071.62 1256.29 1071.62 1254.22C1071.62 1252.17 1071.29 1250.4 1070.62 1248.92C1069.95 1247.42 1068.94 1246.28 1067.61 1245.49C1066.28 1244.68 1064.61 1244.28 1062.63 1244.28H1057.7V1264.27ZM1087.38 1267.4C1085.55 1267.4 1083.96 1266.99 1082.62 1266.18C1081.3 1265.36 1080.28 1264.22 1079.55 1262.75C1078.84 1261.27 1078.49 1259.56 1078.49 1257.6C1078.49 1255.65 1078.84 1253.92 1079.55 1252.43C1080.28 1250.93 1081.28 1249.77 1082.56 1248.93C1083.85 1248.08 1085.36 1247.66 1087.09 1247.66C1088.08 1247.66 1089.06 1247.83 1090.03 1248.16C1091 1248.49 1091.88 1249.03 1092.68 1249.77C1093.47 1250.51 1094.11 1251.49 1094.58 1252.71C1095.05 1253.92 1095.29 1255.42 1095.29 1257.21V1258.45H1080.57V1255.91H1092.31C1092.31 1254.84 1092.09 1253.87 1091.66 1253.03C1091.24 1252.18 1090.63 1251.52 1089.85 1251.03C1089.07 1250.54 1088.15 1250.3 1087.09 1250.3C1085.92 1250.3 1084.91 1250.59 1084.05 1251.17C1083.21 1251.74 1082.56 1252.48 1082.1 1253.4C1081.65 1254.32 1081.42 1255.31 1081.42 1256.36V1258.05C1081.42 1259.49 1081.67 1260.72 1082.16 1261.72C1082.67 1262.71 1083.37 1263.47 1084.27 1263.99C1085.16 1264.51 1086.2 1264.76 1087.38 1264.76C1088.16 1264.76 1088.85 1264.66 1089.47 1264.44C1090.1 1264.22 1090.65 1263.88 1091.1 1263.45C1091.56 1263 1091.91 1262.44 1092.16 1261.78L1094.99 1262.58C1094.69 1263.54 1094.19 1264.38 1093.49 1265.11C1092.78 1265.83 1091.91 1266.4 1090.88 1266.8C1089.84 1267.2 1088.68 1267.4 1087.38 1267.4ZM1113.27 1252.18L1110.64 1252.93C1110.47 1252.49 1110.23 1252.06 1109.91 1251.65C1109.59 1251.23 1109.16 1250.88 1108.61 1250.61C1108.07 1250.33 1107.37 1250.2 1106.51 1250.2C1105.34 1250.2 1104.37 1250.47 1103.59 1251C1102.82 1251.53 1102.44 1252.21 1102.44 1253.03C1102.44 1253.76 1102.7 1254.33 1103.23 1254.76C1103.76 1255.18 1104.59 1255.53 1105.72 1255.81L1108.55 1256.51C1110.26 1256.92 1111.53 1257.56 1112.37 1258.41C1113.2 1259.26 1113.62 1260.35 1113.62 1261.68C1113.62 1262.77 1113.31 1263.75 1112.68 1264.61C1112.06 1265.48 1111.19 1266.15 1110.07 1266.65C1108.95 1267.15 1107.65 1267.4 1106.16 1267.4C1104.22 1267.4 1102.61 1266.98 1101.33 1266.13C1100.05 1265.28 1099.25 1264.05 1098.91 1262.43L1101.69 1261.73C1101.96 1262.76 1102.46 1263.53 1103.19 1264.04C1103.94 1264.56 1104.91 1264.81 1106.12 1264.81C1107.48 1264.81 1108.57 1264.52 1109.37 1263.94C1110.18 1263.35 1110.59 1262.65 1110.59 1261.83C1110.59 1261.17 1110.36 1260.61 1109.89 1260.16C1109.43 1259.71 1108.72 1259.37 1107.76 1259.14L1104.57 1258.4C1102.83 1257.98 1101.54 1257.34 1100.72 1256.47C1099.91 1255.59 1099.5 1254.5 1099.5 1253.18C1099.5 1252.1 1099.81 1251.15 1100.41 1250.32C1101.02 1249.49 1101.86 1248.84 1102.91 1248.37C1103.97 1247.9 1105.17 1247.66 1106.51 1247.66C1108.4 1247.66 1109.89 1248.07 1110.96 1248.9C1112.05 1249.73 1112.82 1250.83 1113.27 1252.18ZM1118.04 1267V1247.91H1120.97V1267H1118.04ZM1119.53 1244.73C1118.96 1244.73 1118.46 1244.53 1118.05 1244.14C1117.64 1243.75 1117.44 1243.29 1117.44 1242.74C1117.44 1242.19 1117.64 1241.72 1118.05 1241.33C1118.46 1240.94 1118.96 1240.75 1119.53 1240.75C1120.1 1240.75 1120.59 1240.94 1121 1241.33C1121.41 1241.72 1121.62 1242.19 1121.62 1242.74C1121.62 1243.29 1121.41 1243.75 1121 1244.14C1120.59 1244.53 1120.1 1244.73 1119.53 1244.73ZM1134.05 1274.56C1132.63 1274.56 1131.41 1274.37 1130.4 1274.01C1129.38 1273.65 1128.53 1273.18 1127.85 1272.59C1127.18 1272.01 1126.64 1271.39 1126.24 1270.73L1128.58 1269.09C1128.85 1269.44 1129.18 1269.83 1129.59 1270.28C1129.99 1270.74 1130.55 1271.13 1131.25 1271.46C1131.97 1271.8 1132.9 1271.97 1134.05 1271.97C1135.59 1271.97 1136.86 1271.6 1137.87 1270.85C1138.87 1270.11 1139.37 1268.94 1139.37 1267.35V1263.47H1139.12C1138.9 1263.82 1138.6 1264.25 1138.2 1264.76C1137.81 1265.27 1137.25 1265.72 1136.51 1266.12C1135.78 1266.51 1134.8 1266.7 1133.55 1266.7C1132.01 1266.7 1130.63 1266.34 1129.4 1265.61C1128.18 1264.88 1127.22 1263.82 1126.5 1262.43C1125.8 1261.03 1125.45 1259.34 1125.45 1257.36C1125.45 1255.4 1125.79 1253.7 1126.48 1252.25C1127.17 1250.79 1128.12 1249.66 1129.35 1248.87C1130.58 1248.06 1131.99 1247.66 1133.6 1247.66C1134.84 1247.66 1135.83 1247.87 1136.56 1248.28C1137.3 1248.69 1137.86 1249.15 1138.25 1249.67C1138.65 1250.19 1138.95 1250.61 1139.17 1250.94H1139.47V1247.91H1142.3V1267.55C1142.3 1269.19 1141.93 1270.52 1141.18 1271.55C1140.45 1272.58 1139.45 1273.34 1138.2 1273.82C1136.96 1274.31 1135.57 1274.56 1134.05 1274.56ZM1133.95 1264.07C1135.13 1264.07 1136.12 1263.8 1136.93 1263.26C1137.74 1262.72 1138.36 1261.95 1138.78 1260.93C1139.21 1259.92 1139.42 1258.71 1139.42 1257.31C1139.42 1255.93 1139.21 1254.72 1138.8 1253.66C1138.38 1252.61 1137.77 1251.79 1136.96 1251.19C1136.15 1250.59 1135.14 1250.3 1133.95 1250.3C1132.71 1250.3 1131.67 1250.61 1130.84 1251.24C1130.02 1251.87 1129.41 1252.71 1128.99 1253.78C1128.58 1254.84 1128.38 1256.01 1128.38 1257.31C1128.38 1258.63 1128.59 1259.8 1129 1260.82C1129.43 1261.83 1130.05 1262.63 1130.87 1263.21C1131.7 1263.78 1132.72 1264.07 1133.95 1264.07ZM1150.6 1255.52V1267H1147.67V1247.91H1150.51V1250.89H1150.75C1151.2 1249.92 1151.88 1249.14 1152.79 1248.56C1153.7 1247.96 1154.88 1247.66 1156.32 1247.66C1157.61 1247.66 1158.75 1247.93 1159.72 1248.46C1160.68 1248.98 1161.44 1249.77 1161.98 1250.84C1162.52 1251.9 1162.79 1253.25 1162.79 1254.87V1267H1159.85V1255.07C1159.85 1253.57 1159.46 1252.4 1158.68 1251.56C1157.9 1250.72 1156.84 1250.3 1155.48 1250.3C1154.54 1250.3 1153.7 1250.5 1152.97 1250.9C1152.24 1251.31 1151.66 1251.9 1151.24 1252.68C1150.82 1253.46 1150.6 1254.41 1150.6 1255.52Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"Outcome\">\r\n <rect\r\n id=\"Rectangle 7\"\r\n x=\"1898\"\r\n y=\"1357\"\r\n width=\"572\"\r\n height=\"333\"\r\n rx=\"50\"\r\n fill=\"#68A45F\"\r\n />\r\n <path\r\n d=\"M2124.98 1410.09C2124.98 1413.24 2124.42 1415.95 2123.28 1418.24C2122.14 1420.54 2120.59 1422.3 2118.61 1423.54C2116.63 1424.79 2114.36 1425.41 2111.82 1425.41C2109.28 1425.41 2107.02 1424.79 2105.04 1423.54C2103.06 1422.3 2101.5 1420.54 2100.36 1418.24C2099.23 1415.95 2098.66 1413.24 2098.66 1410.09C2098.66 1406.95 2099.23 1404.23 2100.36 1401.94C2101.5 1399.65 2103.06 1397.88 2105.04 1396.64C2107.02 1395.4 2109.28 1394.77 2111.82 1394.77C2114.36 1394.77 2116.63 1395.4 2118.61 1396.64C2120.59 1397.88 2122.14 1399.65 2123.28 1401.94C2124.42 1404.23 2124.98 1406.95 2124.98 1410.09ZM2121.49 1410.09C2121.49 1407.51 2121.06 1405.33 2120.19 1403.55C2119.34 1401.78 2118.18 1400.43 2116.71 1399.52C2115.26 1398.61 2113.63 1398.15 2111.82 1398.15C2110.02 1398.15 2108.38 1398.61 2106.92 1399.52C2105.46 1400.43 2104.3 1401.78 2103.44 1403.55C2102.58 1405.33 2102.15 1407.51 2102.15 1410.09C2102.15 1412.67 2102.58 1414.85 2103.44 1416.63C2104.3 1418.4 2105.46 1419.75 2106.92 1420.66C2108.38 1421.57 2110.02 1422.03 2111.82 1422.03C2113.63 1422.03 2115.26 1421.57 2116.71 1420.66C2118.18 1419.75 2119.34 1418.4 2120.19 1416.63C2121.06 1414.85 2121.49 1412.67 2121.49 1410.09ZM2144.68 1415.86V1402.64H2148.12V1425H2144.68V1421.21H2144.45C2143.93 1422.35 2143.11 1423.32 2142 1424.11C2140.9 1424.9 2139.5 1425.29 2137.81 1425.29C2136.41 1425.29 2135.17 1424.99 2134.08 1424.37C2133 1423.75 2132.14 1422.82 2131.52 1421.58C2130.9 1420.33 2130.59 1418.75 2130.59 1416.85V1402.64H2134.03V1416.61C2134.03 1418.24 2134.48 1419.54 2135.39 1420.52C2136.32 1421.49 2137.49 1421.97 2138.92 1421.97C2139.77 1421.97 2140.64 1421.75 2141.52 1421.32C2142.42 1420.88 2143.16 1420.21 2143.77 1419.31C2144.38 1418.4 2144.68 1417.25 2144.68 1415.86ZM2164.14 1402.64V1405.55H2152.55V1402.64H2164.14ZM2155.93 1397.28H2159.36V1418.59C2159.36 1419.56 2159.5 1420.29 2159.78 1420.78C2160.08 1421.25 2160.45 1421.57 2160.89 1421.74C2161.35 1421.89 2161.83 1421.97 2162.33 1421.97C2162.71 1421.97 2163.02 1421.95 2163.26 1421.91C2163.51 1421.86 2163.7 1421.83 2163.85 1421.8L2164.55 1424.88C2164.31 1424.97 2163.99 1425.06 2163.57 1425.15C2163.15 1425.24 2162.62 1425.29 2161.98 1425.29C2161.01 1425.29 2160.06 1425.08 2159.13 1424.67C2158.21 1424.25 2157.44 1423.61 2156.83 1422.76C2156.23 1421.9 2155.93 1420.83 2155.93 1419.53V1397.28ZM2178.15 1425.47C2176.06 1425.47 2174.25 1424.97 2172.74 1423.98C2171.22 1422.99 2170.06 1421.63 2169.24 1419.89C2168.43 1418.15 2168.02 1416.17 2168.02 1413.93C2168.02 1411.66 2168.44 1409.66 2169.27 1407.92C2170.12 1406.17 2171.29 1404.81 2172.79 1403.83C2174.31 1402.84 2176.07 1402.35 2178.09 1402.35C2179.67 1402.35 2181.08 1402.64 2182.35 1403.22C2183.61 1403.8 2184.64 1404.62 2185.45 1405.66C2186.25 1406.71 2186.75 1407.94 2186.95 1409.33H2183.51C2183.25 1408.31 2182.67 1407.41 2181.76 1406.63C2180.87 1405.83 2179.67 1405.43 2178.15 1405.43C2176.81 1405.43 2175.64 1405.78 2174.63 1406.48C2173.63 1407.17 2172.85 1408.14 2172.28 1409.41C2171.73 1410.66 2171.45 1412.13 2171.45 1413.82C2171.45 1415.55 2171.73 1417.05 2172.27 1418.33C2172.82 1419.61 2173.6 1420.61 2174.6 1421.32C2175.61 1422.02 2176.79 1422.38 2178.15 1422.38C2179.04 1422.38 2179.86 1422.22 2180.58 1421.91C2181.31 1421.6 2181.93 1421.16 2182.43 1420.57C2182.94 1419.99 2183.3 1419.29 2183.51 1418.48H2186.95C2186.75 1419.8 2186.27 1420.99 2185.5 1422.04C2184.75 1423.09 2183.74 1423.93 2182.49 1424.55C2181.25 1425.16 2179.8 1425.47 2178.15 1425.47ZM2201.05 1425.47C2199.04 1425.47 2197.26 1424.99 2195.74 1424.02C2194.23 1423.06 2193.04 1421.72 2192.19 1419.99C2191.34 1418.26 2190.92 1416.24 2190.92 1413.93C2190.92 1411.61 2191.34 1409.57 2192.19 1407.83C2193.04 1406.1 2194.23 1404.75 2195.74 1403.79C2197.26 1402.83 2199.04 1402.35 2201.05 1402.35C2203.07 1402.35 2204.84 1402.83 2206.35 1403.79C2207.88 1404.75 2209.06 1406.1 2209.91 1407.83C2210.76 1409.57 2211.19 1411.61 2211.19 1413.93C2211.19 1416.24 2210.76 1418.26 2209.91 1419.99C2209.06 1421.72 2207.88 1423.06 2206.35 1424.02C2204.84 1424.99 2203.07 1425.47 2201.05 1425.47ZM2201.05 1422.38C2202.59 1422.38 2203.85 1421.99 2204.84 1421.2C2205.83 1420.41 2206.56 1419.38 2207.04 1418.1C2207.51 1416.82 2207.75 1415.43 2207.75 1413.93C2207.75 1412.44 2207.51 1411.05 2207.04 1409.76C2206.56 1408.47 2205.83 1407.42 2204.84 1406.63C2203.85 1405.83 2202.59 1405.43 2201.05 1405.43C2199.52 1405.43 2198.26 1405.83 2197.27 1406.63C2196.28 1407.42 2195.55 1408.47 2195.07 1409.76C2194.59 1411.05 2194.36 1412.44 2194.36 1413.93C2194.36 1415.43 2194.59 1416.82 2195.07 1418.1C2195.55 1419.38 2196.28 1420.41 2197.27 1421.2C2198.26 1421.99 2199.52 1422.38 2201.05 1422.38ZM2216.43 1425V1402.64H2219.75V1406.13H2220.04C2220.51 1404.94 2221.26 1404.01 2222.3 1403.35C2223.34 1402.68 2224.59 1402.35 2226.04 1402.35C2227.52 1402.35 2228.75 1402.68 2229.73 1403.35C2230.72 1404.01 2231.49 1404.94 2232.04 1406.13H2232.27C2232.85 1404.98 2233.71 1404.06 2234.85 1403.38C2236 1402.69 2237.37 1402.35 2238.97 1402.35C2240.97 1402.35 2242.61 1402.97 2243.88 1404.22C2245.15 1405.47 2245.79 1407.4 2245.79 1410.03V1425H2242.35V1410.03C2242.35 1408.38 2241.9 1407.2 2241 1406.49C2240.09 1405.79 2239.03 1405.43 2237.81 1405.43C2236.23 1405.43 2235.02 1405.91 2234.15 1406.86C2233.29 1407.8 2232.86 1408.99 2232.86 1410.44V1425H2229.36V1409.68C2229.36 1408.41 2228.95 1407.39 2228.12 1406.61C2227.3 1405.82 2226.24 1405.43 2224.94 1405.43C2224.04 1405.43 2223.21 1405.67 2222.43 1406.15C2221.66 1406.62 2221.04 1407.28 2220.57 1408.13C2220.1 1408.96 2219.87 1409.93 2219.87 1411.02V1425H2216.43ZM2261.44 1425.47C2259.29 1425.47 2257.43 1424.99 2255.87 1424.04C2254.31 1423.08 2253.12 1421.74 2252.27 1420.02C2251.44 1418.29 2251.02 1416.28 2251.02 1413.99C2251.02 1411.7 2251.44 1409.68 2252.27 1407.94C2253.12 1406.18 2254.29 1404.81 2255.8 1403.83C2257.31 1402.84 2259.08 1402.35 2261.09 1402.35C2262.26 1402.35 2263.41 1402.54 2264.55 1402.93C2265.68 1403.32 2266.71 1403.95 2267.65 1404.82C2268.58 1405.68 2269.32 1406.83 2269.87 1408.26C2270.43 1409.68 2270.7 1411.44 2270.7 1413.53V1414.98H2253.47V1412.01H2267.21C2267.21 1410.75 2266.96 1409.62 2266.45 1408.63C2265.96 1407.64 2265.25 1406.86 2264.33 1406.29C2263.41 1405.72 2262.34 1405.43 2261.09 1405.43C2259.73 1405.43 2258.54 1405.77 2257.54 1406.45C2256.55 1407.12 2255.79 1407.99 2255.26 1409.07C2254.72 1410.15 2254.46 1411.3 2254.46 1412.54V1414.52C2254.46 1416.21 2254.75 1417.64 2255.33 1418.81C2255.92 1419.98 2256.74 1420.87 2257.79 1421.48C2258.84 1422.08 2260.06 1422.38 2261.44 1422.38C2262.35 1422.38 2263.16 1422.25 2263.89 1422C2264.63 1421.74 2265.26 1421.35 2265.8 1420.84C2266.33 1420.31 2266.74 1419.66 2267.04 1418.88L2270.35 1419.82C2270.01 1420.94 2269.42 1421.93 2268.59 1422.79C2267.77 1423.63 2266.75 1424.29 2265.54 1424.77C2264.32 1425.23 2262.96 1425.47 2261.44 1425.47Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M2096.21 1433.15H2272.8V1435.95H2096.21V1433.15Z\" fill=\"black\" />\r\n <path\r\n id=\"You will be solving an unmet need\"\r\n d=\"M2007.95 1478.55H2011.48L2018.54 1490.43H2018.83L2025.89 1478.55H2029.42L2020.23 1493.51V1504H2017.14V1493.51L2007.95 1478.55ZM2038.07 1504.4C2036.34 1504.4 2034.83 1503.99 2033.53 1503.17C2032.24 1502.35 2031.23 1501.2 2030.5 1499.72C2029.78 1498.25 2029.42 1496.53 2029.42 1494.55C2029.42 1492.57 2029.78 1490.83 2030.5 1489.35C2031.23 1487.86 2032.24 1486.71 2033.53 1485.89C2034.83 1485.07 2036.34 1484.66 2038.07 1484.66C2039.79 1484.66 2041.3 1485.07 2042.59 1485.89C2043.89 1486.71 2044.9 1487.86 2045.63 1489.35C2046.35 1490.83 2046.72 1492.57 2046.72 1494.55C2046.72 1496.53 2046.35 1498.25 2045.63 1499.72C2044.9 1501.2 2043.89 1502.35 2042.59 1503.17C2041.3 1503.99 2039.79 1504.4 2038.07 1504.4ZM2038.07 1501.76C2039.38 1501.76 2040.45 1501.43 2041.3 1500.76C2042.14 1500.08 2042.77 1499.2 2043.18 1498.11C2043.58 1497.01 2043.79 1495.83 2043.79 1494.55C2043.79 1493.28 2043.58 1492.09 2043.18 1490.99C2042.77 1489.88 2042.14 1488.99 2041.3 1488.31C2040.45 1487.64 2039.38 1487.3 2038.07 1487.3C2036.76 1487.3 2035.68 1487.64 2034.84 1488.31C2033.99 1488.99 2033.37 1489.88 2032.96 1490.99C2032.55 1492.09 2032.35 1493.28 2032.35 1494.55C2032.35 1495.83 2032.55 1497.01 2032.96 1498.11C2033.37 1499.2 2033.99 1500.08 2034.84 1500.76C2035.68 1501.43 2036.76 1501.76 2038.07 1501.76ZM2063.23 1496.19V1484.91H2066.16V1504H2063.23V1500.77H2063.03C2062.58 1501.74 2061.89 1502.56 2060.94 1503.24C2060 1503.91 2058.8 1504.25 2057.36 1504.25C2056.17 1504.25 2055.11 1503.99 2054.18 1503.47C2053.25 1502.94 2052.52 1502.14 2051.99 1501.08C2051.46 1500.01 2051.2 1498.66 2051.2 1497.04V1484.91H2054.13V1496.84C2054.13 1498.23 2054.52 1499.34 2055.3 1500.17C2056.09 1501 2057.09 1501.41 2058.31 1501.41C2059.03 1501.41 2059.78 1501.23 2060.53 1500.86C2061.29 1500.48 2061.93 1499.91 2062.44 1499.14C2062.97 1498.37 2063.23 1497.39 2063.23 1496.19ZM2085.7 1504L2079.89 1484.91H2082.97L2087.09 1499.53H2087.29L2091.37 1484.91H2094.5L2098.53 1499.48H2098.73L2102.85 1484.91H2105.94L2100.12 1504H2097.24L2093.06 1489.33H2092.76L2088.59 1504H2085.7ZM2109.81 1504V1484.91H2112.75V1504H2109.81ZM2111.31 1481.73C2110.73 1481.73 2110.24 1481.53 2109.83 1481.14C2109.42 1480.75 2109.22 1480.29 2109.22 1479.74C2109.22 1479.19 2109.42 1478.72 2109.83 1478.33C2110.24 1477.94 2110.73 1477.75 2111.31 1477.75C2111.88 1477.75 2112.37 1477.94 2112.77 1478.33C2113.19 1478.72 2113.39 1479.19 2113.39 1479.74C2113.39 1480.29 2113.19 1480.75 2112.77 1481.14C2112.37 1481.53 2111.88 1481.73 2111.31 1481.73ZM2121.05 1478.55V1504H2118.12V1478.55H2121.05ZM2129.36 1478.55V1504H2126.43V1478.55H2129.36ZM2144.97 1504V1478.55H2147.91V1487.94H2148.15C2148.37 1487.61 2148.67 1487.19 2149.05 1486.67C2149.44 1486.15 2149.99 1485.69 2150.72 1485.28C2151.44 1484.87 2152.43 1484.66 2153.67 1484.66C2155.28 1484.66 2156.7 1485.06 2157.92 1485.87C2159.15 1486.67 2160.11 1487.81 2160.8 1489.28C2161.48 1490.76 2161.83 1492.5 2161.83 1494.5C2161.83 1496.53 2161.48 1498.28 2160.8 1499.76C2160.11 1501.24 2159.15 1502.38 2157.94 1503.19C2156.72 1504 2155.31 1504.4 2153.72 1504.4C2152.5 1504.4 2151.51 1504.19 2150.78 1503.79C2150.04 1503.37 2149.47 1502.91 2149.07 1502.38C2148.68 1501.85 2148.37 1501.41 2148.15 1501.07H2147.81V1504H2144.97ZM2147.86 1494.45C2147.86 1495.9 2148.07 1497.17 2148.49 1498.27C2148.91 1499.36 2149.53 1500.22 2150.34 1500.84C2151.15 1501.46 2152.15 1501.76 2153.33 1501.76C2154.55 1501.76 2155.57 1501.44 2156.4 1500.79C2157.22 1500.14 2157.85 1499.26 2158.26 1498.16C2158.68 1497.05 2158.89 1495.81 2158.89 1494.45C2158.89 1493.11 2158.69 1491.9 2158.27 1490.83C2157.87 1489.74 2157.25 1488.88 2156.42 1488.25C2155.6 1487.61 2154.57 1487.3 2153.33 1487.3C2152.13 1487.3 2151.13 1487.6 2150.32 1488.2C2149.51 1488.8 2148.89 1489.64 2148.48 1490.71C2148.06 1491.78 2147.86 1493.03 2147.86 1494.45ZM2174.32 1504.4C2172.48 1504.4 2170.89 1503.99 2169.56 1503.18C2168.23 1502.36 2167.21 1501.22 2166.49 1499.75C2165.77 1498.27 2165.42 1496.56 2165.42 1494.6C2165.42 1492.65 2165.77 1490.92 2166.49 1489.43C2167.21 1487.93 2168.21 1486.77 2169.5 1485.93C2170.79 1485.08 2172.3 1484.66 2174.02 1484.66C2175.01 1484.66 2176 1484.83 2176.97 1485.16C2177.93 1485.49 2178.82 1486.03 2179.61 1486.77C2180.41 1487.51 2181.04 1488.49 2181.51 1489.71C2181.99 1490.92 2182.22 1492.42 2182.22 1494.21V1495.45H2167.51V1492.91H2179.24C2179.24 1491.84 2179.02 1490.87 2178.59 1490.03C2178.17 1489.18 2177.57 1488.52 2176.78 1488.03C2176 1487.54 2175.08 1487.3 2174.02 1487.3C2172.85 1487.3 2171.84 1487.59 2170.99 1488.17C2170.14 1488.74 2169.49 1489.48 2169.04 1490.4C2168.58 1491.32 2168.35 1492.31 2168.35 1493.36V1495.05C2168.35 1496.49 2168.6 1497.72 2169.1 1498.72C2169.6 1499.71 2170.3 1500.47 2171.2 1500.99C2172.09 1501.51 2173.13 1501.76 2174.32 1501.76C2175.09 1501.76 2175.78 1501.66 2176.41 1501.44C2177.04 1501.22 2177.58 1500.88 2178.03 1500.45C2178.49 1500 2178.84 1499.44 2179.09 1498.78L2181.92 1499.58C2181.63 1500.54 2181.12 1501.38 2180.42 1502.11C2179.72 1502.83 2178.85 1503.4 2177.81 1503.8C2176.77 1504.2 2175.61 1504.4 2174.32 1504.4ZM2210.05 1489.18L2207.42 1489.93C2207.25 1489.49 2207.01 1489.06 2206.68 1488.65C2206.37 1488.23 2205.94 1487.88 2205.39 1487.61C2204.84 1487.33 2204.14 1487.2 2203.29 1487.2C2202.12 1487.2 2201.15 1487.47 2200.37 1488C2199.6 1488.53 2199.21 1489.21 2199.21 1490.03C2199.21 1490.76 2199.48 1491.33 2200.01 1491.76C2200.54 1492.18 2201.37 1492.53 2202.49 1492.81L2205.33 1493.51C2207.04 1493.92 2208.31 1494.56 2209.14 1495.41C2209.98 1496.26 2210.4 1497.35 2210.4 1498.68C2210.4 1499.77 2210.08 1500.75 2209.45 1501.61C2208.83 1502.48 2207.96 1503.15 2206.84 1503.65C2205.73 1504.15 2204.42 1504.4 2202.94 1504.4C2200.99 1504.4 2199.38 1503.98 2198.11 1503.13C2196.83 1502.28 2196.02 1501.05 2195.68 1499.43L2198.47 1498.73C2198.73 1499.76 2199.23 1500.53 2199.97 1501.04C2200.72 1501.56 2201.69 1501.81 2202.89 1501.81C2204.26 1501.81 2205.34 1501.52 2206.15 1500.94C2206.96 1500.35 2207.37 1499.65 2207.37 1498.83C2207.37 1498.17 2207.13 1497.61 2206.67 1497.16C2206.21 1496.71 2205.49 1496.37 2204.53 1496.14L2201.35 1495.4C2199.6 1494.98 2198.32 1494.34 2197.5 1493.47C2196.69 1492.59 2196.28 1491.5 2196.28 1490.18C2196.28 1489.1 2196.58 1488.15 2197.19 1487.32C2197.8 1486.49 2198.63 1485.84 2199.69 1485.37C2200.75 1484.9 2201.95 1484.66 2203.29 1484.66C2205.18 1484.66 2206.66 1485.07 2207.74 1485.9C2208.82 1486.73 2209.6 1487.83 2210.05 1489.18ZM2222.57 1504.4C2220.85 1504.4 2219.33 1503.99 2218.03 1503.17C2216.74 1502.35 2215.73 1501.2 2215 1499.72C2214.28 1498.25 2213.92 1496.53 2213.92 1494.55C2213.92 1492.57 2214.28 1490.83 2215 1489.35C2215.73 1487.86 2216.74 1486.71 2218.03 1485.89C2219.33 1485.07 2220.85 1484.66 2222.57 1484.66C2224.29 1484.66 2225.8 1485.07 2227.09 1485.89C2228.4 1486.71 2229.41 1487.86 2230.13 1489.35C2230.86 1490.83 2231.22 1492.57 2231.22 1494.55C2231.22 1496.53 2230.86 1498.25 2230.13 1499.72C2229.41 1501.2 2228.4 1502.35 2227.09 1503.17C2225.8 1503.99 2224.29 1504.4 2222.57 1504.4ZM2222.57 1501.76C2223.88 1501.76 2224.96 1501.43 2225.8 1500.76C2226.65 1500.08 2227.27 1499.2 2227.68 1498.11C2228.08 1497.01 2228.29 1495.83 2228.29 1494.55C2228.29 1493.28 2228.08 1492.09 2227.68 1490.99C2227.27 1489.88 2226.65 1488.99 2225.8 1488.31C2224.96 1487.64 2223.88 1487.3 2222.57 1487.3C2221.26 1487.3 2220.18 1487.64 2219.34 1488.31C2218.49 1488.99 2217.87 1489.88 2217.46 1490.99C2217.06 1492.09 2216.85 1493.28 2216.85 1494.55C2216.85 1495.83 2217.06 1497.01 2217.46 1498.11C2217.87 1499.2 2218.49 1500.08 2219.34 1500.76C2220.18 1501.43 2221.26 1501.76 2222.57 1501.76ZM2238.63 1478.55V1504H2235.7V1478.55H2238.63ZM2259.61 1484.91L2252.56 1504H2249.57L2242.51 1484.91H2245.69L2250.96 1500.12H2251.16L2256.43 1484.91H2259.61ZM2263.49 1504V1484.91H2266.42V1504H2263.49ZM2264.98 1481.73C2264.41 1481.73 2263.91 1481.53 2263.5 1481.14C2263.09 1480.75 2262.89 1480.29 2262.89 1479.74C2262.89 1479.19 2263.09 1478.72 2263.5 1478.33C2263.91 1477.94 2264.41 1477.75 2264.98 1477.75C2265.55 1477.75 2266.04 1477.94 2266.44 1478.33C2266.86 1478.72 2267.07 1479.19 2267.07 1479.74C2267.07 1480.29 2266.86 1480.75 2266.44 1481.14C2266.04 1481.53 2265.55 1481.73 2264.98 1481.73ZM2274.73 1492.52V1504H2271.79V1484.91H2274.63V1487.89H2274.87C2275.32 1486.92 2276 1486.14 2276.91 1485.56C2277.82 1484.96 2279 1484.66 2280.44 1484.66C2281.74 1484.66 2282.87 1484.93 2283.84 1485.46C2284.81 1485.98 2285.56 1486.77 2286.1 1487.84C2286.64 1488.9 2286.91 1490.25 2286.91 1491.87V1504H2283.97V1492.07C2283.97 1490.57 2283.58 1489.4 2282.8 1488.56C2282.03 1487.72 2280.96 1487.3 2279.6 1487.3C2278.66 1487.3 2277.82 1487.5 2277.09 1487.9C2276.36 1488.31 2275.78 1488.9 2275.36 1489.68C2274.94 1490.46 2274.73 1491.41 2274.73 1492.52ZM2299.97 1511.56C2298.55 1511.56 2297.34 1511.37 2296.32 1511.01C2295.3 1510.65 2294.45 1510.18 2293.77 1509.59C2293.1 1509.01 2292.56 1508.39 2292.17 1507.73L2294.5 1506.09C2294.77 1506.44 2295.1 1506.83 2295.51 1507.28C2295.92 1507.74 2296.47 1508.13 2297.18 1508.46C2297.89 1508.8 2298.82 1508.97 2299.97 1508.97C2301.51 1508.97 2302.78 1508.6 2303.79 1507.85C2304.79 1507.11 2305.29 1505.94 2305.29 1504.35V1500.47H2305.04C2304.83 1500.82 2304.52 1501.25 2304.12 1501.76C2303.73 1502.27 2303.17 1502.72 2302.43 1503.12C2301.7 1503.51 2300.72 1503.7 2299.47 1503.7C2297.93 1503.7 2296.55 1503.34 2295.32 1502.61C2294.11 1501.88 2293.14 1500.82 2292.43 1499.43C2291.72 1498.03 2291.37 1496.34 2291.37 1494.36C2291.37 1492.4 2291.71 1490.7 2292.4 1489.25C2293.09 1487.79 2294.05 1486.66 2295.27 1485.87C2296.5 1485.06 2297.92 1484.66 2299.52 1484.66C2300.77 1484.66 2301.75 1484.87 2302.48 1485.28C2303.22 1485.69 2303.78 1486.15 2304.17 1486.67C2304.57 1487.19 2304.88 1487.61 2305.09 1487.94H2305.39V1484.91H2308.22V1504.55C2308.22 1506.19 2307.85 1507.52 2307.11 1508.55C2306.37 1509.58 2305.37 1510.34 2304.12 1510.82C2302.88 1511.31 2301.5 1511.56 2299.97 1511.56ZM2299.87 1501.07C2301.05 1501.07 2302.04 1500.8 2302.86 1500.26C2303.67 1499.72 2304.28 1498.95 2304.71 1497.93C2305.13 1496.92 2305.34 1495.71 2305.34 1494.31C2305.34 1492.93 2305.13 1491.72 2304.72 1490.66C2304.31 1489.61 2303.69 1488.79 2302.88 1488.19C2302.07 1487.59 2301.07 1487.3 2299.87 1487.3C2298.63 1487.3 2297.59 1487.61 2296.77 1488.24C2295.94 1488.87 2295.33 1489.71 2294.91 1490.78C2294.51 1491.84 2294.3 1493.01 2294.3 1494.31C2294.3 1495.63 2294.51 1496.8 2294.93 1497.82C2295.35 1498.83 2295.97 1499.63 2296.79 1500.21C2297.62 1500.78 2298.65 1501.07 2299.87 1501.07ZM2329.06 1504.45C2327.85 1504.45 2326.75 1504.22 2325.76 1503.76C2324.78 1503.3 2323.99 1502.63 2323.41 1501.76C2322.83 1500.88 2322.54 1499.82 2322.54 1498.58C2322.54 1497.49 2322.76 1496.6 2323.19 1495.92C2323.62 1495.23 2324.2 1494.69 2324.92 1494.31C2325.64 1493.92 2326.43 1493.63 2327.3 1493.44C2328.18 1493.24 2329.06 1493.08 2329.95 1492.96C2331.11 1492.81 2332.05 1492.7 2332.77 1492.63C2333.5 1492.54 2334.03 1492.41 2334.36 1492.22C2334.7 1492.03 2334.87 1491.7 2334.87 1491.22V1491.12C2334.87 1489.9 2334.54 1488.94 2333.87 1488.26C2333.2 1487.59 2332.2 1487.25 2330.85 1487.25C2329.44 1487.25 2328.35 1487.55 2327.55 1488.17C2326.76 1488.78 2326.2 1489.43 2325.87 1490.13L2323.09 1489.13C2323.59 1487.97 2324.25 1487.07 2325.08 1486.43C2325.92 1485.77 2326.83 1485.32 2327.81 1485.06C2328.81 1484.79 2329.78 1484.66 2330.75 1484.66C2331.36 1484.66 2332.06 1484.74 2332.86 1484.88C2333.66 1485.03 2334.44 1485.32 2335.18 1485.77C2335.94 1486.21 2336.56 1486.89 2337.06 1487.79C2337.56 1488.7 2337.81 1489.91 2337.81 1491.42V1504H2334.87V1501.41H2334.72C2334.52 1501.83 2334.19 1502.27 2333.73 1502.74C2333.26 1503.22 2332.65 1503.62 2331.88 1503.95C2331.11 1504.28 2330.17 1504.45 2329.06 1504.45ZM2329.5 1501.81C2330.66 1501.81 2331.64 1501.58 2332.44 1501.13C2333.24 1500.67 2333.84 1500.08 2334.25 1499.36C2334.67 1498.64 2334.87 1497.88 2334.87 1497.09V1494.4C2334.75 1494.55 2334.47 1494.69 2334.05 1494.81C2333.64 1494.93 2333.16 1495.03 2332.61 1495.13C2332.07 1495.21 2331.55 1495.28 2331.03 1495.35C2330.53 1495.41 2330.12 1495.46 2329.8 1495.5C2329.04 1495.6 2328.33 1495.76 2327.66 1495.98C2327.01 1496.2 2326.48 1496.53 2326.07 1496.97C2325.67 1497.4 2325.48 1497.98 2325.48 1498.73C2325.48 1499.75 2325.85 1500.52 2326.61 1501.04C2327.37 1501.56 2328.33 1501.81 2329.5 1501.81ZM2346.09 1492.52V1504H2343.16V1484.91H2345.99V1487.89H2346.24C2346.69 1486.92 2347.37 1486.14 2348.28 1485.56C2349.19 1484.96 2350.37 1484.66 2351.81 1484.66C2353.1 1484.66 2354.23 1484.93 2355.2 1485.46C2356.17 1485.98 2356.93 1486.77 2357.47 1487.84C2358 1488.9 2358.27 1490.25 2358.27 1491.87V1504H2355.34V1492.07C2355.34 1490.57 2354.95 1489.4 2354.17 1488.56C2353.39 1487.72 2352.32 1487.3 2350.96 1487.3C2350.03 1487.3 2349.19 1487.5 2348.45 1487.9C2347.72 1488.31 2347.15 1488.9 2346.73 1489.68C2346.3 1490.46 2346.09 1491.41 2346.09 1492.52ZM2100.16 1538.19V1526.91H2103.09V1546H2100.16V1542.77H2099.96C2099.51 1543.74 2098.82 1544.56 2097.87 1545.24C2096.93 1545.91 2095.73 1546.25 2094.29 1546.25C2093.1 1546.25 2092.04 1545.99 2091.11 1545.47C2090.18 1544.94 2089.45 1544.14 2088.92 1543.08C2088.39 1542.01 2088.13 1540.66 2088.13 1539.04V1526.91H2091.06V1538.84C2091.06 1540.23 2091.45 1541.34 2092.23 1542.17C2093.02 1543 2094.02 1543.41 2095.24 1543.41C2095.97 1543.41 2096.71 1543.23 2097.46 1542.86C2098.22 1542.48 2098.86 1541.91 2099.38 1541.14C2099.9 1540.37 2100.16 1539.39 2100.16 1538.19ZM2111.4 1534.52V1546H2108.46V1526.91H2111.3V1529.89H2111.55C2111.99 1528.92 2112.67 1528.14 2113.59 1527.56C2114.5 1526.96 2115.67 1526.66 2117.12 1526.66C2118.41 1526.66 2119.54 1526.93 2120.51 1527.46C2121.48 1527.98 2122.23 1528.77 2122.77 1529.84C2123.31 1530.9 2123.58 1532.25 2123.58 1533.87V1546H2120.64V1534.07C2120.64 1532.57 2120.26 1531.4 2119.48 1530.56C2118.7 1529.72 2117.63 1529.3 2116.27 1529.3C2115.33 1529.3 2114.5 1529.5 2113.76 1529.9C2113.03 1530.31 2112.45 1530.9 2112.03 1531.68C2111.61 1532.46 2111.4 1533.41 2111.4 1534.52ZM2128.94 1546V1526.91H2131.77V1529.89H2132.02C2132.42 1528.87 2133.06 1528.08 2133.95 1527.52C2134.83 1526.95 2135.9 1526.66 2137.14 1526.66C2138.4 1526.66 2139.45 1526.95 2140.29 1527.52C2141.13 1528.08 2141.79 1528.87 2142.26 1529.89H2142.46C2142.95 1528.91 2143.68 1528.12 2144.66 1527.54C2145.64 1526.95 2146.81 1526.66 2148.18 1526.66C2149.89 1526.66 2151.28 1527.19 2152.37 1528.26C2153.45 1529.32 2153.99 1530.98 2153.99 1533.22V1546H2151.06V1533.22C2151.06 1531.81 2150.68 1530.81 2149.91 1530.2C2149.14 1529.6 2148.23 1529.3 2147.18 1529.3C2145.84 1529.3 2144.8 1529.7 2144.06 1530.51C2143.33 1531.32 2142.96 1532.34 2142.96 1533.57V1546H2139.98V1532.92C2139.98 1531.84 2139.62 1530.97 2138.92 1530.3C2138.21 1529.63 2137.31 1529.3 2136.2 1529.3C2135.43 1529.3 2134.72 1529.5 2134.06 1529.9C2133.4 1530.31 2132.87 1530.87 2132.47 1531.59C2132.07 1532.31 2131.87 1533.13 2131.87 1534.07V1546H2128.94ZM2167.36 1546.4C2165.52 1546.4 2163.94 1545.99 2162.6 1545.18C2161.28 1544.36 2160.25 1543.22 2159.53 1541.75C2158.82 1540.27 2158.46 1538.56 2158.46 1536.6C2158.46 1534.65 2158.82 1532.92 2159.53 1531.43C2160.25 1529.93 2161.26 1528.77 2162.54 1527.93C2163.83 1527.08 2165.34 1526.66 2167.06 1526.66C2168.06 1526.66 2169.04 1526.83 2170.01 1527.16C2170.98 1527.49 2171.86 1528.03 2172.66 1528.77C2173.45 1529.51 2174.09 1530.49 2174.56 1531.71C2175.03 1532.92 2175.27 1534.42 2175.27 1536.21V1537.45H2160.55V1534.91H2172.28C2172.28 1533.84 2172.07 1532.87 2171.64 1532.03C2171.22 1531.18 2170.61 1530.52 2169.82 1530.03C2169.04 1529.54 2168.12 1529.3 2167.06 1529.3C2165.9 1529.3 2164.88 1529.59 2164.03 1530.17C2163.19 1530.74 2162.54 1531.48 2162.08 1532.4C2161.62 1533.32 2161.4 1534.31 2161.4 1535.36V1537.05C2161.4 1538.49 2161.64 1539.72 2162.14 1540.72C2162.65 1541.71 2163.35 1542.47 2164.24 1542.99C2165.14 1543.51 2166.18 1543.76 2167.36 1543.76C2168.13 1543.76 2168.83 1543.66 2169.45 1543.44C2170.08 1543.22 2170.62 1542.88 2171.08 1542.45C2171.53 1542 2171.89 1541.44 2172.13 1540.78L2174.97 1541.58C2174.67 1542.54 2174.17 1543.38 2173.46 1544.11C2172.76 1544.83 2171.89 1545.4 2170.85 1545.8C2169.82 1546.2 2168.65 1546.4 2167.36 1546.4ZM2188.03 1526.91V1529.39H2178.14V1526.91H2188.03ZM2181.02 1522.34H2183.95V1540.53C2183.95 1541.36 2184.08 1541.98 2184.32 1542.4C2184.56 1542.8 2184.88 1543.08 2185.26 1543.22C2185.65 1543.35 2186.06 1543.41 2186.49 1543.41C2186.81 1543.41 2187.08 1543.4 2187.29 1543.37C2187.49 1543.32 2187.66 1543.29 2187.78 1543.27L2188.38 1545.9C2188.18 1545.98 2187.9 1546.05 2187.55 1546.12C2187.19 1546.21 2186.74 1546.25 2186.19 1546.25C2185.36 1546.25 2184.55 1546.07 2183.76 1545.71C2182.97 1545.36 2182.31 1544.82 2181.79 1544.09C2181.28 1543.36 2181.02 1542.44 2181.02 1541.33V1522.34ZM2205.22 1534.52V1546H2202.29V1526.91H2205.12V1529.89H2205.37C2205.82 1528.92 2206.5 1528.14 2207.41 1527.56C2208.32 1526.96 2209.5 1526.66 2210.94 1526.66C2212.23 1526.66 2213.36 1526.93 2214.33 1527.46C2215.3 1527.98 2216.05 1528.77 2216.59 1529.84C2217.13 1530.9 2217.4 1532.25 2217.4 1533.87V1546H2214.47V1534.07C2214.47 1532.57 2214.08 1531.4 2213.3 1530.56C2212.52 1529.72 2211.45 1529.3 2210.09 1529.3C2209.16 1529.3 2208.32 1529.5 2207.58 1529.9C2206.85 1530.31 2206.28 1530.9 2205.85 1531.68C2205.43 1532.46 2205.22 1533.41 2205.22 1534.52ZM2230.77 1546.4C2228.93 1546.4 2227.34 1545.99 2226.01 1545.18C2224.68 1544.36 2223.66 1543.22 2222.94 1541.75C2222.22 1540.27 2221.87 1538.56 2221.87 1536.6C2221.87 1534.65 2222.22 1532.92 2222.94 1531.43C2223.66 1529.93 2224.66 1528.77 2225.94 1527.93C2227.24 1527.08 2228.74 1526.66 2230.47 1526.66C2231.46 1526.66 2232.44 1526.83 2233.41 1527.16C2234.38 1527.49 2235.26 1528.03 2236.06 1528.77C2236.86 1529.51 2237.49 1530.49 2237.96 1531.71C2238.43 1532.92 2238.67 1534.42 2238.67 1536.21V1537.45H2223.95V1534.91H2235.69C2235.69 1533.84 2235.47 1532.87 2235.04 1532.03C2234.62 1531.18 2234.01 1530.52 2233.23 1530.03C2232.45 1529.54 2231.53 1529.3 2230.47 1529.3C2229.3 1529.3 2228.29 1529.59 2227.43 1530.17C2226.59 1530.74 2225.94 1531.48 2225.48 1532.4C2225.03 1533.32 2224.8 1534.31 2224.8 1535.36V1537.05C2224.8 1538.49 2225.05 1539.72 2225.55 1540.72C2226.05 1541.71 2226.75 1542.47 2227.65 1542.99C2228.54 1543.51 2229.58 1543.76 2230.77 1543.76C2231.54 1543.76 2232.23 1543.66 2232.85 1543.44C2233.48 1543.22 2234.03 1542.88 2234.48 1542.45C2234.94 1542 2235.29 1541.44 2235.54 1540.78L2238.37 1541.58C2238.07 1542.54 2237.57 1543.38 2236.87 1544.11C2236.16 1544.83 2235.29 1545.4 2234.26 1545.8C2233.22 1546.2 2232.06 1546.4 2230.77 1546.4ZM2251.14 1546.4C2249.3 1546.4 2247.71 1545.99 2246.38 1545.18C2245.05 1544.36 2244.03 1543.22 2243.31 1541.75C2242.59 1540.27 2242.24 1538.56 2242.24 1536.6C2242.24 1534.65 2242.59 1532.92 2243.31 1531.43C2244.03 1529.93 2245.03 1528.77 2246.31 1527.93C2247.61 1527.08 2249.11 1526.66 2250.84 1526.66C2251.83 1526.66 2252.81 1526.83 2253.78 1527.16C2254.75 1527.49 2255.64 1528.03 2256.43 1528.77C2257.23 1529.51 2257.86 1530.49 2258.33 1531.71C2258.81 1532.92 2259.04 1534.42 2259.04 1536.21V1537.45H2244.33V1534.91H2256.06C2256.06 1533.84 2255.84 1532.87 2255.41 1532.03C2254.99 1531.18 2254.38 1530.52 2253.6 1530.03C2252.82 1529.54 2251.9 1529.3 2250.84 1529.3C2249.67 1529.3 2248.66 1529.59 2247.81 1530.17C2246.96 1530.74 2246.31 1531.48 2245.85 1532.4C2245.4 1533.32 2245.17 1534.31 2245.17 1535.36V1537.05C2245.17 1538.49 2245.42 1539.72 2245.92 1540.72C2246.42 1541.71 2247.12 1542.47 2248.02 1542.99C2248.91 1543.51 2249.95 1543.76 2251.14 1543.76C2251.91 1543.76 2252.6 1543.66 2253.22 1543.44C2253.85 1543.22 2254.4 1542.88 2254.85 1542.45C2255.31 1542 2255.66 1541.44 2255.91 1540.78L2258.74 1541.58C2258.44 1542.54 2257.94 1543.38 2257.24 1544.11C2256.53 1544.83 2255.66 1545.4 2254.63 1545.8C2253.59 1546.2 2252.43 1546.4 2251.14 1546.4ZM2270.71 1546.4C2269.12 1546.4 2267.72 1546 2266.5 1545.19C2265.28 1544.38 2264.33 1543.24 2263.64 1541.76C2262.95 1540.28 2262.61 1538.53 2262.61 1536.5C2262.61 1534.5 2262.95 1532.76 2263.64 1531.28C2264.33 1529.81 2265.28 1528.67 2266.51 1527.87C2267.74 1527.06 2269.15 1526.66 2270.76 1526.66C2272 1526.66 2272.99 1526.87 2273.71 1527.28C2274.44 1527.69 2274.99 1528.15 2275.37 1528.67C2275.76 1529.19 2276.07 1529.61 2276.28 1529.94H2276.53V1520.55H2279.46V1546H2276.63V1543.07H2276.28C2276.07 1543.41 2275.76 1543.85 2275.36 1544.38C2274.96 1544.91 2274.4 1545.37 2273.66 1545.79C2272.92 1546.19 2271.94 1546.4 2270.71 1546.4ZM2271.11 1543.76C2272.29 1543.76 2273.28 1543.46 2274.09 1542.84C2274.91 1542.22 2275.52 1541.36 2275.94 1540.27C2276.37 1539.17 2276.58 1537.9 2276.58 1536.45C2276.58 1535.03 2276.37 1533.78 2275.96 1532.71C2275.54 1531.64 2274.93 1530.8 2274.12 1530.2C2273.31 1529.6 2272.3 1529.3 2271.11 1529.3C2269.87 1529.3 2268.83 1529.61 2268 1530.25C2267.18 1530.88 2266.57 1531.74 2266.15 1532.83C2265.74 1533.9 2265.54 1535.11 2265.54 1536.45C2265.54 1537.81 2265.75 1539.05 2266.16 1540.16C2266.59 1541.26 2267.21 1542.14 2268.03 1542.79C2268.86 1543.44 2269.88 1543.76 2271.11 1543.76Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"PainPoints\" className=\"map-btn\" onClick={ClickHandler(\"PainPoints\")}>\r\n <rect id=\"Rectangle 4\" x=\"1058\" y=\"757\" width=\"572\" height=\"333\" rx=\"50\" fill=\"#396F9D\" />\r\n <path\r\n d=\"M1240.89 825V795.182H1250.96C1253.3 795.182 1255.21 795.604 1256.7 796.449C1258.19 797.283 1259.3 798.414 1260.02 799.841C1260.74 801.268 1261.1 802.86 1261.1 804.616C1261.1 806.373 1260.74 807.97 1260.02 809.407C1259.31 810.843 1258.21 811.989 1256.73 812.843C1255.24 813.687 1253.34 814.109 1251.02 814.109H1243.8V810.906H1250.9C1252.51 810.906 1253.79 810.63 1254.76 810.076C1255.73 809.523 1256.44 808.776 1256.87 807.834C1257.32 806.883 1257.54 805.81 1257.54 804.616C1257.54 803.423 1257.32 802.355 1256.87 801.413C1256.44 800.472 1255.73 799.734 1254.75 799.2C1253.77 798.657 1252.47 798.385 1250.85 798.385H1244.5V825H1240.89ZM1273.03 825.524C1271.61 825.524 1270.32 825.257 1269.17 824.723C1268.01 824.18 1267.1 823.398 1266.42 822.379C1265.74 821.35 1265.4 820.108 1265.4 818.652C1265.4 817.371 1265.65 816.332 1266.15 815.536C1266.66 814.731 1267.33 814.1 1268.18 813.643C1269.02 813.187 1269.96 812.848 1270.97 812.624C1272 812.391 1273.04 812.207 1274.08 812.071C1275.43 811.896 1276.54 811.765 1277.38 811.678C1278.23 811.581 1278.86 811.421 1279.24 811.197C1279.64 810.974 1279.84 810.586 1279.84 810.033V809.916C1279.84 808.48 1279.45 807.363 1278.66 806.567C1277.89 805.772 1276.71 805.374 1275.12 805.374C1273.48 805.374 1272.2 805.733 1271.27 806.451C1270.33 807.169 1269.68 807.936 1269.3 808.751L1266.04 807.587C1266.62 806.228 1267.4 805.17 1268.37 804.413C1269.35 803.646 1270.42 803.112 1271.57 802.811C1272.74 802.5 1273.88 802.345 1275.01 802.345C1275.73 802.345 1276.55 802.433 1277.48 802.607C1278.42 802.772 1279.33 803.117 1280.21 803.641C1281.09 804.165 1281.82 804.956 1282.4 806.014C1282.99 807.072 1283.28 808.489 1283.28 810.266V825H1279.84V821.972H1279.67C1279.43 822.457 1279.05 822.976 1278.5 823.529C1277.96 824.083 1277.23 824.554 1276.33 824.942C1275.43 825.33 1274.33 825.524 1273.03 825.524ZM1273.55 822.438C1274.91 822.438 1276.06 822.171 1276.99 821.637C1277.93 821.103 1278.64 820.414 1279.11 819.569C1279.6 818.725 1279.84 817.837 1279.84 816.905V813.76C1279.7 813.935 1279.38 814.095 1278.88 814.24C1278.39 814.376 1277.83 814.498 1277.19 814.604C1276.56 814.701 1275.94 814.789 1275.34 814.866C1274.75 814.934 1274.27 814.993 1273.9 815.041C1273.01 815.158 1272.17 815.347 1271.4 815.609C1270.63 815.861 1270.01 816.245 1269.53 816.759C1269.07 817.264 1268.83 817.953 1268.83 818.827C1268.83 820.021 1269.28 820.923 1270.16 821.535C1271.05 822.137 1272.18 822.438 1273.55 822.438ZM1289.55 825V802.636H1292.98V825H1289.55ZM1291.3 798.909C1290.63 798.909 1290.05 798.681 1289.56 798.225C1289.09 797.769 1288.85 797.22 1288.85 796.58C1288.85 795.939 1289.09 795.391 1289.56 794.934C1290.05 794.478 1290.63 794.25 1291.3 794.25C1291.97 794.25 1292.54 794.478 1293.01 794.934C1293.5 795.391 1293.74 795.939 1293.74 796.58C1293.74 797.22 1293.5 797.769 1293.01 798.225C1292.54 798.681 1291.97 798.909 1291.3 798.909ZM1302.71 811.547V825H1299.28V802.636H1302.6V806.131H1302.89C1303.41 804.995 1304.21 804.083 1305.28 803.393C1306.34 802.695 1307.72 802.345 1309.41 802.345C1310.93 802.345 1312.25 802.656 1313.39 803.277C1314.52 803.888 1315.41 804.82 1316.04 806.072C1316.67 807.315 1316.98 808.887 1316.98 810.79V825H1313.55V811.023C1313.55 809.266 1313.09 807.897 1312.18 806.917C1311.27 805.927 1310.01 805.432 1308.42 805.432C1307.32 805.432 1306.34 805.67 1305.48 806.145C1304.63 806.621 1303.95 807.315 1303.46 808.227C1302.96 809.14 1302.71 810.246 1302.71 811.547ZM1334.79 833.386V802.636H1338.11V806.189H1338.52C1338.77 805.801 1339.12 805.306 1339.57 804.704C1340.02 804.092 1340.67 803.549 1341.52 803.073C1342.37 802.588 1343.53 802.345 1344.98 802.345C1346.87 802.345 1348.53 802.816 1349.96 803.757C1351.4 804.699 1352.52 806.034 1353.33 807.761C1354.13 809.489 1354.54 811.527 1354.54 813.876C1354.54 816.245 1354.13 818.298 1353.33 820.035C1352.52 821.763 1351.41 823.102 1349.98 824.054C1348.55 824.995 1346.91 825.466 1345.04 825.466C1343.61 825.466 1342.46 825.228 1341.59 824.752C1340.73 824.267 1340.06 823.719 1339.6 823.107C1339.13 822.486 1338.77 821.972 1338.52 821.564H1338.23V833.386H1334.79ZM1338.17 813.818C1338.17 815.507 1338.42 816.997 1338.91 818.288C1339.41 819.569 1340.13 820.574 1341.08 821.302C1342.03 822.02 1343.2 822.379 1344.58 822.379C1346.01 822.379 1347.21 822.001 1348.17 821.244C1349.14 820.477 1349.87 819.448 1350.36 818.157C1350.85 816.856 1351.1 815.41 1351.1 813.818C1351.1 812.246 1350.86 810.829 1350.37 809.567C1349.9 808.295 1349.17 807.291 1348.2 806.553C1347.24 805.806 1346.03 805.432 1344.58 805.432C1343.18 805.432 1342 805.786 1341.05 806.495C1340.1 807.194 1339.38 808.174 1338.9 809.436C1338.41 810.688 1338.17 812.149 1338.17 813.818ZM1368.86 825.466C1366.84 825.466 1365.07 824.985 1363.55 824.025C1362.03 823.064 1360.85 821.719 1360 819.991C1359.15 818.264 1358.73 816.245 1358.73 813.935C1358.73 811.605 1359.15 809.572 1360 807.834C1360.85 806.097 1362.03 804.748 1363.55 803.787C1365.07 802.826 1366.84 802.345 1368.86 802.345C1370.88 802.345 1372.65 802.826 1374.16 803.787C1375.69 804.748 1376.87 806.097 1377.71 807.834C1378.57 809.572 1379 811.605 1379 813.935C1379 816.245 1378.57 818.264 1377.71 819.991C1376.87 821.719 1375.69 823.064 1374.16 824.025C1372.65 824.985 1370.88 825.466 1368.86 825.466ZM1368.86 822.379C1370.4 822.379 1371.66 821.986 1372.65 821.2C1373.64 820.414 1374.37 819.38 1374.85 818.099C1375.32 816.817 1375.56 815.429 1375.56 813.935C1375.56 812.44 1375.32 811.047 1374.85 809.756C1374.37 808.465 1373.64 807.422 1372.65 806.626C1371.66 805.83 1370.4 805.432 1368.86 805.432C1367.33 805.432 1366.07 805.83 1365.08 806.626C1364.09 807.422 1363.35 808.465 1362.88 809.756C1362.4 811.047 1362.16 812.44 1362.16 813.935C1362.16 815.429 1362.4 816.817 1362.88 818.099C1363.35 819.38 1364.09 820.414 1365.08 821.2C1366.07 821.986 1367.33 822.379 1368.86 822.379ZM1384.24 825V802.636H1387.68V825H1384.24ZM1385.99 798.909C1385.32 798.909 1384.74 798.681 1384.26 798.225C1383.78 797.769 1383.54 797.22 1383.54 796.58C1383.54 795.939 1383.78 795.391 1384.26 794.934C1384.74 794.478 1385.32 794.25 1385.99 794.25C1386.66 794.25 1387.23 794.478 1387.71 794.934C1388.19 795.391 1388.43 795.939 1388.43 796.58C1388.43 797.22 1388.19 797.769 1387.71 798.225C1387.23 798.681 1386.66 798.909 1385.99 798.909ZM1397.41 811.547V825H1393.97V802.636H1397.29V806.131H1397.58C1398.11 804.995 1398.9 804.083 1399.97 803.393C1401.04 802.695 1402.42 802.345 1404.1 802.345C1405.62 802.345 1406.94 802.656 1408.08 803.277C1409.21 803.888 1410.1 804.82 1410.73 806.072C1411.36 807.315 1411.68 808.887 1411.68 810.79V825H1408.24V811.023C1408.24 809.266 1407.78 807.897 1406.87 806.917C1405.96 805.927 1404.71 805.432 1403.11 805.432C1402.02 805.432 1401.04 805.67 1400.17 806.145C1399.32 806.621 1398.64 807.315 1398.15 808.227C1397.65 809.14 1397.41 810.246 1397.41 811.547ZM1427.68 802.636V805.548H1416.09V802.636H1427.68ZM1419.47 797.278H1422.9V818.594C1422.9 819.564 1423.04 820.292 1423.33 820.778C1423.62 821.253 1423.99 821.574 1424.43 821.739C1424.89 821.894 1425.37 821.972 1425.87 821.972C1426.25 821.972 1426.56 821.952 1426.81 821.913C1427.05 821.865 1427.24 821.826 1427.39 821.797L1428.09 824.884C1427.85 824.971 1427.53 825.058 1427.11 825.146C1426.69 825.243 1426.17 825.291 1425.52 825.291C1424.55 825.291 1423.6 825.083 1422.67 824.665C1421.75 824.248 1420.98 823.612 1420.37 822.758C1419.77 821.904 1419.47 820.826 1419.47 819.526V797.278ZM1448.29 807.645L1445.2 808.518C1445.01 808.004 1444.72 807.504 1444.34 807.019C1443.97 806.524 1443.47 806.116 1442.83 805.796C1442.19 805.475 1441.37 805.315 1440.37 805.315C1439 805.315 1437.86 805.631 1436.95 806.262C1436.04 806.883 1435.59 807.674 1435.59 808.635C1435.59 809.489 1435.9 810.164 1436.52 810.659C1437.15 811.154 1438.12 811.566 1439.44 811.896L1442.76 812.712C1444.76 813.197 1446.25 813.94 1447.23 814.939C1448.21 815.929 1448.7 817.206 1448.7 818.768C1448.7 820.05 1448.33 821.195 1447.59 822.205C1446.86 823.214 1445.84 824.01 1444.53 824.592C1443.22 825.175 1441.7 825.466 1439.96 825.466C1437.68 825.466 1435.79 824.971 1434.3 823.981C1432.8 822.991 1431.86 821.545 1431.46 819.642L1434.72 818.827C1435.03 820.03 1435.62 820.933 1436.48 821.535C1437.35 822.137 1438.5 822.438 1439.9 822.438C1441.5 822.438 1442.78 822.098 1443.72 821.418C1444.67 820.729 1445.14 819.904 1445.14 818.943C1445.14 818.167 1444.87 817.516 1444.33 816.992C1443.79 816.458 1442.95 816.06 1441.82 815.798L1438.1 814.925C1436.05 814.439 1434.54 813.687 1433.58 812.668C1432.63 811.639 1432.16 810.353 1432.16 808.81C1432.16 807.548 1432.51 806.432 1433.22 805.461C1433.94 804.49 1434.91 803.728 1436.15 803.175C1437.39 802.622 1438.8 802.345 1440.37 802.345C1442.58 802.345 1444.32 802.83 1445.58 803.801C1446.85 804.772 1447.76 806.053 1448.29 807.645Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M1237.28 833.153H1450.74V835.949H1237.28V833.153Z\" fill=\"black\" />\r\n <path\r\n id=\"What are the pain points of doing this job?\"\r\n d=\"M1128.09 904L1121.13 878.545H1124.26L1129.58 899.277H1129.83L1135.24 878.545H1138.72L1144.14 899.277H1144.39L1149.71 878.545H1152.84L1145.88 904H1142.7L1137.08 883.716H1136.89L1131.27 904H1128.09ZM1159.22 892.516V904H1156.29V878.545H1159.22V887.892H1159.47C1159.92 886.906 1160.59 886.123 1161.48 885.543C1162.39 884.955 1163.59 884.661 1165.09 884.661C1166.39 884.661 1167.53 884.922 1168.5 885.444C1169.48 885.957 1170.24 886.749 1170.78 887.817C1171.33 888.878 1171.6 890.229 1171.6 891.869V904H1168.67V892.068C1168.67 890.552 1168.27 889.379 1167.49 888.551C1166.71 887.714 1165.63 887.295 1164.24 887.295C1163.28 887.295 1162.42 887.498 1161.66 887.904C1160.9 888.31 1160.31 888.903 1159.87 889.682C1159.44 890.461 1159.22 891.405 1159.22 892.516ZM1182.58 904.447C1181.37 904.447 1180.28 904.22 1179.29 903.764C1178.3 903.3 1177.52 902.633 1176.94 901.763C1176.36 900.884 1176.07 899.824 1176.07 898.581C1176.07 897.487 1176.29 896.601 1176.72 895.921C1177.15 895.233 1177.72 894.695 1178.44 894.305C1179.17 893.916 1179.96 893.626 1180.83 893.435C1181.71 893.237 1182.59 893.079 1183.48 892.963C1184.64 892.814 1185.58 892.702 1186.3 892.627C1187.03 892.545 1187.56 892.408 1187.89 892.217C1188.23 892.027 1188.4 891.695 1188.4 891.223V891.124C1188.4 889.897 1188.06 888.944 1187.39 888.265C1186.73 887.585 1185.72 887.246 1184.37 887.246C1182.97 887.246 1181.87 887.552 1181.08 888.165C1180.28 888.779 1179.72 889.433 1179.4 890.129L1176.62 889.135C1177.11 887.975 1177.78 887.072 1178.61 886.425C1179.44 885.771 1180.35 885.315 1181.34 885.058C1182.33 884.793 1183.31 884.661 1184.27 884.661C1184.89 884.661 1185.59 884.735 1186.39 884.884C1187.19 885.025 1187.97 885.319 1188.71 885.767C1189.46 886.214 1190.09 886.889 1190.59 887.793C1191.08 888.696 1191.33 889.906 1191.33 891.422V904H1188.4V901.415H1188.25C1188.05 901.829 1187.72 902.272 1187.26 902.745C1186.79 903.217 1186.18 903.619 1185.4 903.95C1184.63 904.282 1183.69 904.447 1182.58 904.447ZM1183.03 901.812C1184.19 901.812 1185.17 901.585 1185.96 901.129C1186.77 900.673 1187.37 900.085 1187.78 899.364C1188.19 898.643 1188.4 897.885 1188.4 897.089V894.405C1188.28 894.554 1188 894.691 1187.58 894.815C1187.17 894.931 1186.68 895.035 1186.14 895.126C1185.6 895.209 1185.07 895.283 1184.56 895.349C1184.05 895.407 1183.64 895.457 1183.33 895.499C1182.57 895.598 1181.85 895.76 1181.19 895.983C1180.54 896.199 1180.01 896.526 1179.6 896.965C1179.2 897.396 1179 897.984 1179 898.73C1179 899.749 1179.38 900.52 1180.13 901.042C1180.9 901.556 1181.86 901.812 1183.03 901.812ZM1204.99 884.909V887.395H1195.1V884.909H1204.99ZM1197.98 880.335H1200.91V898.531C1200.91 899.36 1201.03 899.981 1201.27 900.396C1201.52 900.802 1201.84 901.075 1202.22 901.216C1202.61 901.348 1203.02 901.415 1203.45 901.415C1203.77 901.415 1204.04 901.398 1204.24 901.365C1204.45 901.324 1204.62 901.29 1204.74 901.266L1205.34 903.901C1205.14 903.975 1204.86 904.05 1204.5 904.124C1204.15 904.207 1203.7 904.249 1203.15 904.249C1202.32 904.249 1201.51 904.07 1200.71 903.714C1199.93 903.358 1199.27 902.815 1198.75 902.086C1198.24 901.357 1197.98 900.437 1197.98 899.327V880.335ZM1224.86 904.447C1223.65 904.447 1222.56 904.22 1221.57 903.764C1220.58 903.3 1219.8 902.633 1219.22 901.763C1218.64 900.884 1218.35 899.824 1218.35 898.581C1218.35 897.487 1218.57 896.601 1219 895.921C1219.43 895.233 1220 894.695 1220.72 894.305C1221.45 893.916 1222.24 893.626 1223.11 893.435C1223.99 893.237 1224.87 893.079 1225.76 892.963C1226.92 892.814 1227.86 892.702 1228.58 892.627C1229.31 892.545 1229.84 892.408 1230.17 892.217C1230.51 892.027 1230.68 891.695 1230.68 891.223V891.124C1230.68 889.897 1230.34 888.944 1229.67 888.265C1229.01 887.585 1228 887.246 1226.65 887.246C1225.25 887.246 1224.16 887.552 1223.36 888.165C1222.56 888.779 1222 889.433 1221.68 890.129L1218.9 889.135C1219.39 887.975 1220.06 887.072 1220.89 886.425C1221.72 885.771 1222.63 885.315 1223.62 885.058C1224.62 884.793 1225.59 884.661 1226.55 884.661C1227.17 884.661 1227.87 884.735 1228.67 884.884C1229.47 885.025 1230.25 885.319 1230.99 885.767C1231.75 886.214 1232.37 886.889 1232.87 887.793C1233.37 888.696 1233.61 889.906 1233.61 891.422V904H1230.68V901.415H1230.53C1230.33 901.829 1230 902.272 1229.54 902.745C1229.07 903.217 1228.46 903.619 1227.68 903.95C1226.91 904.282 1225.97 904.447 1224.86 904.447ZM1225.31 901.812C1226.47 901.812 1227.45 901.585 1228.24 901.129C1229.05 900.673 1229.65 900.085 1230.06 899.364C1230.47 898.643 1230.68 897.885 1230.68 897.089V894.405C1230.56 894.554 1230.28 894.691 1229.86 894.815C1229.45 894.931 1228.97 895.035 1228.42 895.126C1227.88 895.209 1227.35 895.283 1226.84 895.349C1226.33 895.407 1225.92 895.457 1225.61 895.499C1224.85 895.598 1224.13 895.76 1223.47 895.983C1222.82 896.199 1222.29 896.526 1221.88 896.965C1221.48 897.396 1221.28 897.984 1221.28 898.73C1221.28 899.749 1221.66 900.52 1222.42 901.042C1223.18 901.556 1224.14 901.812 1225.31 901.812ZM1238.97 904V884.909H1241.8V887.793H1242C1242.35 886.848 1242.98 886.082 1243.89 885.493C1244.8 884.905 1245.83 884.611 1246.97 884.611C1247.19 884.611 1247.46 884.615 1247.78 884.623C1248.1 884.632 1248.35 884.644 1248.51 884.661V887.643C1248.41 887.619 1248.19 887.581 1247.83 887.532C1247.48 887.474 1247.11 887.445 1246.72 887.445C1245.8 887.445 1244.97 887.639 1244.24 888.029C1243.52 888.41 1242.94 888.94 1242.52 889.62C1242.11 890.291 1241.9 891.057 1241.9 891.919V904H1238.97ZM1259.41 904.398C1257.57 904.398 1255.99 903.992 1254.65 903.18C1253.33 902.359 1252.3 901.216 1251.58 899.749C1250.87 898.274 1250.51 896.559 1250.51 894.604C1250.51 892.648 1250.87 890.925 1251.58 889.433C1252.3 887.933 1253.31 886.765 1254.59 885.928C1255.88 885.083 1257.39 884.661 1259.11 884.661C1260.11 884.661 1261.09 884.826 1262.06 885.158C1263.03 885.489 1263.91 886.028 1264.71 886.773C1265.5 887.511 1266.14 888.489 1266.61 889.707C1267.08 890.925 1267.32 892.424 1267.32 894.206V895.449H1252.6V892.913H1264.33C1264.33 891.836 1264.12 890.875 1263.69 890.03C1263.27 889.185 1262.66 888.518 1261.87 888.029C1261.1 887.54 1260.18 887.295 1259.11 887.295C1257.95 887.295 1256.94 887.585 1256.08 888.165C1255.24 888.737 1254.59 889.483 1254.13 890.403C1253.67 891.322 1253.45 892.308 1253.45 893.361V895.051C1253.45 896.493 1253.7 897.715 1254.19 898.718C1254.7 899.712 1255.4 900.47 1256.29 900.992C1257.19 901.506 1258.23 901.763 1259.41 901.763C1260.18 901.763 1260.88 901.655 1261.5 901.44C1262.13 901.216 1262.67 900.884 1263.13 900.445C1263.59 899.998 1263.94 899.443 1264.19 898.78L1267.02 899.575C1266.72 900.536 1266.22 901.382 1265.52 902.111C1264.81 902.832 1263.94 903.395 1262.91 903.801C1261.87 904.199 1260.71 904.398 1259.41 904.398ZM1289.93 884.909V887.395H1280.03V884.909H1289.93ZM1282.92 880.335H1285.85V898.531C1285.85 899.36 1285.97 899.981 1286.21 900.396C1286.46 900.802 1286.77 901.075 1287.15 901.216C1287.54 901.348 1287.95 901.415 1288.38 901.415C1288.71 901.415 1288.97 901.398 1289.18 901.365C1289.39 901.324 1289.55 901.29 1289.68 901.266L1290.27 903.901C1290.08 903.975 1289.8 904.05 1289.44 904.124C1289.09 904.207 1288.63 904.249 1288.09 904.249C1287.26 904.249 1286.45 904.07 1285.65 903.714C1284.86 903.358 1284.21 902.815 1283.69 902.086C1283.17 901.357 1282.92 900.437 1282.92 899.327V880.335ZM1297.68 892.516V904H1294.75V878.545H1297.68V887.892H1297.93C1298.38 886.906 1299.05 886.123 1299.94 885.543C1300.85 884.955 1302.05 884.661 1303.55 884.661C1304.85 884.661 1305.99 884.922 1306.97 885.444C1307.94 885.957 1308.7 886.749 1309.24 887.817C1309.79 888.878 1310.06 890.229 1310.06 891.869V904H1307.13V892.068C1307.13 890.552 1306.73 889.379 1305.95 888.551C1305.17 887.714 1304.09 887.295 1302.7 887.295C1301.74 887.295 1300.88 887.498 1300.12 887.904C1299.36 888.31 1298.77 888.903 1298.33 889.682C1297.9 890.461 1297.68 891.405 1297.68 892.516ZM1323.43 904.398C1321.59 904.398 1320.01 903.992 1318.67 903.18C1317.35 902.359 1316.32 901.216 1315.6 899.749C1314.89 898.274 1314.53 896.559 1314.53 894.604C1314.53 892.648 1314.89 890.925 1315.6 889.433C1316.32 887.933 1317.32 886.765 1318.61 885.928C1319.9 885.083 1321.41 884.661 1323.13 884.661C1324.13 884.661 1325.11 884.826 1326.08 885.158C1327.05 885.489 1327.93 886.028 1328.73 886.773C1329.52 887.511 1330.16 888.489 1330.63 889.707C1331.1 890.925 1331.34 892.424 1331.34 894.206V895.449H1316.62V892.913H1328.35C1328.35 891.836 1328.14 890.875 1327.71 890.03C1327.28 889.185 1326.68 888.518 1325.89 888.029C1325.11 887.54 1324.19 887.295 1323.13 887.295C1321.96 887.295 1320.95 887.585 1320.1 888.165C1319.26 888.737 1318.61 889.483 1318.15 890.403C1317.69 891.322 1317.47 892.308 1317.47 893.361V895.051C1317.47 896.493 1317.71 897.715 1318.21 898.718C1318.72 899.712 1319.42 900.47 1320.31 900.992C1321.21 901.506 1322.25 901.763 1323.43 901.763C1324.2 901.763 1324.9 901.655 1325.52 901.44C1326.15 901.216 1326.69 900.884 1327.15 900.445C1327.6 899.998 1327.96 899.443 1328.2 898.78L1331.04 899.575C1330.74 900.536 1330.24 901.382 1329.53 902.111C1328.83 902.832 1327.96 903.395 1326.92 903.801C1325.89 904.199 1324.72 904.398 1323.43 904.398ZM1345.64 911.159V884.909H1348.48V887.942H1348.82C1349.04 887.61 1349.34 887.188 1349.72 886.674C1350.11 886.152 1350.66 885.688 1351.38 885.282C1352.11 884.868 1353.1 884.661 1354.34 884.661C1355.95 884.661 1357.37 885.062 1358.59 885.866C1359.82 886.67 1360.78 887.809 1361.46 889.284C1362.15 890.759 1362.5 892.499 1362.5 894.504C1362.5 896.526 1362.15 898.279 1361.46 899.762C1360.78 901.237 1359.82 902.38 1358.61 903.192C1357.39 903.996 1355.98 904.398 1354.39 904.398C1353.17 904.398 1352.18 904.195 1351.45 903.789C1350.71 903.374 1350.14 902.906 1349.74 902.384C1349.35 901.854 1349.04 901.415 1348.82 901.067H1348.58V911.159H1345.64ZM1348.53 894.455C1348.53 895.896 1348.74 897.168 1349.16 898.27C1349.58 899.364 1350.2 900.222 1351.01 900.843C1351.82 901.456 1352.82 901.763 1353.99 901.763C1355.22 901.763 1356.24 901.44 1357.06 900.793C1357.89 900.139 1358.51 899.26 1358.93 898.158C1359.35 897.048 1359.56 895.813 1359.56 894.455C1359.56 893.112 1359.36 891.902 1358.94 890.825C1358.54 889.74 1357.92 888.882 1357.09 888.252C1356.27 887.614 1355.24 887.295 1353.99 887.295C1352.8 887.295 1351.8 887.598 1350.99 888.203C1350.17 888.799 1349.56 889.636 1349.15 890.713C1348.73 891.782 1348.53 893.029 1348.53 894.455ZM1372.59 904.447C1371.38 904.447 1370.28 904.22 1369.29 903.764C1368.31 903.3 1367.53 902.633 1366.95 901.763C1366.37 900.884 1366.08 899.824 1366.08 898.581C1366.08 897.487 1366.29 896.601 1366.72 895.921C1367.15 895.233 1367.73 894.695 1368.45 894.305C1369.17 893.916 1369.97 893.626 1370.84 893.435C1371.71 893.237 1372.6 893.079 1373.48 892.963C1374.64 892.814 1375.58 892.702 1376.3 892.627C1377.03 892.545 1377.56 892.408 1377.9 892.217C1378.24 892.027 1378.4 891.695 1378.4 891.223V891.124C1378.4 889.897 1378.07 888.944 1377.4 888.265C1376.74 887.585 1375.73 887.246 1374.38 887.246C1372.98 887.246 1371.88 887.552 1371.08 888.165C1370.29 888.779 1369.73 889.433 1369.41 890.129L1366.62 889.135C1367.12 887.975 1367.78 887.072 1368.61 886.425C1369.45 885.771 1370.36 885.315 1371.35 885.058C1372.34 884.793 1373.32 884.661 1374.28 884.661C1374.89 884.661 1375.6 884.735 1376.39 884.884C1377.2 885.025 1377.97 885.319 1378.72 885.767C1379.47 886.214 1380.1 886.889 1380.59 887.793C1381.09 888.696 1381.34 889.906 1381.34 891.422V904H1378.4V901.415H1378.26C1378.06 901.829 1377.73 902.272 1377.26 902.745C1376.8 903.217 1376.18 903.619 1375.41 903.95C1374.64 904.282 1373.7 904.447 1372.59 904.447ZM1373.04 901.812C1374.2 901.812 1375.17 901.585 1375.97 901.129C1376.77 900.673 1377.38 900.085 1377.78 899.364C1378.2 898.643 1378.4 897.885 1378.4 897.089V894.405C1378.28 894.554 1378.01 894.691 1377.58 894.815C1377.17 894.931 1376.69 895.035 1376.14 895.126C1375.6 895.209 1375.08 895.283 1374.56 895.349C1374.06 895.407 1373.65 895.457 1373.33 895.499C1372.57 895.598 1371.86 895.76 1371.2 895.983C1370.54 896.199 1370.01 896.526 1369.61 896.965C1369.21 897.396 1369.01 897.984 1369.01 898.73C1369.01 899.749 1369.39 900.52 1370.14 901.042C1370.9 901.556 1371.87 901.812 1373.04 901.812ZM1386.69 904V884.909H1389.63V904H1386.69ZM1388.18 881.727C1387.61 881.727 1387.12 881.533 1386.7 881.143C1386.3 880.754 1386.1 880.286 1386.1 879.739C1386.1 879.192 1386.3 878.724 1386.7 878.334C1387.12 877.945 1387.61 877.75 1388.18 877.75C1388.76 877.75 1389.24 877.945 1389.65 878.334C1390.06 878.724 1390.27 879.192 1390.27 879.739C1390.27 880.286 1390.06 880.754 1389.65 881.143C1389.24 881.533 1388.76 881.727 1388.18 881.727ZM1397.93 892.516V904H1395V884.909H1397.83V887.892H1398.08C1398.53 886.923 1399.21 886.144 1400.12 885.555C1401.03 884.959 1402.21 884.661 1403.65 884.661C1404.94 884.661 1406.07 884.926 1407.04 885.456C1408.01 885.978 1408.76 886.773 1409.3 887.842C1409.84 888.903 1410.11 890.245 1410.11 891.869V904H1407.18V892.068C1407.18 890.568 1406.79 889.4 1406.01 888.563C1405.23 887.718 1404.16 887.295 1402.8 887.295C1401.87 887.295 1401.03 887.498 1400.29 887.904C1399.56 888.31 1398.99 888.903 1398.56 889.682C1398.14 890.461 1397.93 891.405 1397.93 892.516ZM1425.32 911.159V884.909H1428.15V887.942H1428.5C1428.71 887.61 1429.01 887.188 1429.39 886.674C1429.78 886.152 1430.34 885.688 1431.06 885.282C1431.79 884.868 1432.77 884.661 1434.02 884.661C1435.62 884.661 1437.04 885.062 1438.27 885.866C1439.49 886.67 1440.45 887.809 1441.14 889.284C1441.82 890.759 1442.17 892.499 1442.17 894.504C1442.17 896.526 1441.82 898.279 1441.14 899.762C1440.45 901.237 1439.5 902.38 1438.28 903.192C1437.06 903.996 1435.66 904.398 1434.07 904.398C1432.84 904.398 1431.86 904.195 1431.12 903.789C1430.38 903.374 1429.81 902.906 1429.42 902.384C1429.02 901.854 1428.71 901.415 1428.5 901.067H1428.25V911.159H1425.32ZM1428.2 894.455C1428.2 895.896 1428.41 897.168 1428.83 898.27C1429.26 899.364 1429.87 900.222 1430.68 900.843C1431.5 901.456 1432.49 901.763 1433.67 901.763C1434.89 901.763 1435.92 901.44 1436.74 900.793C1437.57 900.139 1438.19 899.26 1438.6 898.158C1439.02 897.048 1439.24 895.813 1439.24 894.455C1439.24 893.112 1439.03 891.902 1438.61 890.825C1438.21 889.74 1437.59 888.882 1436.76 888.252C1435.94 887.614 1434.91 887.295 1433.67 887.295C1432.47 887.295 1431.47 887.598 1430.66 888.203C1429.85 888.799 1429.23 889.636 1428.82 890.713C1428.41 891.782 1428.2 893.029 1428.2 894.455ZM1454.4 904.398C1452.68 904.398 1451.16 903.988 1449.86 903.167C1448.57 902.347 1447.56 901.199 1446.83 899.724C1446.11 898.25 1445.75 896.526 1445.75 894.554C1445.75 892.565 1446.11 890.829 1446.83 889.346C1447.56 887.863 1448.57 886.711 1449.86 885.891C1451.16 885.071 1452.68 884.661 1454.4 884.661C1456.12 884.661 1457.63 885.071 1458.92 885.891C1460.22 886.711 1461.23 887.863 1461.96 889.346C1462.68 890.829 1463.05 892.565 1463.05 894.554C1463.05 896.526 1462.68 898.25 1461.96 899.724C1461.23 901.199 1460.22 902.347 1458.92 903.167C1457.63 903.988 1456.12 904.398 1454.4 904.398ZM1454.4 901.763C1455.71 901.763 1456.79 901.427 1457.63 900.756C1458.48 900.085 1459.1 899.202 1459.51 898.109C1459.91 897.015 1460.12 895.83 1460.12 894.554C1460.12 893.278 1459.91 892.089 1459.51 890.987C1459.1 889.885 1458.48 888.994 1457.63 888.315C1456.79 887.635 1455.71 887.295 1454.4 887.295C1453.09 887.295 1452.01 887.635 1451.17 888.315C1450.32 888.994 1449.7 889.885 1449.29 890.987C1448.88 892.089 1448.68 893.278 1448.68 894.554C1448.68 895.83 1448.88 897.015 1449.29 898.109C1449.7 899.202 1450.32 900.085 1451.17 900.756C1452.01 901.427 1453.09 901.763 1454.4 901.763ZM1467.53 904V884.909H1470.46V904H1467.53ZM1469.02 881.727C1468.45 881.727 1467.95 881.533 1467.54 881.143C1467.13 880.754 1466.93 880.286 1466.93 879.739C1466.93 879.192 1467.13 878.724 1467.54 878.334C1467.95 877.945 1468.45 877.75 1469.02 877.75C1469.59 877.75 1470.08 877.945 1470.49 878.334C1470.9 878.724 1471.11 879.192 1471.11 879.739C1471.11 880.286 1470.9 880.754 1470.49 881.143C1470.08 881.533 1469.59 881.727 1469.02 881.727ZM1478.77 892.516V904H1475.83V884.909H1478.67V887.892H1478.91C1479.36 886.923 1480.04 886.144 1480.95 885.555C1481.86 884.959 1483.04 884.661 1484.48 884.661C1485.78 884.661 1486.91 884.926 1487.88 885.456C1488.85 885.978 1489.6 886.773 1490.14 887.842C1490.68 888.903 1490.95 890.245 1490.95 891.869V904H1488.01V892.068C1488.01 890.568 1487.62 889.4 1486.84 888.563C1486.07 887.718 1485 887.295 1483.64 887.295C1482.7 887.295 1481.86 887.498 1481.13 887.904C1480.4 888.31 1479.82 888.903 1479.4 889.682C1478.98 890.461 1478.77 891.405 1478.77 892.516ZM1504.61 884.909V887.395H1494.72V884.909H1504.61ZM1497.6 880.335H1500.53V898.531C1500.53 899.36 1500.65 899.981 1500.89 900.396C1501.14 900.802 1501.46 901.075 1501.84 901.216C1502.23 901.348 1502.64 901.415 1503.07 901.415C1503.39 901.415 1503.66 901.398 1503.86 901.365C1504.07 901.324 1504.24 901.29 1504.36 901.266L1504.96 903.901C1504.76 903.975 1504.48 904.05 1504.12 904.124C1503.77 904.207 1503.32 904.249 1502.77 904.249C1501.94 904.249 1501.13 904.07 1500.33 903.714C1499.55 903.358 1498.89 902.815 1498.37 902.086C1497.86 901.357 1497.6 900.437 1497.6 899.327V880.335ZM1522.2 889.185L1519.57 889.93C1519.4 889.491 1519.16 889.065 1518.83 888.65C1518.52 888.228 1518.09 887.88 1517.54 887.606C1516.99 887.333 1516.29 887.196 1515.44 887.196C1514.27 887.196 1513.3 887.465 1512.52 888.004C1511.75 888.534 1511.36 889.21 1511.36 890.03C1511.36 890.759 1511.63 891.335 1512.16 891.757C1512.69 892.18 1513.52 892.532 1514.65 892.814L1517.48 893.51C1519.19 893.924 1520.46 894.558 1521.29 895.412C1522.13 896.257 1522.55 897.346 1522.55 898.68C1522.55 899.774 1522.24 900.752 1521.61 901.614C1520.98 902.475 1520.11 903.155 1519 903.652C1517.88 904.149 1516.58 904.398 1515.09 904.398C1513.15 904.398 1511.53 903.975 1510.26 903.13C1508.98 902.285 1508.17 901.05 1507.83 899.426L1510.62 898.73C1510.88 899.758 1511.38 900.528 1512.12 901.042C1512.87 901.556 1513.84 901.812 1515.04 901.812C1516.41 901.812 1517.5 901.522 1518.3 900.942C1519.11 900.354 1519.52 899.65 1519.52 898.83C1519.52 898.167 1519.29 897.612 1518.82 897.164C1518.36 896.708 1517.64 896.369 1516.68 896.145L1513.5 895.399C1511.75 894.985 1510.47 894.343 1509.65 893.473C1508.84 892.594 1508.43 891.496 1508.43 890.179C1508.43 889.102 1508.73 888.149 1509.34 887.32C1509.95 886.492 1510.78 885.841 1511.84 885.369C1512.9 884.897 1514.1 884.661 1515.44 884.661C1517.33 884.661 1518.81 885.075 1519.89 885.903C1520.98 886.732 1521.75 887.826 1522.2 889.185ZM1544.56 904.398C1542.84 904.398 1541.33 903.988 1540.03 903.167C1538.74 902.347 1537.72 901.199 1537 899.724C1536.27 898.25 1535.91 896.526 1535.91 894.554C1535.91 892.565 1536.27 890.829 1537 889.346C1537.72 887.863 1538.74 886.711 1540.03 885.891C1541.33 885.071 1542.84 884.661 1544.56 884.661C1546.29 884.661 1547.8 885.071 1549.09 885.891C1550.39 886.711 1551.4 887.863 1552.12 889.346C1552.85 890.829 1553.22 892.565 1553.22 894.554C1553.22 896.526 1552.85 898.25 1552.12 899.724C1551.4 901.199 1550.39 902.347 1549.09 903.167C1547.8 903.988 1546.29 904.398 1544.56 904.398ZM1544.56 901.763C1545.87 901.763 1546.95 901.427 1547.8 900.756C1548.64 900.085 1549.27 899.202 1549.67 898.109C1550.08 897.015 1550.28 895.83 1550.28 894.554C1550.28 893.278 1550.08 892.089 1549.67 890.987C1549.27 889.885 1548.64 888.994 1547.8 888.315C1546.95 887.635 1545.87 887.295 1544.56 887.295C1543.26 887.295 1542.18 887.635 1541.33 888.315C1540.49 888.994 1539.86 889.885 1539.46 890.987C1539.05 892.089 1538.85 893.278 1538.85 894.554C1538.85 895.83 1539.05 897.015 1539.46 898.109C1539.86 899.202 1540.49 900.085 1541.33 900.756C1542.18 901.427 1543.26 901.763 1544.56 901.763ZM1566.19 884.909V887.395H1555.9V884.909H1566.19ZM1558.99 904V882.274C1558.99 881.18 1559.24 880.269 1559.76 879.54C1560.27 878.811 1560.94 878.264 1561.76 877.899C1562.58 877.535 1563.44 877.352 1564.35 877.352C1565.08 877.352 1565.66 877.41 1566.12 877.526C1566.58 877.642 1566.92 877.75 1567.14 877.849L1566.29 880.385C1566.14 880.335 1565.94 880.273 1565.67 880.199C1565.42 880.124 1565.08 880.087 1564.65 880.087C1563.68 880.087 1562.98 880.331 1562.55 880.82C1562.13 881.309 1561.92 882.026 1561.92 882.97V904H1558.99ZM1233.15 946.398C1231.56 946.398 1230.16 945.996 1228.94 945.192C1227.72 944.38 1226.77 943.237 1226.08 941.762C1225.39 940.279 1225.05 938.526 1225.05 936.504C1225.05 934.499 1225.39 932.759 1226.08 931.284C1226.77 929.809 1227.73 928.67 1228.95 927.866C1230.18 927.062 1231.6 926.661 1233.2 926.661C1234.45 926.661 1235.43 926.868 1236.15 927.282C1236.88 927.688 1237.43 928.152 1237.81 928.674C1238.2 929.188 1238.51 929.61 1238.72 929.942H1238.97V920.545H1241.9V946H1239.07V943.067H1238.72C1238.51 943.415 1238.2 943.854 1237.8 944.384C1237.4 944.906 1236.84 945.374 1236.1 945.789C1235.36 946.195 1234.38 946.398 1233.15 946.398ZM1233.55 943.763C1234.73 943.763 1235.72 943.456 1236.53 942.843C1237.35 942.222 1237.96 941.364 1238.39 940.27C1238.81 939.168 1239.02 937.896 1239.02 936.455C1239.02 935.029 1238.81 933.782 1238.4 932.713C1237.98 931.636 1237.37 930.799 1236.56 930.203C1235.75 929.598 1234.74 929.295 1233.55 929.295C1232.31 929.295 1231.27 929.614 1230.44 930.252C1229.62 930.882 1229.01 931.74 1228.59 932.825C1228.19 933.902 1227.98 935.112 1227.98 936.455C1227.98 937.813 1228.19 939.048 1228.6 940.158C1229.03 941.26 1229.65 942.139 1230.47 942.793C1231.3 943.44 1232.33 943.763 1233.55 943.763ZM1255.44 946.398C1253.72 946.398 1252.2 945.988 1250.9 945.167C1249.61 944.347 1248.6 943.199 1247.87 941.724C1247.15 940.25 1246.79 938.526 1246.79 936.554C1246.79 934.565 1247.15 932.829 1247.87 931.346C1248.6 929.863 1249.61 928.711 1250.9 927.891C1252.2 927.071 1253.72 926.661 1255.44 926.661C1257.16 926.661 1258.67 927.071 1259.96 927.891C1261.26 928.711 1262.27 929.863 1263 931.346C1263.72 932.829 1264.09 934.565 1264.09 936.554C1264.09 938.526 1263.72 940.25 1263 941.724C1262.27 943.199 1261.26 944.347 1259.96 945.167C1258.67 945.988 1257.16 946.398 1255.44 946.398ZM1255.44 943.763C1256.75 943.763 1257.83 943.427 1258.67 942.756C1259.52 942.085 1260.14 941.202 1260.55 940.109C1260.95 939.015 1261.16 937.83 1261.16 936.554C1261.16 935.278 1260.95 934.089 1260.55 932.987C1260.14 931.885 1259.52 930.994 1258.67 930.315C1257.83 929.635 1256.75 929.295 1255.44 929.295C1254.13 929.295 1253.05 929.635 1252.21 930.315C1251.36 930.994 1250.74 931.885 1250.33 932.987C1249.92 934.089 1249.72 935.278 1249.72 936.554C1249.72 937.83 1249.92 939.015 1250.33 940.109C1250.74 941.202 1251.36 942.085 1252.21 942.756C1253.05 943.427 1254.13 943.763 1255.44 943.763ZM1268.57 946V926.909H1271.5V946H1268.57ZM1270.06 923.727C1269.49 923.727 1268.99 923.533 1268.58 923.143C1268.17 922.754 1267.97 922.286 1267.97 921.739C1267.97 921.192 1268.17 920.724 1268.58 920.334C1268.99 919.945 1269.49 919.75 1270.06 919.75C1270.63 919.75 1271.12 919.945 1271.53 920.334C1271.94 920.724 1272.15 921.192 1272.15 921.739C1272.15 922.286 1271.94 922.754 1271.53 923.143C1271.12 923.533 1270.63 923.727 1270.06 923.727ZM1279.81 934.516V946H1276.87V926.909H1279.71V929.892H1279.96C1280.4 928.923 1281.08 928.144 1281.99 927.555C1282.9 926.959 1284.08 926.661 1285.52 926.661C1286.82 926.661 1287.95 926.926 1288.92 927.456C1289.89 927.978 1290.64 928.773 1291.18 929.842C1291.72 930.903 1291.99 932.245 1291.99 933.869V946H1289.05V934.068C1289.05 932.568 1288.66 931.4 1287.88 930.563C1287.11 929.718 1286.04 929.295 1284.68 929.295C1283.74 929.295 1282.9 929.498 1282.17 929.904C1281.44 930.31 1280.86 930.903 1280.44 931.682C1280.02 932.461 1279.81 933.405 1279.81 934.516ZM1305.05 953.557C1303.64 953.557 1302.42 953.375 1301.4 953.01C1300.38 952.654 1299.53 952.181 1298.85 951.593C1298.18 951.013 1297.64 950.392 1297.25 949.729L1299.58 948.088C1299.85 948.436 1300.18 948.834 1300.59 949.281C1301 949.737 1301.55 950.131 1302.26 950.462C1302.97 950.802 1303.9 950.972 1305.05 950.972C1306.59 950.972 1307.87 950.599 1308.87 949.853C1309.87 949.107 1310.37 947.939 1310.37 946.348V942.47H1310.12C1309.91 942.818 1309.6 943.249 1309.2 943.763C1308.81 944.268 1308.25 944.72 1307.51 945.118C1306.78 945.507 1305.8 945.702 1304.56 945.702C1303.01 945.702 1301.63 945.337 1300.4 944.608C1299.19 943.879 1298.22 942.818 1297.51 941.426C1296.8 940.034 1296.45 938.344 1296.45 936.355C1296.45 934.4 1296.8 932.697 1297.48 931.247C1298.17 929.788 1299.13 928.662 1300.35 927.866C1301.58 927.062 1303 926.661 1304.6 926.661C1305.85 926.661 1306.83 926.868 1307.56 927.282C1308.3 927.688 1308.86 928.152 1309.25 928.674C1309.65 929.188 1309.96 929.61 1310.17 929.942H1310.47V926.909H1313.31V946.547C1313.31 948.188 1312.93 949.522 1312.19 950.549C1311.45 951.585 1310.45 952.343 1309.2 952.824C1307.96 953.312 1306.58 953.557 1305.05 953.557ZM1304.95 943.067C1306.13 943.067 1307.12 942.797 1307.94 942.259C1308.75 941.72 1309.37 940.946 1309.79 939.935C1310.21 938.924 1310.42 937.714 1310.42 936.305C1310.42 934.93 1310.21 933.716 1309.8 932.664C1309.39 931.611 1308.77 930.787 1307.96 930.19C1307.15 929.594 1306.15 929.295 1304.95 929.295C1303.71 929.295 1302.67 929.61 1301.85 930.24C1301.03 930.87 1300.41 931.715 1299.99 932.776C1299.59 933.836 1299.38 935.013 1299.38 936.305C1299.38 937.631 1299.59 938.804 1300.01 939.823C1300.43 940.834 1301.05 941.629 1301.87 942.209C1302.7 942.781 1303.73 943.067 1304.95 943.067ZM1336.82 926.909V929.395H1326.93V926.909H1336.82ZM1329.81 922.335H1332.74V940.531C1332.74 941.36 1332.86 941.981 1333.1 942.396C1333.35 942.802 1333.67 943.075 1334.05 943.216C1334.44 943.348 1334.85 943.415 1335.28 943.415C1335.6 943.415 1335.87 943.398 1336.07 943.365C1336.28 943.324 1336.45 943.29 1336.57 943.266L1337.17 945.901C1336.97 945.975 1336.69 946.05 1336.34 946.124C1335.98 946.207 1335.53 946.249 1334.98 946.249C1334.15 946.249 1333.34 946.07 1332.55 945.714C1331.76 945.358 1331.1 944.815 1330.58 944.086C1330.07 943.357 1329.81 942.437 1329.81 941.327V922.335ZM1344.58 934.516V946H1341.64V920.545H1344.58V929.892H1344.82C1345.27 928.906 1345.94 928.123 1346.84 927.543C1347.74 926.955 1348.94 926.661 1350.44 926.661C1351.74 926.661 1352.88 926.922 1353.86 927.444C1354.84 927.957 1355.6 928.749 1356.14 929.817C1356.68 930.878 1356.96 932.229 1356.96 933.869V946H1354.02V934.068C1354.02 932.552 1353.63 931.379 1352.84 930.551C1352.06 929.714 1350.98 929.295 1349.6 929.295C1348.64 929.295 1347.77 929.498 1347.01 929.904C1346.26 930.31 1345.66 930.903 1345.22 931.682C1344.79 932.461 1344.58 933.405 1344.58 934.516ZM1362.32 946V926.909H1365.26V946H1362.32ZM1363.81 923.727C1363.24 923.727 1362.75 923.533 1362.33 923.143C1361.93 922.754 1361.73 922.286 1361.73 921.739C1361.73 921.192 1361.93 920.724 1362.33 920.334C1362.75 919.945 1363.24 919.75 1363.81 919.75C1364.39 919.75 1364.87 919.945 1365.28 920.334C1365.69 920.724 1365.9 921.192 1365.9 921.739C1365.9 922.286 1365.69 922.754 1365.28 923.143C1364.87 923.533 1364.39 923.727 1363.81 923.727ZM1384.15 931.185L1381.52 931.93C1381.35 931.491 1381.11 931.065 1380.78 930.65C1380.47 930.228 1380.04 929.88 1379.49 929.606C1378.94 929.333 1378.24 929.196 1377.39 929.196C1376.22 929.196 1375.25 929.465 1374.47 930.004C1373.7 930.534 1373.31 931.21 1373.31 932.03C1373.31 932.759 1373.58 933.335 1374.11 933.757C1374.64 934.18 1375.47 934.532 1376.59 934.814L1379.43 935.51C1381.13 935.924 1382.41 936.558 1383.24 937.412C1384.08 938.257 1384.5 939.346 1384.5 940.68C1384.5 941.774 1384.18 942.752 1383.55 943.614C1382.93 944.475 1382.06 945.155 1380.94 945.652C1379.82 946.149 1378.52 946.398 1377.04 946.398C1375.09 946.398 1373.48 945.975 1372.21 945.13C1370.93 944.285 1370.12 943.05 1369.78 941.426L1372.57 940.73C1372.83 941.758 1373.33 942.528 1374.07 943.042C1374.82 943.556 1375.79 943.812 1376.99 943.812C1378.36 943.812 1379.44 943.522 1380.25 942.942C1381.06 942.354 1381.47 941.65 1381.47 940.83C1381.47 940.167 1381.23 939.612 1380.77 939.164C1380.31 938.708 1379.59 938.369 1378.63 938.145L1375.45 937.399C1373.7 936.985 1372.42 936.343 1371.6 935.473C1370.78 934.594 1370.38 933.496 1370.38 932.179C1370.38 931.102 1370.68 930.149 1371.29 929.32C1371.9 928.492 1372.73 927.841 1373.78 927.369C1374.85 926.897 1376.05 926.661 1377.39 926.661C1379.28 926.661 1380.76 927.075 1381.84 927.903C1382.92 928.732 1383.69 929.826 1384.15 931.185ZM1398.76 926.909H1401.69V947.392C1401.69 948.569 1401.49 949.588 1401.08 950.45C1400.68 951.311 1400.08 951.978 1399.27 952.451C1398.46 952.923 1397.45 953.159 1396.22 953.159C1396.12 953.159 1396.02 953.159 1395.92 953.159C1395.82 953.159 1395.72 953.159 1395.63 953.159V950.425C1395.72 950.425 1395.82 950.425 1395.9 950.425C1395.98 950.425 1396.07 950.425 1396.17 950.425C1397.07 950.425 1397.72 950.16 1398.14 949.629C1398.55 949.107 1398.76 948.362 1398.76 947.392V926.909ZM1400.2 923.727C1399.63 923.727 1399.13 923.533 1398.72 923.143C1398.31 922.754 1398.11 922.286 1398.11 921.739C1398.11 921.192 1398.31 920.724 1398.72 920.334C1399.13 919.945 1399.63 919.75 1400.2 919.75C1400.77 919.75 1401.26 919.945 1401.67 920.334C1402.08 920.724 1402.29 921.192 1402.29 921.739C1402.29 922.286 1402.08 922.754 1401.67 923.143C1401.26 923.533 1400.77 923.727 1400.2 923.727ZM1414.82 946.398C1413.1 946.398 1411.58 945.988 1410.28 945.167C1408.99 944.347 1407.98 943.199 1407.25 941.724C1406.53 940.25 1406.17 938.526 1406.17 936.554C1406.17 934.565 1406.53 932.829 1407.25 931.346C1407.98 929.863 1408.99 928.711 1410.28 927.891C1411.58 927.071 1413.1 926.661 1414.82 926.661C1416.54 926.661 1418.05 927.071 1419.34 927.891C1420.64 928.711 1421.65 929.863 1422.38 931.346C1423.1 932.829 1423.47 934.565 1423.47 936.554C1423.47 938.526 1423.1 940.25 1422.38 941.724C1421.65 943.199 1420.64 944.347 1419.34 945.167C1418.05 945.988 1416.54 946.398 1414.82 946.398ZM1414.82 943.763C1416.13 943.763 1417.21 943.427 1418.05 942.756C1418.9 942.085 1419.52 941.202 1419.93 940.109C1420.33 939.015 1420.54 937.83 1420.54 936.554C1420.54 935.278 1420.33 934.089 1419.93 932.987C1419.52 931.885 1418.9 930.994 1418.05 930.315C1417.21 929.635 1416.13 929.295 1414.82 929.295C1413.51 929.295 1412.43 929.635 1411.59 930.315C1410.74 930.994 1410.12 931.885 1409.71 932.987C1409.3 934.089 1409.1 935.278 1409.1 936.554C1409.1 937.83 1409.3 939.015 1409.71 940.109C1410.12 941.202 1410.74 942.085 1411.59 942.756C1412.43 943.427 1413.51 943.763 1414.82 943.763ZM1428.34 946V920.545H1431.28V929.942H1431.53C1431.74 929.61 1432.04 929.188 1432.42 928.674C1432.81 928.152 1433.37 927.688 1434.09 927.282C1434.82 926.868 1435.8 926.661 1437.04 926.661C1438.65 926.661 1440.07 927.062 1441.3 927.866C1442.52 928.67 1443.48 929.809 1444.17 931.284C1444.85 932.759 1445.2 934.499 1445.2 936.504C1445.2 938.526 1444.85 940.279 1444.17 941.762C1443.48 943.237 1442.53 944.38 1441.31 945.192C1440.09 945.996 1438.69 946.398 1437.09 946.398C1435.87 946.398 1434.89 946.195 1434.15 945.789C1433.41 945.374 1432.84 944.906 1432.45 944.384C1432.05 943.854 1431.74 943.415 1431.53 943.067H1431.18V946H1428.34ZM1431.23 936.455C1431.23 937.896 1431.44 939.168 1431.86 940.27C1432.28 941.364 1432.9 942.222 1433.71 942.843C1434.53 943.456 1435.52 943.763 1436.7 943.763C1437.92 943.763 1438.95 943.44 1439.77 942.793C1440.6 942.139 1441.22 941.26 1441.63 940.158C1442.05 939.048 1442.27 937.813 1442.27 936.455C1442.27 935.112 1442.06 933.902 1441.64 932.825C1441.24 931.74 1440.62 930.882 1439.79 930.252C1438.97 929.614 1437.94 929.295 1436.7 929.295C1435.5 929.295 1434.5 929.598 1433.69 930.203C1432.88 930.799 1432.26 931.636 1431.85 932.713C1431.44 933.782 1431.23 935.029 1431.23 936.455ZM1453.51 938.841V938.692C1453.53 937.109 1453.7 935.85 1454.01 934.913C1454.33 933.977 1454.77 933.219 1455.35 932.639C1455.93 932.059 1456.63 931.524 1457.44 931.036C1457.93 930.737 1458.37 930.385 1458.76 929.979C1459.15 929.565 1459.45 929.088 1459.68 928.55C1459.91 928.011 1460.03 927.415 1460.03 926.76C1460.03 925.948 1459.84 925.244 1459.45 924.647C1459.07 924.05 1458.56 923.591 1457.93 923.267C1457.29 922.944 1456.58 922.783 1455.8 922.783C1455.12 922.783 1454.47 922.924 1453.84 923.205C1453.21 923.487 1452.68 923.93 1452.26 924.535C1451.84 925.14 1451.59 925.931 1451.52 926.909H1448.39C1448.46 925.5 1448.82 924.295 1449.49 923.292C1450.16 922.29 1451.04 921.523 1452.13 920.993C1453.24 920.463 1454.46 920.197 1455.8 920.197C1457.26 920.197 1458.53 920.487 1459.6 921.067C1460.69 921.647 1461.53 922.443 1462.11 923.454C1462.71 924.465 1463.01 925.616 1463.01 926.909C1463.01 927.821 1462.87 928.645 1462.59 929.382C1462.31 930.12 1461.92 930.779 1461.39 931.359C1460.88 931.939 1460.26 932.452 1459.53 932.9C1458.8 933.356 1458.22 933.836 1457.78 934.342C1457.34 934.839 1457.02 935.431 1456.82 936.119C1456.62 936.807 1456.51 937.664 1456.5 938.692V938.841H1453.51ZM1455.1 946.199C1454.49 946.199 1453.96 945.979 1453.53 945.54C1453.09 945.101 1452.87 944.575 1452.87 943.962C1452.87 943.348 1453.09 942.822 1453.53 942.383C1453.96 941.944 1454.49 941.724 1455.1 941.724C1455.72 941.724 1456.24 941.944 1456.68 942.383C1457.12 942.822 1457.34 943.348 1457.34 943.962C1457.34 944.368 1457.24 944.741 1457.03 945.08C1456.83 945.42 1456.56 945.693 1456.22 945.901C1455.89 946.099 1455.52 946.199 1455.1 946.199Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"UniqueValue\" className=\"map-btn\" onClick={ClickHandler(\"UniqueValue\")}>\r\n <rect id=\"Rectangle 2\" x=\"1898\" y=\"757\" width=\"572\" height=\"333\" rx=\"50\" fill=\"#396F9D\" />\r\n <path\r\n d=\"M2080.45 795.182H2084.07V814.925C2084.07 816.963 2083.59 818.783 2082.62 820.385C2081.67 821.976 2080.33 823.233 2078.59 824.156C2076.85 825.068 2074.82 825.524 2072.48 825.524C2070.14 825.524 2068.1 825.068 2066.36 824.156C2064.62 823.233 2063.27 821.976 2062.31 820.385C2061.36 818.783 2060.89 816.963 2060.89 814.925V795.182H2064.5V814.634C2064.5 816.089 2064.82 817.385 2065.46 818.521C2066.1 819.647 2067.01 820.535 2068.2 821.185C2069.39 821.826 2070.82 822.146 2072.48 822.146C2074.14 822.146 2075.56 821.826 2076.76 821.185C2077.95 820.535 2078.86 819.647 2079.49 818.521C2080.13 817.385 2080.45 816.089 2080.45 814.634V795.182ZM2094.25 811.547V825H2090.81V802.636H2094.13V806.131H2094.42C2094.95 804.995 2095.74 804.083 2096.81 803.393C2097.88 802.695 2099.26 802.345 2100.94 802.345C2102.46 802.345 2103.78 802.656 2104.92 803.277C2106.05 803.888 2106.94 804.82 2107.57 806.072C2108.2 807.315 2108.51 808.887 2108.51 810.79V825H2105.08V811.023C2105.08 809.266 2104.62 807.897 2103.71 806.917C2102.8 805.927 2101.55 805.432 2099.95 805.432C2098.86 805.432 2097.88 805.67 2097.01 806.145C2096.16 806.621 2095.48 807.315 2094.99 808.227C2094.49 809.14 2094.25 810.246 2094.25 811.547ZM2114.79 825V802.636H2118.23V825H2114.79ZM2116.54 798.909C2115.87 798.909 2115.29 798.681 2114.81 798.225C2114.33 797.769 2114.09 797.22 2114.09 796.58C2114.09 795.939 2114.33 795.391 2114.81 794.934C2115.29 794.478 2115.87 794.25 2116.54 794.25C2117.21 794.25 2117.78 794.478 2118.26 794.934C2118.74 795.391 2118.99 795.939 2118.99 796.58C2118.99 797.22 2118.74 797.769 2118.26 798.225C2117.78 798.681 2117.21 798.909 2116.54 798.909ZM2139.78 833.386V821.564H2139.49C2139.24 821.972 2138.88 822.486 2138.41 823.107C2137.95 823.719 2137.28 824.267 2136.42 824.752C2135.55 825.228 2134.4 825.466 2132.97 825.466C2131.1 825.466 2129.46 824.995 2128.03 824.054C2126.61 823.102 2125.49 821.763 2124.68 820.035C2123.88 818.298 2123.48 816.245 2123.48 813.876C2123.48 811.527 2123.88 809.489 2124.68 807.761C2125.49 806.034 2126.61 804.699 2128.05 803.757C2129.48 802.816 2131.14 802.345 2133.03 802.345C2134.48 802.345 2135.63 802.588 2136.48 803.073C2137.33 803.549 2137.98 804.092 2138.43 804.704C2138.88 805.306 2139.24 805.801 2139.49 806.189H2139.9V802.636H2143.22V833.386H2139.78ZM2133.43 822.379C2134.81 822.379 2135.98 822.02 2136.93 821.302C2137.88 820.574 2138.6 819.569 2139.1 818.288C2139.59 816.997 2139.84 815.507 2139.84 813.818C2139.84 812.149 2139.6 810.688 2139.11 809.436C2138.63 808.174 2137.91 807.194 2136.96 806.495C2136.01 805.786 2134.83 805.432 2133.43 805.432C2131.98 805.432 2130.76 805.806 2129.79 806.553C2128.83 807.291 2128.11 808.295 2127.62 809.567C2127.15 810.829 2126.91 812.246 2126.91 813.818C2126.91 815.41 2127.15 816.856 2127.64 818.157C2128.13 819.448 2128.86 820.477 2129.82 821.244C2130.79 822.001 2132 822.379 2133.43 822.379ZM2163.6 815.857V802.636H2167.04V825H2163.6V821.214H2163.37C2162.84 822.35 2162.03 823.316 2160.92 824.112C2159.82 824.898 2158.42 825.291 2156.73 825.291C2155.33 825.291 2154.09 824.985 2153 824.374C2151.91 823.753 2151.06 822.821 2150.44 821.578C2149.82 820.326 2149.51 818.749 2149.51 816.847V802.636H2152.94V816.614C2152.94 818.244 2153.4 819.545 2154.31 820.516C2155.23 821.486 2156.41 821.972 2157.84 821.972C2158.69 821.972 2159.56 821.753 2160.44 821.316C2161.33 820.88 2162.08 820.21 2162.68 819.307C2163.3 818.404 2163.6 817.254 2163.6 815.857ZM2182.71 825.466C2180.55 825.466 2178.69 824.99 2177.13 824.039C2175.58 823.078 2174.38 821.739 2173.53 820.021C2172.7 818.293 2172.28 816.284 2172.28 813.993C2172.28 811.702 2172.7 809.683 2173.53 807.936C2174.38 806.179 2175.55 804.811 2177.06 803.83C2178.57 802.84 2180.34 802.345 2182.36 802.345C2183.52 802.345 2184.67 802.539 2185.81 802.928C2186.94 803.316 2187.98 803.947 2188.91 804.82C2189.84 805.684 2190.58 806.83 2191.14 808.256C2191.69 809.683 2191.97 811.44 2191.97 813.527V814.983H2174.73V812.013H2188.47C2188.47 810.751 2188.22 809.625 2187.72 808.635C2187.22 807.645 2186.51 806.864 2185.59 806.291C2184.68 805.718 2183.6 805.432 2182.36 805.432C2180.99 805.432 2179.81 805.772 2178.81 806.451C2177.82 807.121 2177.05 807.994 2176.52 809.072C2175.99 810.149 2175.72 811.304 2175.72 812.537V814.517C2175.72 816.206 2176.01 817.638 2176.59 818.812C2177.18 819.977 2178 820.865 2179.05 821.477C2180.1 822.078 2181.32 822.379 2182.71 822.379C2183.61 822.379 2184.43 822.253 2185.15 822.001C2185.89 821.739 2186.53 821.35 2187.06 820.836C2187.59 820.312 2188.01 819.661 2188.3 818.885L2191.62 819.817C2191.27 820.943 2190.68 821.933 2189.86 822.787C2189.03 823.631 2188.01 824.291 2186.8 824.767C2185.59 825.233 2184.22 825.466 2182.71 825.466ZM2210.41 795.182L2219.27 820.283H2219.62L2228.47 795.182H2232.25L2221.3 825H2217.58L2206.63 795.182H2210.41ZM2240.93 825.524C2239.51 825.524 2238.23 825.257 2237.07 824.723C2235.92 824.18 2235 823.398 2234.32 822.379C2233.64 821.35 2233.3 820.108 2233.3 818.652C2233.3 817.371 2233.55 816.332 2234.06 815.536C2234.56 814.731 2235.24 814.1 2236.08 813.643C2236.93 813.187 2237.86 812.848 2238.88 812.624C2239.91 812.391 2240.94 812.207 2241.98 812.071C2243.34 811.896 2244.44 811.765 2245.28 811.678C2246.14 811.581 2246.76 811.421 2247.15 811.197C2247.55 810.974 2247.75 810.586 2247.75 810.033V809.916C2247.75 808.48 2247.35 807.363 2246.57 806.567C2245.79 805.772 2244.61 805.374 2243.03 805.374C2241.39 805.374 2240.1 805.733 2239.17 806.451C2238.24 807.169 2237.58 807.936 2237.2 808.751L2233.94 807.587C2234.53 806.228 2235.3 805.17 2236.27 804.413C2237.25 803.646 2238.32 803.112 2239.48 802.811C2240.64 802.5 2241.79 802.345 2242.91 802.345C2243.63 802.345 2244.45 802.433 2245.39 802.607C2246.33 802.772 2247.24 803.117 2248.11 803.641C2248.99 804.165 2249.73 804.956 2250.31 806.014C2250.89 807.072 2251.18 808.489 2251.18 810.266V825H2247.75V821.972H2247.57C2247.34 822.457 2246.95 822.976 2246.41 823.529C2245.86 824.083 2245.14 824.554 2244.24 824.942C2243.33 825.33 2242.23 825.524 2240.93 825.524ZM2241.46 822.438C2242.81 822.438 2243.96 822.171 2244.89 821.637C2245.83 821.103 2246.54 820.414 2247.02 819.569C2247.5 818.725 2247.75 817.837 2247.75 816.905V813.76C2247.6 813.935 2247.28 814.095 2246.78 814.24C2246.3 814.376 2245.74 814.498 2245.1 814.604C2244.46 814.701 2243.85 814.789 2243.25 814.866C2242.65 814.934 2242.17 814.993 2241.8 815.041C2240.91 815.158 2240.08 815.347 2239.3 815.609C2238.53 815.861 2237.91 816.245 2237.44 816.759C2236.97 817.264 2236.74 817.953 2236.74 818.827C2236.74 820.021 2237.18 820.923 2238.06 821.535C2238.96 822.137 2240.09 822.438 2241.46 822.438ZM2260.89 795.182V825H2257.45V795.182H2260.89ZM2281.28 815.857V802.636H2284.71V825H2281.28V821.214H2281.04C2280.52 822.35 2279.7 823.316 2278.6 824.112C2277.49 824.898 2276.09 825.291 2274.4 825.291C2273.01 825.291 2271.76 824.985 2270.68 824.374C2269.59 823.753 2268.74 822.821 2268.11 821.578C2267.49 820.326 2267.18 818.749 2267.18 816.847V802.636H2270.62V816.614C2270.62 818.244 2271.07 819.545 2271.99 820.516C2272.91 821.486 2274.08 821.972 2275.51 821.972C2276.36 821.972 2277.23 821.753 2278.12 821.316C2279.01 820.88 2279.76 820.21 2280.36 819.307C2280.97 818.404 2281.28 817.254 2281.28 815.857ZM2300.38 825.466C2298.23 825.466 2296.37 824.99 2294.81 824.039C2293.25 823.078 2292.05 821.739 2291.21 820.021C2290.37 818.293 2289.96 816.284 2289.96 813.993C2289.96 811.702 2290.37 809.683 2291.21 807.936C2292.05 806.179 2293.23 804.811 2294.73 803.83C2296.25 802.84 2298.01 802.345 2300.03 802.345C2301.2 802.345 2302.35 802.539 2303.48 802.928C2304.62 803.316 2305.65 803.947 2306.58 804.82C2307.52 805.684 2308.26 806.83 2308.81 808.256C2309.37 809.683 2309.64 811.44 2309.64 813.527V814.983H2292.4V812.013H2306.15C2306.15 810.751 2305.9 809.625 2305.39 808.635C2304.9 807.645 2304.19 806.864 2303.26 806.291C2302.35 805.718 2301.28 805.432 2300.03 805.432C2298.66 805.432 2297.48 805.772 2296.48 806.451C2295.49 807.121 2294.73 807.994 2294.19 809.072C2293.66 810.149 2293.39 811.304 2293.39 812.537V814.517C2293.39 816.206 2293.68 817.638 2294.27 818.812C2294.86 819.977 2295.68 820.865 2296.73 821.477C2297.78 822.078 2298.99 822.379 2300.38 822.379C2301.28 822.379 2302.1 822.253 2302.83 822.001C2303.57 821.739 2304.2 821.35 2304.74 820.836C2305.27 820.312 2305.68 819.661 2305.97 818.885L2309.29 819.817C2308.94 820.943 2308.36 821.933 2307.53 822.787C2306.71 823.631 2305.69 824.291 2304.47 824.767C2303.26 825.233 2301.9 825.466 2300.38 825.466Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M2057.28 833.153H2311.74V835.949H2057.28V833.153Z\" fill=\"black\" />\r\n <path\r\n id=\"How can you do the job and address pain points in a way no competitors do?​\"\r\n d=\"M1991.44 904V878.545H1994.52V889.881H2008.09V878.545H2011.18V904H2008.09V892.615H1994.52V904H1991.44ZM2024.7 904.398C2022.98 904.398 2021.47 903.988 2020.17 903.167C2018.87 902.347 2017.86 901.199 2017.13 899.724C2016.41 898.25 2016.05 896.526 2016.05 894.554C2016.05 892.565 2016.41 890.829 2017.13 889.346C2017.86 887.863 2018.87 886.711 2020.17 885.891C2021.47 885.071 2022.98 884.661 2024.7 884.661C2026.43 884.661 2027.94 885.071 2029.23 885.891C2030.53 886.711 2031.54 887.863 2032.26 889.346C2032.99 890.829 2033.35 892.565 2033.35 894.554C2033.35 896.526 2032.99 898.25 2032.26 899.724C2031.54 901.199 2030.53 902.347 2029.23 903.167C2027.94 903.988 2026.43 904.398 2024.7 904.398ZM2024.7 901.763C2026.01 901.763 2027.09 901.427 2027.94 900.756C2028.78 900.085 2029.41 899.202 2029.81 898.109C2030.22 897.015 2030.42 895.83 2030.42 894.554C2030.42 893.278 2030.22 892.089 2029.81 890.987C2029.41 889.885 2028.78 888.994 2027.94 888.315C2027.09 887.635 2026.01 887.295 2024.7 887.295C2023.39 887.295 2022.32 887.635 2021.47 888.315C2020.63 888.994 2020 889.885 2019.6 890.987C2019.19 892.089 2018.99 893.278 2018.99 894.554C2018.99 895.83 2019.19 897.015 2019.6 898.109C2020 899.202 2020.63 900.085 2021.47 900.756C2022.32 901.427 2023.39 901.763 2024.7 901.763ZM2041.51 904L2035.69 884.909H2038.77L2042.9 899.526H2043.1L2047.18 884.909H2050.31L2054.33 899.476H2054.53L2058.66 884.909H2061.74L2055.93 904H2053.04L2048.87 889.334H2048.57L2044.39 904H2041.51ZM2083.22 904.398C2081.43 904.398 2079.89 903.975 2078.6 903.13C2077.3 902.285 2076.31 901.121 2075.61 899.637C2074.92 898.154 2074.57 896.46 2074.57 894.554C2074.57 892.615 2074.93 890.904 2075.64 889.421C2076.36 887.929 2077.36 886.765 2078.65 885.928C2079.94 885.083 2081.45 884.661 2083.17 884.661C2084.51 884.661 2085.72 884.909 2086.8 885.406C2087.88 885.903 2088.76 886.599 2089.45 887.494C2090.13 888.389 2090.56 889.433 2090.73 890.626H2087.79C2087.57 889.756 2087.07 888.986 2086.3 888.315C2085.54 887.635 2084.51 887.295 2083.22 887.295C2082.08 887.295 2081.07 887.594 2080.21 888.19C2079.36 888.779 2078.69 889.611 2078.21 890.689C2077.74 891.757 2077.5 893.013 2077.5 894.455C2077.5 895.929 2077.73 897.214 2078.2 898.308C2078.67 899.401 2079.33 900.251 2080.19 900.855C2081.05 901.46 2082.06 901.763 2083.22 901.763C2083.98 901.763 2084.67 901.63 2085.3 901.365C2085.92 901.1 2086.44 900.719 2086.87 900.222C2087.3 899.724 2087.61 899.128 2087.79 898.432H2090.73C2090.56 899.559 2090.15 900.574 2089.5 901.477C2088.85 902.372 2087.99 903.084 2086.92 903.615C2085.86 904.137 2084.63 904.398 2083.22 904.398ZM2100.63 904.447C2099.42 904.447 2098.32 904.22 2097.34 903.764C2096.35 903.3 2095.57 902.633 2094.99 901.763C2094.41 900.884 2094.12 899.824 2094.12 898.581C2094.12 897.487 2094.34 896.601 2094.77 895.921C2095.2 895.233 2095.77 894.695 2096.49 894.305C2097.21 893.916 2098.01 893.626 2098.88 893.435C2099.76 893.237 2100.64 893.079 2101.53 892.963C2102.69 892.814 2103.63 892.702 2104.35 892.627C2105.08 892.545 2105.61 892.408 2105.94 892.217C2106.28 892.027 2106.45 891.695 2106.45 891.223V891.124C2106.45 889.897 2106.11 888.944 2105.44 888.265C2104.78 887.585 2103.77 887.246 2102.42 887.246C2101.02 887.246 2099.92 887.552 2099.13 888.165C2098.33 888.779 2097.77 889.433 2097.45 890.129L2094.67 889.135C2095.16 887.975 2095.83 887.072 2096.66 886.425C2097.49 885.771 2098.4 885.315 2099.39 885.058C2100.38 884.793 2101.36 884.661 2102.32 884.661C2102.94 884.661 2103.64 884.735 2104.44 884.884C2105.24 885.025 2106.01 885.319 2106.76 885.767C2107.51 886.214 2108.14 886.889 2108.64 887.793C2109.13 888.696 2109.38 889.906 2109.38 891.422V904H2106.45V901.415H2106.3C2106.1 901.829 2105.77 902.272 2105.31 902.745C2104.84 903.217 2104.22 903.619 2103.45 903.95C2102.68 904.282 2101.74 904.447 2100.63 904.447ZM2101.08 901.812C2102.24 901.812 2103.22 901.585 2104.01 901.129C2104.82 900.673 2105.42 900.085 2105.83 899.364C2106.24 898.643 2106.45 897.885 2106.45 897.089V894.405C2106.33 894.554 2106.05 894.691 2105.63 894.815C2105.21 894.931 2104.73 895.035 2104.19 895.126C2103.65 895.209 2103.12 895.283 2102.61 895.349C2102.1 895.407 2101.69 895.457 2101.38 895.499C2100.62 895.598 2099.9 895.76 2099.24 895.983C2098.59 896.199 2098.06 896.526 2097.65 896.965C2097.25 897.396 2097.05 897.984 2097.05 898.73C2097.05 899.749 2097.43 900.52 2098.18 901.042C2098.95 901.556 2099.91 901.812 2101.08 901.812ZM2117.67 892.516V904H2114.74V884.909H2117.57V887.892H2117.82C2118.27 886.923 2118.95 886.144 2119.86 885.555C2120.77 884.959 2121.95 884.661 2123.39 884.661C2124.68 884.661 2125.81 884.926 2126.78 885.456C2127.75 885.978 2128.5 886.773 2129.04 887.842C2129.58 888.903 2129.85 890.245 2129.85 891.869V904H2126.92V892.068C2126.92 890.568 2126.53 889.4 2125.75 888.563C2124.97 887.718 2123.9 887.295 2122.54 887.295C2121.61 887.295 2120.77 887.498 2120.03 887.904C2119.3 888.31 2118.73 888.903 2118.3 889.682C2117.88 890.461 2117.67 891.405 2117.67 892.516ZM2146.94 911.159C2146.45 911.159 2146 911.118 2145.61 911.035C2145.22 910.96 2144.95 910.886 2144.81 910.811L2145.55 908.226C2146.26 908.408 2146.89 908.474 2147.44 908.425C2147.99 908.375 2148.47 908.131 2148.89 907.691C2149.33 907.261 2149.72 906.56 2150.08 905.591L2150.62 904.099L2143.56 884.909H2146.74L2152.01 900.122H2152.21L2157.48 884.909H2160.66L2152.56 906.784C2152.2 907.77 2151.74 908.586 2151.21 909.233C2150.67 909.887 2150.04 910.372 2149.33 910.687C2148.63 911.002 2147.83 911.159 2146.94 911.159ZM2171.61 904.398C2169.88 904.398 2168.37 903.988 2167.07 903.167C2165.78 902.347 2164.77 901.199 2164.04 899.724C2163.32 898.25 2162.96 896.526 2162.96 894.554C2162.96 892.565 2163.32 890.829 2164.04 889.346C2164.77 887.863 2165.78 886.711 2167.07 885.891C2168.37 885.071 2169.88 884.661 2171.61 884.661C2173.33 884.661 2174.84 885.071 2176.13 885.891C2177.43 886.711 2178.44 887.863 2179.17 889.346C2179.89 890.829 2180.26 892.565 2180.26 894.554C2180.26 896.526 2179.89 898.25 2179.17 899.724C2178.44 901.199 2177.43 902.347 2176.13 903.167C2174.84 903.988 2173.33 904.398 2171.61 904.398ZM2171.61 901.763C2172.92 901.763 2173.99 901.427 2174.84 900.756C2175.69 900.085 2176.31 899.202 2176.72 898.109C2177.12 897.015 2177.33 895.83 2177.33 894.554C2177.33 893.278 2177.12 892.089 2176.72 890.987C2176.31 889.885 2175.69 888.994 2174.84 888.315C2173.99 887.635 2172.92 887.295 2171.61 887.295C2170.3 887.295 2169.22 887.635 2168.38 888.315C2167.53 888.994 2166.91 889.885 2166.5 890.987C2166.09 892.089 2165.89 893.278 2165.89 894.554C2165.89 895.83 2166.09 897.015 2166.5 898.109C2166.91 899.202 2167.53 900.085 2168.38 900.756C2169.22 901.427 2170.3 901.763 2171.61 901.763ZM2196.77 896.195V884.909H2199.7V904H2196.77V900.768H2196.57C2196.12 901.738 2195.43 902.562 2194.48 903.242C2193.54 903.913 2192.34 904.249 2190.9 904.249C2189.71 904.249 2188.65 903.988 2187.72 903.466C2186.79 902.935 2186.06 902.14 2185.53 901.079C2185 900.01 2184.74 898.664 2184.74 897.04V884.909H2187.67V896.841C2187.67 898.233 2188.06 899.343 2188.84 900.172C2189.63 901 2190.63 901.415 2191.85 901.415C2192.57 901.415 2193.32 901.228 2194.07 900.855C2194.83 900.483 2195.47 899.911 2195.98 899.14C2196.51 898.37 2196.77 897.388 2196.77 896.195ZM2222.13 904.398C2220.53 904.398 2219.13 903.996 2217.91 903.192C2216.69 902.38 2215.74 901.237 2215.05 899.762C2214.37 898.279 2214.02 896.526 2214.02 894.504C2214.02 892.499 2214.37 890.759 2215.05 889.284C2215.74 887.809 2216.7 886.67 2217.92 885.866C2219.15 885.062 2220.57 884.661 2222.18 884.661C2223.42 884.661 2224.4 884.868 2225.12 885.282C2225.85 885.688 2226.41 886.152 2226.79 886.674C2227.18 887.188 2227.48 887.61 2227.69 887.942H2227.94V878.545H2230.88V904H2228.04V901.067H2227.69C2227.48 901.415 2227.17 901.854 2226.77 902.384C2226.38 902.906 2225.81 903.374 2225.07 903.789C2224.33 904.195 2223.35 904.398 2222.13 904.398ZM2222.52 901.763C2223.7 901.763 2224.69 901.456 2225.51 900.843C2226.32 900.222 2226.94 899.364 2227.36 898.27C2227.78 897.168 2227.99 895.896 2227.99 894.455C2227.99 893.029 2227.79 891.782 2227.37 890.713C2226.96 889.636 2226.34 888.799 2225.53 888.203C2224.72 887.598 2223.72 887.295 2222.52 887.295C2221.28 887.295 2220.24 887.614 2219.42 888.252C2218.6 888.882 2217.98 889.74 2217.56 890.825C2217.16 891.902 2216.96 893.112 2216.96 894.455C2216.96 895.813 2217.16 897.048 2217.58 898.158C2218 899.26 2218.62 900.139 2219.44 900.793C2220.27 901.44 2221.3 901.763 2222.52 901.763ZM2244.41 904.398C2242.69 904.398 2241.18 903.988 2239.87 903.167C2238.58 902.347 2237.57 901.199 2236.84 899.724C2236.12 898.25 2235.76 896.526 2235.76 894.554C2235.76 892.565 2236.12 890.829 2236.84 889.346C2237.57 887.863 2238.58 886.711 2239.87 885.891C2241.18 885.071 2242.69 884.661 2244.41 884.661C2246.13 884.661 2247.64 885.071 2248.94 885.891C2250.24 886.711 2251.25 887.863 2251.97 889.346C2252.7 890.829 2253.06 892.565 2253.06 894.554C2253.06 896.526 2252.7 898.25 2251.97 899.724C2251.25 901.199 2250.24 902.347 2248.94 903.167C2247.64 903.988 2246.13 904.398 2244.41 904.398ZM2244.41 901.763C2245.72 901.763 2246.8 901.427 2247.64 900.756C2248.49 900.085 2249.11 899.202 2249.52 898.109C2249.93 897.015 2250.13 895.83 2250.13 894.554C2250.13 893.278 2249.93 892.089 2249.52 890.987C2249.11 889.885 2248.49 888.994 2247.64 888.315C2246.8 887.635 2245.72 887.295 2244.41 887.295C2243.1 887.295 2242.02 887.635 2241.18 888.315C2240.33 888.994 2239.71 889.885 2239.3 890.987C2238.9 892.089 2238.69 893.278 2238.69 894.554C2238.69 895.83 2238.9 897.015 2239.3 898.109C2239.71 899.202 2240.33 900.085 2241.18 900.756C2242.02 901.427 2243.1 901.763 2244.41 901.763ZM2275.69 884.909V887.395H2265.79V884.909H2275.69ZM2268.68 880.335H2271.61V898.531C2271.61 899.36 2271.73 899.981 2271.97 900.396C2272.22 900.802 2272.53 901.075 2272.91 901.216C2273.3 901.348 2273.71 901.415 2274.14 901.415C2274.47 901.415 2274.73 901.398 2274.94 901.365C2275.15 901.324 2275.31 901.29 2275.44 901.266L2276.03 903.901C2275.83 903.975 2275.56 904.05 2275.2 904.124C2274.84 904.207 2274.39 904.249 2273.85 904.249C2273.02 904.249 2272.21 904.07 2271.41 903.714C2270.62 903.358 2269.97 902.815 2269.45 902.086C2268.93 901.357 2268.68 900.437 2268.68 899.327V880.335ZM2283.44 892.516V904H2280.51V878.545H2283.44V887.892H2283.69C2284.14 886.906 2284.81 886.123 2285.7 885.543C2286.61 884.955 2287.81 884.661 2289.31 884.661C2290.61 884.661 2291.75 884.922 2292.73 885.444C2293.7 885.957 2294.46 886.749 2295 887.817C2295.55 888.878 2295.82 890.229 2295.82 891.869V904H2292.89V892.068C2292.89 890.552 2292.49 889.379 2291.71 888.551C2290.93 887.714 2289.85 887.295 2288.46 887.295C2287.5 887.295 2286.64 887.498 2285.88 887.904C2285.12 888.31 2284.53 888.903 2284.09 889.682C2283.66 890.461 2283.44 891.405 2283.44 892.516ZM2309.19 904.398C2307.35 904.398 2305.76 903.992 2304.43 903.18C2303.1 902.359 2302.08 901.216 2301.36 899.749C2300.65 898.274 2300.29 896.559 2300.29 894.604C2300.29 892.648 2300.65 890.925 2301.36 889.433C2302.08 887.933 2303.08 886.765 2304.37 885.928C2305.66 885.083 2307.17 884.661 2308.89 884.661C2309.89 884.661 2310.87 884.826 2311.84 885.158C2312.81 885.489 2313.69 886.028 2314.49 886.773C2315.28 887.511 2315.91 888.489 2316.39 889.707C2316.86 890.925 2317.1 892.424 2317.1 894.206V895.449H2302.38V892.913H2314.11C2314.11 891.836 2313.9 890.875 2313.47 890.03C2313.04 889.185 2312.44 888.518 2311.65 888.029C2310.87 887.54 2309.95 887.295 2308.89 887.295C2307.72 887.295 2306.71 887.585 2305.86 888.165C2305.01 888.737 2304.36 889.483 2303.91 890.403C2303.45 891.322 2303.22 892.308 2303.22 893.361V895.051C2303.22 896.493 2303.47 897.715 2303.97 898.718C2304.48 899.712 2305.18 900.47 2306.07 900.992C2306.97 901.506 2308.01 901.763 2309.19 901.763C2309.96 901.763 2310.66 901.655 2311.28 901.44C2311.91 901.216 2312.45 900.884 2312.91 900.445C2313.36 899.998 2313.72 899.443 2313.96 898.78L2316.8 899.575C2316.5 900.536 2316 901.382 2315.29 902.111C2314.59 902.832 2313.72 903.395 2312.68 903.801C2311.65 904.199 2310.48 904.398 2309.19 904.398ZM2331.4 884.909H2334.33V905.392C2334.33 906.569 2334.13 907.588 2333.73 908.45C2333.33 909.311 2332.72 909.978 2331.91 910.451C2331.11 910.923 2330.09 911.159 2328.87 911.159C2328.77 911.159 2328.67 911.159 2328.57 911.159C2328.47 911.159 2328.37 911.159 2328.27 911.159V908.425C2328.37 908.425 2328.46 908.425 2328.54 908.425C2328.63 908.425 2328.72 908.425 2328.82 908.425C2329.71 908.425 2330.37 908.16 2330.78 907.629C2331.19 907.107 2331.4 906.362 2331.4 905.392V884.909ZM2332.84 881.727C2332.27 881.727 2331.78 881.533 2331.36 881.143C2330.96 880.754 2330.76 880.286 2330.76 879.739C2330.76 879.192 2330.96 878.724 2331.36 878.334C2331.78 877.945 2332.27 877.75 2332.84 877.75C2333.41 877.75 2333.9 877.945 2334.31 878.334C2334.72 878.724 2334.93 879.192 2334.93 879.739C2334.93 880.286 2334.72 880.754 2334.31 881.143C2333.9 881.533 2333.41 881.727 2332.84 881.727ZM2347.46 904.398C2345.74 904.398 2344.23 903.988 2342.93 903.167C2341.63 902.347 2340.62 901.199 2339.89 899.724C2339.17 898.25 2338.81 896.526 2338.81 894.554C2338.81 892.565 2339.17 890.829 2339.89 889.346C2340.62 887.863 2341.63 886.711 2342.93 885.891C2344.23 885.071 2345.74 884.661 2347.46 884.661C2349.19 884.661 2350.69 885.071 2351.99 885.891C2353.29 886.711 2354.3 887.863 2355.02 889.346C2355.75 890.829 2356.11 892.565 2356.11 894.554C2356.11 896.526 2355.75 898.25 2355.02 899.724C2354.3 901.199 2353.29 902.347 2351.99 903.167C2350.69 903.988 2349.19 904.398 2347.46 904.398ZM2347.46 901.763C2348.77 901.763 2349.85 901.427 2350.69 900.756C2351.54 900.085 2352.17 899.202 2352.57 898.109C2352.98 897.015 2353.18 895.83 2353.18 894.554C2353.18 893.278 2352.98 892.089 2352.57 890.987C2352.17 889.885 2351.54 888.994 2350.69 888.315C2349.85 887.635 2348.77 887.295 2347.46 887.295C2346.15 887.295 2345.08 887.635 2344.23 888.315C2343.39 888.994 2342.76 889.885 2342.35 890.987C2341.95 892.089 2341.75 893.278 2341.75 894.554C2341.75 895.83 2341.95 897.015 2342.35 898.109C2342.76 899.202 2343.39 900.085 2344.23 900.756C2345.08 901.427 2346.15 901.763 2347.46 901.763ZM2360.99 904V878.545H2363.92V887.942H2364.17C2364.39 887.61 2364.68 887.188 2365.07 886.674C2365.45 886.152 2366.01 885.688 2366.73 885.282C2367.46 884.868 2368.45 884.661 2369.69 884.661C2371.3 884.661 2372.71 885.062 2373.94 885.866C2375.17 886.67 2376.12 887.809 2376.81 889.284C2377.5 890.759 2377.84 892.499 2377.84 894.504C2377.84 896.526 2377.5 898.279 2376.81 899.762C2376.12 901.237 2375.17 902.38 2373.95 903.192C2372.73 903.996 2371.33 904.398 2369.74 904.398C2368.51 904.398 2367.53 904.195 2366.79 903.789C2366.06 903.374 2365.49 902.906 2365.09 902.384C2364.69 901.854 2364.39 901.415 2364.17 901.067H2363.82V904H2360.99ZM2363.87 894.455C2363.87 895.896 2364.08 897.168 2364.51 898.27C2364.93 899.364 2365.55 900.222 2366.36 900.843C2367.17 901.456 2368.16 901.763 2369.34 901.763C2370.57 901.763 2371.59 901.44 2372.41 900.793C2373.24 900.139 2373.86 899.26 2374.28 898.158C2374.7 897.048 2374.91 895.813 2374.91 894.455C2374.91 893.112 2374.7 891.902 2374.29 890.825C2373.88 889.74 2373.26 888.882 2372.44 888.252C2371.62 887.614 2370.58 887.295 2369.34 887.295C2368.15 887.295 2367.15 887.598 2366.33 888.203C2365.52 888.799 2364.91 889.636 2364.49 890.713C2364.08 891.782 2363.87 893.029 2363.87 894.455ZM1960.44 946.447C1959.23 946.447 1958.14 946.22 1957.15 945.764C1956.16 945.3 1955.38 944.633 1954.8 943.763C1954.22 942.884 1953.93 941.824 1953.93 940.581C1953.93 939.487 1954.15 938.601 1954.58 937.921C1955.01 937.233 1955.58 936.695 1956.31 936.305C1957.03 935.916 1957.82 935.626 1958.69 935.435C1959.57 935.237 1960.45 935.079 1961.34 934.963C1962.5 934.814 1963.44 934.702 1964.16 934.627C1964.89 934.545 1965.42 934.408 1965.75 934.217C1966.09 934.027 1966.26 933.695 1966.26 933.223V933.124C1966.26 931.897 1965.93 930.944 1965.25 930.265C1964.59 929.585 1963.59 929.246 1962.23 929.246C1960.83 929.246 1959.74 929.552 1958.94 930.165C1958.15 930.779 1957.59 931.433 1957.26 932.129L1954.48 931.135C1954.98 929.975 1955.64 929.072 1956.47 928.425C1957.3 927.771 1958.22 927.315 1959.2 927.058C1960.2 926.793 1961.17 926.661 1962.13 926.661C1962.75 926.661 1963.45 926.735 1964.25 926.884C1965.05 927.025 1965.83 927.319 1966.57 927.767C1967.33 928.214 1967.95 928.889 1968.45 929.793C1968.95 930.696 1969.19 931.906 1969.19 933.422V946H1966.26V943.415H1966.11C1965.91 943.829 1965.58 944.272 1965.12 944.745C1964.65 945.217 1964.04 945.619 1963.27 945.95C1962.5 946.282 1961.55 946.447 1960.44 946.447ZM1960.89 943.812C1962.05 943.812 1963.03 943.585 1963.83 943.129C1964.63 942.673 1965.23 942.085 1965.64 941.364C1966.05 940.643 1966.26 939.885 1966.26 939.089V936.405C1966.14 936.554 1965.86 936.691 1965.44 936.815C1965.03 936.931 1964.55 937.035 1964 937.126C1963.46 937.209 1962.93 937.283 1962.42 937.349C1961.92 937.407 1961.51 937.457 1961.19 937.499C1960.43 937.598 1959.72 937.76 1959.05 937.983C1958.4 938.199 1957.87 938.526 1957.46 938.965C1957.06 939.396 1956.87 939.984 1956.87 940.73C1956.87 941.749 1957.24 942.52 1958 943.042C1958.76 943.556 1959.72 943.812 1960.89 943.812ZM1977.48 934.516V946H1974.55V926.909H1977.38V929.892H1977.63C1978.08 928.923 1978.76 928.144 1979.67 927.555C1980.58 926.959 1981.76 926.661 1983.2 926.661C1984.49 926.661 1985.62 926.926 1986.59 927.456C1987.56 927.978 1988.32 928.773 1988.85 929.842C1989.39 930.903 1989.66 932.245 1989.66 933.869V946H1986.73V934.068C1986.73 932.568 1986.34 931.4 1985.56 930.563C1984.78 929.718 1983.71 929.295 1982.35 929.295C1981.42 929.295 1980.58 929.498 1979.84 929.904C1979.11 930.31 1978.54 930.903 1978.12 931.682C1977.69 932.461 1977.48 933.405 1977.48 934.516ZM2002.23 946.398C2000.64 946.398 1999.24 945.996 1998.02 945.192C1996.8 944.38 1995.85 943.237 1995.16 941.762C1994.47 940.279 1994.13 938.526 1994.13 936.504C1994.13 934.499 1994.47 932.759 1995.16 931.284C1995.85 929.809 1996.8 928.67 1998.03 927.866C1999.26 927.062 2000.67 926.661 2002.28 926.661C2003.52 926.661 2004.51 926.868 2005.23 927.282C2005.96 927.688 2006.51 928.152 2006.89 928.674C2007.28 929.188 2007.58 929.61 2007.8 929.942H2008.05V920.545H2010.98V946H2008.15V943.067H2007.8C2007.58 943.415 2007.28 943.854 2006.88 944.384C2006.48 944.906 2005.91 945.374 2005.18 945.789C2004.44 946.195 2003.46 946.398 2002.23 946.398ZM2002.63 943.763C2003.81 943.763 2004.8 943.456 2005.61 942.843C2006.42 942.222 2007.04 941.364 2007.46 940.27C2007.89 939.168 2008.1 937.896 2008.1 936.455C2008.1 935.029 2007.89 933.782 2007.48 932.713C2007.06 931.636 2006.45 930.799 2005.64 930.203C2004.82 929.598 2003.82 929.295 2002.63 929.295C2001.39 929.295 2000.35 929.614 1999.52 930.252C1998.7 930.882 1998.08 931.74 1997.67 932.825C1997.26 933.902 1997.06 935.112 1997.06 936.455C1997.06 937.813 1997.27 939.048 1997.68 940.158C1998.1 941.26 1998.73 942.139 1999.55 942.793C2000.37 943.44 2001.4 943.763 2002.63 943.763ZM2032.22 946.447C2031.01 946.447 2029.91 946.22 2028.93 945.764C2027.94 945.3 2027.16 944.633 2026.58 943.763C2026 942.884 2025.71 941.824 2025.71 940.581C2025.71 939.487 2025.92 938.601 2026.36 937.921C2026.79 937.233 2027.36 936.695 2028.08 936.305C2028.8 935.916 2029.6 935.626 2030.47 935.435C2031.35 935.237 2032.23 935.079 2033.12 934.963C2034.28 934.814 2035.22 934.702 2035.94 934.627C2036.67 934.545 2037.2 934.408 2037.53 934.217C2037.87 934.027 2038.04 933.695 2038.04 933.223V933.124C2038.04 931.897 2037.7 930.944 2037.03 930.265C2036.37 929.585 2035.36 929.246 2034.01 929.246C2032.61 929.246 2031.51 929.552 2030.72 930.165C2029.92 930.779 2029.36 931.433 2029.04 932.129L2026.26 931.135C2026.75 929.975 2027.42 929.072 2028.24 928.425C2029.08 927.771 2029.99 927.315 2030.98 927.058C2031.97 926.793 2032.95 926.661 2033.91 926.661C2034.53 926.661 2035.23 926.735 2036.03 926.884C2036.83 927.025 2037.6 927.319 2038.35 927.767C2039.1 928.214 2039.73 928.889 2040.23 929.793C2040.72 930.696 2040.97 931.906 2040.97 933.422V946H2038.04V943.415H2037.89C2037.69 943.829 2037.36 944.272 2036.9 944.745C2036.43 945.217 2035.81 945.619 2035.04 945.95C2034.27 946.282 2033.33 946.447 2032.22 946.447ZM2032.67 943.812C2033.83 943.812 2034.81 943.585 2035.6 943.129C2036.41 942.673 2037.01 942.085 2037.42 941.364C2037.83 940.643 2038.04 939.885 2038.04 939.089V936.405C2037.91 936.554 2037.64 936.691 2037.22 936.815C2036.8 936.931 2036.32 937.035 2035.78 937.126C2035.24 937.209 2034.71 937.283 2034.2 937.349C2033.69 937.407 2033.28 937.457 2032.97 937.499C2032.21 937.598 2031.49 937.76 2030.83 937.983C2030.18 938.199 2029.65 938.526 2029.24 938.965C2028.84 939.396 2028.64 939.984 2028.64 940.73C2028.64 941.749 2029.02 942.52 2029.77 943.042C2030.54 943.556 2031.5 943.812 2032.67 943.812ZM2053.53 946.398C2051.94 946.398 2050.54 945.996 2049.32 945.192C2048.1 944.38 2047.15 943.237 2046.46 941.762C2045.77 940.279 2045.43 938.526 2045.43 936.504C2045.43 934.499 2045.77 932.759 2046.46 931.284C2047.15 929.809 2048.11 928.67 2049.33 927.866C2050.56 927.062 2051.98 926.661 2053.58 926.661C2054.83 926.661 2055.81 926.868 2056.53 927.282C2057.26 927.688 2057.81 928.152 2058.2 928.674C2058.58 929.188 2058.89 929.61 2059.1 929.942H2059.35V920.545H2062.28V946H2059.45V943.067H2059.1C2058.89 943.415 2058.58 943.854 2058.18 944.384C2057.79 944.906 2057.22 945.374 2056.48 945.789C2055.74 946.195 2054.76 946.398 2053.53 946.398ZM2053.93 943.763C2055.11 943.763 2056.1 943.456 2056.92 942.843C2057.73 942.222 2058.34 941.364 2058.77 940.27C2059.19 939.168 2059.4 937.896 2059.4 936.455C2059.4 935.029 2059.19 933.782 2058.78 932.713C2058.37 931.636 2057.75 930.799 2056.94 930.203C2056.13 929.598 2055.13 929.295 2053.93 929.295C2052.69 929.295 2051.65 929.614 2050.83 930.252C2050 930.882 2049.39 931.74 2048.97 932.825C2048.57 933.902 2048.36 935.112 2048.36 936.455C2048.36 937.813 2048.57 939.048 2048.99 940.158C2049.41 941.26 2050.03 942.139 2050.85 942.793C2051.68 943.44 2052.71 943.763 2053.93 943.763ZM2075.27 946.398C2073.68 946.398 2072.28 945.996 2071.06 945.192C2069.84 944.38 2068.89 943.237 2068.2 941.762C2067.51 940.279 2067.17 938.526 2067.17 936.504C2067.17 934.499 2067.51 932.759 2068.2 931.284C2068.89 929.809 2069.85 928.67 2071.07 927.866C2072.3 927.062 2073.72 926.661 2075.32 926.661C2076.57 926.661 2077.55 926.868 2078.27 927.282C2079 927.688 2079.55 928.152 2079.93 928.674C2080.32 929.188 2080.63 929.61 2080.84 929.942H2081.09V920.545H2084.02V946H2081.19V943.067H2080.84C2080.63 943.415 2080.32 943.854 2079.92 944.384C2079.52 944.906 2078.96 945.374 2078.22 945.789C2077.48 946.195 2076.5 946.398 2075.27 946.398ZM2075.67 943.763C2076.85 943.763 2077.84 943.456 2078.65 942.843C2079.47 942.222 2080.08 941.364 2080.51 940.27C2080.93 939.168 2081.14 937.896 2081.14 936.455C2081.14 935.029 2080.93 933.782 2080.52 932.713C2080.1 931.636 2079.49 930.799 2078.68 930.203C2077.87 929.598 2076.86 929.295 2075.67 929.295C2074.43 929.295 2073.39 929.614 2072.56 930.252C2071.74 930.882 2071.13 931.74 2070.71 932.825C2070.31 933.902 2070.1 935.112 2070.1 936.455C2070.1 937.813 2070.31 939.048 2070.72 940.158C2071.15 941.26 2071.77 942.139 2072.59 942.793C2073.42 943.44 2074.44 943.763 2075.67 943.763ZM2089.8 946V926.909H2092.64V929.793H2092.84C2093.18 928.848 2093.81 928.082 2094.72 927.493C2095.64 926.905 2096.66 926.611 2097.81 926.611C2098.02 926.611 2098.29 926.615 2098.61 926.623C2098.94 926.632 2099.18 926.644 2099.35 926.661V929.643C2099.25 929.619 2099.02 929.581 2098.66 929.532C2098.32 929.474 2097.95 929.445 2097.56 929.445C2096.63 929.445 2095.8 929.639 2095.07 930.029C2094.35 930.41 2093.78 930.94 2093.36 931.62C2092.94 932.291 2092.74 933.057 2092.74 933.919V946H2089.8ZM2110.25 946.398C2108.41 946.398 2106.82 945.992 2105.49 945.18C2104.16 944.359 2103.14 943.216 2102.42 941.749C2101.71 940.274 2101.35 938.559 2101.35 936.604C2101.35 934.648 2101.71 932.925 2102.42 931.433C2103.14 929.933 2104.14 928.765 2105.43 927.928C2106.72 927.083 2108.23 926.661 2109.95 926.661C2110.94 926.661 2111.93 926.826 2112.9 927.158C2113.86 927.489 2114.75 928.028 2115.54 928.773C2116.34 929.511 2116.97 930.489 2117.44 931.707C2117.92 932.925 2118.15 934.424 2118.15 936.206V937.449H2103.44V934.913H2115.17C2115.17 933.836 2114.95 932.875 2114.52 932.03C2114.1 931.185 2113.5 930.518 2112.71 930.029C2111.93 929.54 2111.01 929.295 2109.95 929.295C2108.78 929.295 2107.77 929.585 2106.92 930.165C2106.07 930.737 2105.42 931.483 2104.97 932.403C2104.51 933.322 2104.28 934.308 2104.28 935.361V937.051C2104.28 938.493 2104.53 939.715 2105.03 940.718C2105.53 941.712 2106.23 942.47 2107.13 942.992C2108.02 943.506 2109.06 943.763 2110.25 943.763C2111.02 943.763 2111.71 943.655 2112.34 943.44C2112.97 943.216 2113.51 942.884 2113.96 942.445C2114.42 941.998 2114.77 941.443 2115.02 940.78L2117.85 941.575C2117.56 942.536 2117.05 943.382 2116.35 944.111C2115.65 944.832 2114.78 945.395 2113.74 945.801C2112.7 946.199 2111.54 946.398 2110.25 946.398ZM2136.14 931.185L2133.5 931.93C2133.34 931.491 2133.09 931.065 2132.77 930.65C2132.45 930.228 2132.02 929.88 2131.48 929.606C2130.93 929.333 2130.23 929.196 2129.38 929.196C2128.21 929.196 2127.23 929.465 2126.46 930.004C2125.68 930.534 2125.3 931.21 2125.3 932.03C2125.3 932.759 2125.56 933.335 2126.09 933.757C2126.63 934.18 2127.45 934.532 2128.58 934.814L2131.41 935.51C2133.12 935.924 2134.39 936.558 2135.23 937.412C2136.07 938.257 2136.49 939.346 2136.49 940.68C2136.49 941.774 2136.17 942.752 2135.54 943.614C2134.92 944.475 2134.05 945.155 2132.93 945.652C2131.81 946.149 2130.51 946.398 2129.03 946.398C2127.08 946.398 2125.47 945.975 2124.19 945.13C2122.92 944.285 2122.11 943.05 2121.77 941.426L2124.55 940.73C2124.82 941.758 2125.32 942.528 2126.06 943.042C2126.8 943.556 2127.78 943.812 2128.98 943.812C2130.35 943.812 2131.43 943.522 2132.23 942.942C2133.05 942.354 2133.45 941.65 2133.45 940.83C2133.45 940.167 2133.22 939.612 2132.76 939.164C2132.29 938.708 2131.58 938.369 2130.62 938.145L2127.44 937.399C2125.69 936.985 2124.4 936.343 2123.58 935.473C2122.77 934.594 2122.37 933.496 2122.37 932.179C2122.37 931.102 2122.67 930.149 2123.27 929.32C2123.89 928.492 2124.72 927.841 2125.77 927.369C2126.83 926.897 2128.03 926.661 2129.38 926.661C2131.27 926.661 2132.75 927.075 2133.83 927.903C2134.91 928.732 2135.68 929.826 2136.14 931.185ZM2154.42 931.185L2151.79 931.93C2151.62 931.491 2151.38 931.065 2151.06 930.65C2150.74 930.228 2150.31 929.88 2149.76 929.606C2149.22 929.333 2148.52 929.196 2147.66 929.196C2146.49 929.196 2145.52 929.465 2144.74 930.004C2143.97 930.534 2143.59 931.21 2143.59 932.03C2143.59 932.759 2143.85 933.335 2144.38 933.757C2144.91 934.18 2145.74 934.532 2146.87 934.814L2149.7 935.51C2151.41 935.924 2152.68 936.558 2153.52 937.412C2154.35 938.257 2154.77 939.346 2154.77 940.68C2154.77 941.774 2154.46 942.752 2153.83 943.614C2153.21 944.475 2152.34 945.155 2151.22 945.652C2150.1 946.149 2148.8 946.398 2147.31 946.398C2145.37 946.398 2143.76 945.975 2142.48 945.13C2141.2 944.285 2140.4 943.05 2140.06 941.426L2142.84 940.73C2143.11 941.758 2143.61 942.528 2144.34 943.042C2145.09 943.556 2146.06 943.812 2147.26 943.812C2148.63 943.812 2149.72 943.522 2150.52 942.942C2151.33 942.354 2151.74 941.65 2151.74 940.83C2151.74 940.167 2151.51 939.612 2151.04 939.164C2150.58 938.708 2149.87 938.369 2148.91 938.145L2145.72 937.399C2143.98 936.985 2142.69 936.343 2141.87 935.473C2141.06 934.594 2140.65 933.496 2140.65 932.179C2140.65 931.102 2140.95 930.149 2141.56 929.32C2142.17 928.492 2143.01 927.841 2144.06 927.369C2145.12 926.897 2146.32 926.661 2147.66 926.661C2149.55 926.661 2151.03 927.075 2152.11 927.903C2153.2 928.732 2153.97 929.826 2154.42 931.185ZM2169.03 953.159V926.909H2171.86V929.942H2172.21C2172.43 929.61 2172.73 929.188 2173.11 928.674C2173.5 928.152 2174.05 927.688 2174.77 927.282C2175.5 926.868 2176.49 926.661 2177.73 926.661C2179.34 926.661 2180.76 927.062 2181.98 927.866C2183.21 928.67 2184.17 929.809 2184.85 931.284C2185.54 932.759 2185.88 934.499 2185.88 936.504C2185.88 938.526 2185.54 940.279 2184.85 941.762C2184.17 943.237 2183.21 944.38 2181.99 945.192C2180.78 945.996 2179.37 946.398 2177.78 946.398C2176.55 946.398 2175.57 946.195 2174.84 945.789C2174.1 945.374 2173.53 944.906 2173.13 944.384C2172.73 943.854 2172.43 943.415 2172.21 943.067H2171.96V953.159H2169.03ZM2171.91 936.455C2171.91 937.896 2172.13 939.168 2172.55 940.27C2172.97 941.364 2173.59 942.222 2174.4 942.843C2175.21 943.456 2176.21 943.763 2177.38 943.763C2178.61 943.763 2179.63 943.44 2180.45 942.793C2181.28 942.139 2181.9 941.26 2182.32 940.158C2182.74 939.048 2182.95 937.813 2182.95 936.455C2182.95 935.112 2182.74 933.902 2182.33 932.825C2181.92 931.74 2181.31 930.882 2180.48 930.252C2179.66 929.614 2178.63 929.295 2177.38 929.295C2176.19 929.295 2175.19 929.598 2174.38 930.203C2173.56 930.799 2172.95 931.636 2172.54 932.713C2172.12 933.782 2171.91 935.029 2171.91 936.455ZM2195.98 946.447C2194.77 946.447 2193.67 946.22 2192.68 945.764C2191.7 945.3 2190.91 944.633 2190.33 943.763C2189.75 942.884 2189.46 941.824 2189.46 940.581C2189.46 939.487 2189.68 938.601 2190.11 937.921C2190.54 937.233 2191.12 936.695 2191.84 936.305C2192.56 935.916 2193.35 935.626 2194.22 935.435C2195.1 935.237 2195.99 935.079 2196.87 934.963C2198.03 934.814 2198.97 934.702 2199.69 934.627C2200.42 934.545 2200.95 934.408 2201.28 934.217C2201.62 934.027 2201.79 933.695 2201.79 933.223V933.124C2201.79 931.897 2201.46 930.944 2200.79 930.265C2200.12 929.585 2199.12 929.246 2197.77 929.246C2196.37 929.246 2195.27 929.552 2194.47 930.165C2193.68 930.779 2193.12 931.433 2192.8 932.129L2190.01 931.135C2190.51 929.975 2191.17 929.072 2192 928.425C2192.84 927.771 2193.75 927.315 2194.73 927.058C2195.73 926.793 2196.71 926.661 2197.67 926.661C2198.28 926.661 2198.98 926.735 2199.78 926.884C2200.58 927.025 2201.36 927.319 2202.1 927.767C2202.86 928.214 2203.48 928.889 2203.98 929.793C2204.48 930.696 2204.73 931.906 2204.73 933.422V946H2201.79V943.415H2201.64C2201.45 943.829 2201.11 944.272 2200.65 944.745C2200.19 945.217 2199.57 945.619 2198.8 945.95C2198.03 946.282 2197.09 946.447 2195.98 946.447ZM2196.42 943.812C2197.58 943.812 2198.56 943.585 2199.36 943.129C2200.16 942.673 2200.77 942.085 2201.17 941.364C2201.59 940.643 2201.79 939.885 2201.79 939.089V936.405C2201.67 936.554 2201.4 936.691 2200.97 936.815C2200.56 936.931 2200.08 937.035 2199.53 937.126C2198.99 937.209 2198.47 937.283 2197.95 937.349C2197.45 937.407 2197.04 937.457 2196.72 937.499C2195.96 937.598 2195.25 937.76 2194.58 937.983C2193.93 938.199 2193.4 938.526 2192.99 938.965C2192.6 939.396 2192.4 939.984 2192.4 940.73C2192.4 941.749 2192.77 942.52 2193.53 943.042C2194.29 943.556 2195.26 943.812 2196.42 943.812ZM2210.08 946V926.909H2213.01V946H2210.08ZM2211.57 923.727C2211 923.727 2210.51 923.533 2210.09 923.143C2209.69 922.754 2209.48 922.286 2209.48 921.739C2209.48 921.192 2209.69 920.724 2210.09 920.334C2210.51 919.945 2211 919.75 2211.57 919.75C2212.14 919.75 2212.63 919.945 2213.04 920.334C2213.45 920.724 2213.66 921.192 2213.66 921.739C2213.66 922.286 2213.45 922.754 2213.04 923.143C2212.63 923.533 2212.14 923.727 2211.57 923.727ZM2221.32 934.516V946H2218.39V926.909H2221.22V929.892H2221.47C2221.92 928.923 2222.6 928.144 2223.51 927.555C2224.42 926.959 2225.6 926.661 2227.04 926.661C2228.33 926.661 2229.46 926.926 2230.43 927.456C2231.4 927.978 2232.15 928.773 2232.69 929.842C2233.23 930.903 2233.5 932.245 2233.5 933.869V946H2230.57V934.068C2230.57 932.568 2230.18 931.4 2229.4 930.563C2228.62 929.718 2227.55 929.295 2226.19 929.295C2225.26 929.295 2224.42 929.498 2223.68 929.904C2222.95 930.31 2222.38 930.903 2221.95 931.682C2221.53 932.461 2221.32 933.405 2221.32 934.516ZM2248.7 953.159V926.909H2251.54V929.942H2251.89C2252.1 929.61 2252.4 929.188 2252.78 928.674C2253.17 928.152 2253.73 927.688 2254.45 927.282C2255.18 926.868 2256.16 926.661 2257.4 926.661C2259.01 926.661 2260.43 927.062 2261.65 927.866C2262.88 928.67 2263.84 929.809 2264.53 931.284C2265.21 932.759 2265.56 934.499 2265.56 936.504C2265.56 938.526 2265.21 940.279 2264.53 941.762C2263.84 943.237 2262.89 944.38 2261.67 945.192C2260.45 945.996 2259.04 946.398 2257.45 946.398C2256.23 946.398 2255.25 946.195 2254.51 945.789C2253.77 945.374 2253.2 944.906 2252.81 944.384C2252.41 943.854 2252.1 943.415 2251.89 943.067H2251.64V953.159H2248.7ZM2251.59 936.455C2251.59 937.896 2251.8 939.168 2252.22 940.27C2252.64 941.364 2253.26 942.222 2254.07 942.843C2254.89 943.456 2255.88 943.763 2257.06 943.763C2258.28 943.763 2259.31 943.44 2260.13 942.793C2260.95 942.139 2261.58 941.26 2261.99 940.158C2262.41 939.048 2262.62 937.813 2262.62 936.455C2262.62 935.112 2262.42 933.902 2262 932.825C2261.6 931.74 2260.98 930.882 2260.15 930.252C2259.33 929.614 2258.3 929.295 2257.06 929.295C2255.86 929.295 2254.86 929.598 2254.05 930.203C2253.24 930.799 2252.62 931.636 2252.21 932.713C2251.79 933.782 2251.59 935.029 2251.59 936.455ZM2277.79 946.398C2276.06 946.398 2274.55 945.988 2273.25 945.167C2271.96 944.347 2270.95 943.199 2270.22 941.724C2269.5 940.25 2269.14 938.526 2269.14 936.554C2269.14 934.565 2269.5 932.829 2270.22 931.346C2270.95 929.863 2271.96 928.711 2273.25 927.891C2274.55 927.071 2276.06 926.661 2277.79 926.661C2279.51 926.661 2281.02 927.071 2282.31 927.891C2283.61 928.711 2284.62 929.863 2285.34 931.346C2286.07 932.829 2286.44 934.565 2286.44 936.554C2286.44 938.526 2286.07 940.25 2285.34 941.724C2284.62 943.199 2283.61 944.347 2282.31 945.167C2281.02 945.988 2279.51 946.398 2277.79 946.398ZM2277.79 943.763C2279.1 943.763 2280.17 943.427 2281.02 942.756C2281.86 942.085 2282.49 941.202 2282.9 940.109C2283.3 939.015 2283.5 937.83 2283.5 936.554C2283.5 935.278 2283.3 934.089 2282.9 932.987C2282.49 931.885 2281.86 930.994 2281.02 930.315C2280.17 929.635 2279.1 929.295 2277.79 929.295C2276.48 929.295 2275.4 929.635 2274.56 930.315C2273.71 930.994 2273.09 931.885 2272.68 932.987C2272.27 934.089 2272.07 935.278 2272.07 936.554C2272.07 937.83 2272.27 939.015 2272.68 940.109C2273.09 941.202 2273.71 942.085 2274.56 942.756C2275.4 943.427 2276.48 943.763 2277.79 943.763ZM2290.92 946V926.909H2293.85V946H2290.92ZM2292.41 923.727C2291.84 923.727 2291.34 923.533 2290.93 923.143C2290.52 922.754 2290.32 922.286 2290.32 921.739C2290.32 921.192 2290.52 920.724 2290.93 920.334C2291.34 919.945 2291.84 919.75 2292.41 919.75C2292.98 919.75 2293.47 919.945 2293.87 920.334C2294.29 920.724 2294.5 921.192 2294.5 921.739C2294.5 922.286 2294.29 922.754 2293.87 923.143C2293.47 923.533 2292.98 923.727 2292.41 923.727ZM2302.15 934.516V946H2299.22V926.909H2302.06V929.892H2302.3C2302.75 928.923 2303.43 928.144 2304.34 927.555C2305.25 926.959 2306.43 926.661 2307.87 926.661C2309.16 926.661 2310.3 926.926 2311.26 927.456C2312.23 927.978 2312.99 928.773 2313.53 929.842C2314.07 930.903 2314.33 932.245 2314.33 933.869V946H2311.4V934.068C2311.4 932.568 2311.01 931.4 2310.23 930.563C2309.45 929.718 2308.39 929.295 2307.03 929.295C2306.09 929.295 2305.25 929.498 2304.52 929.904C2303.79 930.31 2303.21 930.903 2302.79 931.682C2302.37 932.461 2302.15 933.405 2302.15 934.516ZM2328 926.909V929.395H2318.1V926.909H2328ZM2320.99 922.335H2323.92V940.531C2323.92 941.36 2324.04 941.981 2324.28 942.396C2324.53 942.802 2324.84 943.075 2325.23 943.216C2325.62 943.348 2326.03 943.415 2326.46 943.415C2326.78 943.415 2327.04 943.398 2327.25 943.365C2327.46 943.324 2327.62 943.29 2327.75 943.266L2328.35 945.901C2328.15 945.975 2327.87 946.05 2327.51 946.124C2327.16 946.207 2326.7 946.249 2326.16 946.249C2325.33 946.249 2324.52 946.07 2323.72 945.714C2322.93 945.358 2322.28 944.815 2321.76 944.086C2321.24 943.357 2320.99 942.437 2320.99 941.327V922.335ZM2345.59 931.185L2342.96 931.93C2342.79 931.491 2342.55 931.065 2342.22 930.65C2341.91 930.228 2341.48 929.88 2340.93 929.606C2340.38 929.333 2339.68 929.196 2338.83 929.196C2337.66 929.196 2336.69 929.465 2335.91 930.004C2335.14 930.534 2334.75 931.21 2334.75 932.03C2334.75 932.759 2335.02 933.335 2335.55 933.757C2336.08 934.18 2336.91 934.532 2338.03 934.814L2340.87 935.51C2342.57 935.924 2343.85 936.558 2344.68 937.412C2345.52 938.257 2345.94 939.346 2345.94 940.68C2345.94 941.774 2345.62 942.752 2344.99 943.614C2344.37 944.475 2343.5 945.155 2342.38 945.652C2341.27 946.149 2339.96 946.398 2338.48 946.398C2336.53 946.398 2334.92 945.975 2333.65 945.13C2332.37 944.285 2331.56 943.05 2331.22 941.426L2334.01 940.73C2334.27 941.758 2334.77 942.528 2335.51 943.042C2336.26 943.556 2337.23 943.812 2338.43 943.812C2339.8 943.812 2340.88 943.522 2341.69 942.942C2342.5 942.354 2342.91 941.65 2342.91 940.83C2342.91 940.167 2342.67 939.612 2342.21 939.164C2341.75 938.708 2341.03 938.369 2340.07 938.145L2336.89 937.399C2335.14 936.985 2333.86 936.343 2333.04 935.473C2332.23 934.594 2331.82 933.496 2331.82 932.179C2331.82 931.102 2332.12 930.149 2332.73 929.32C2333.34 928.492 2334.17 927.841 2335.22 927.369C2336.29 926.897 2337.49 926.661 2338.83 926.661C2340.72 926.661 2342.2 927.075 2343.28 927.903C2344.36 928.732 2345.13 929.826 2345.59 931.185ZM2360.2 946V926.909H2363.13V946H2360.2ZM2361.69 923.727C2361.12 923.727 2360.62 923.533 2360.21 923.143C2359.8 922.754 2359.6 922.286 2359.6 921.739C2359.6 921.192 2359.8 920.724 2360.21 920.334C2360.62 919.945 2361.12 919.75 2361.69 919.75C2362.26 919.75 2362.75 919.945 2363.16 920.334C2363.57 920.724 2363.78 921.192 2363.78 921.739C2363.78 922.286 2363.57 922.754 2363.16 923.143C2362.75 923.533 2362.26 923.727 2361.69 923.727ZM2371.44 934.516V946H2368.5V926.909H2371.34V929.892H2371.59C2372.03 928.923 2372.71 928.144 2373.62 927.555C2374.54 926.959 2375.71 926.661 2377.15 926.661C2378.45 926.661 2379.58 926.926 2380.55 927.456C2381.52 927.978 2382.27 928.773 2382.81 929.842C2383.35 930.903 2383.62 932.245 2383.62 933.869V946H2380.68V934.068C2380.68 932.568 2380.29 931.4 2379.52 930.563C2378.74 929.718 2377.67 929.295 2376.31 929.295C2375.37 929.295 2374.54 929.498 2373.8 929.904C2373.07 930.31 2372.49 930.903 2372.07 931.682C2371.65 932.461 2371.44 933.405 2371.44 934.516ZM2404.44 946.447C2403.23 946.447 2402.13 946.22 2401.15 945.764C2400.16 945.3 2399.38 944.633 2398.8 943.763C2398.22 942.884 2397.93 941.824 2397.93 940.581C2397.93 939.487 2398.14 938.601 2398.57 937.921C2399 937.233 2399.58 936.695 2400.3 936.305C2401.02 935.916 2401.82 935.626 2402.69 935.435C2403.56 935.237 2404.45 935.079 2405.33 934.963C2406.49 934.814 2407.43 934.702 2408.16 934.627C2408.88 934.545 2409.41 934.408 2409.75 934.217C2410.09 934.027 2410.26 933.695 2410.26 933.223V933.124C2410.26 931.897 2409.92 930.944 2409.25 930.265C2408.59 929.585 2407.58 929.246 2406.23 929.246C2404.83 929.246 2403.73 929.552 2402.93 930.165C2402.14 930.779 2401.58 931.433 2401.26 932.129L2398.47 931.135C2398.97 929.975 2399.63 929.072 2400.46 928.425C2401.3 927.771 2402.21 927.315 2403.2 927.058C2404.19 926.793 2405.17 926.661 2406.13 926.661C2406.74 926.661 2407.45 926.735 2408.24 926.884C2409.05 927.025 2409.82 927.319 2410.57 927.767C2411.32 928.214 2411.95 928.889 2412.44 929.793C2412.94 930.696 2413.19 931.906 2413.19 933.422V946H2410.26V943.415H2410.11C2409.91 943.829 2409.58 944.272 2409.11 944.745C2408.65 945.217 2408.03 945.619 2407.26 945.95C2406.49 946.282 2405.55 946.447 2404.44 946.447ZM2404.89 943.812C2406.05 943.812 2407.02 943.585 2407.82 943.129C2408.62 942.673 2409.23 942.085 2409.63 941.364C2410.05 940.643 2410.26 939.885 2410.26 939.089V936.405C2410.13 936.554 2409.86 936.691 2409.44 936.815C2409.02 936.931 2408.54 937.035 2407.99 937.126C2407.45 937.209 2406.93 937.283 2406.41 937.349C2405.91 937.407 2405.5 937.457 2405.18 937.499C2404.42 937.598 2403.71 937.76 2403.05 937.983C2402.39 938.199 2401.86 938.526 2401.46 938.965C2401.06 939.396 2400.86 939.984 2400.86 940.73C2400.86 941.749 2401.24 942.52 2401.99 943.042C2402.75 943.556 2403.72 943.812 2404.89 943.812ZM1992.77 988L1986.95 968.909H1990.03L1994.16 983.526H1994.36L1998.44 968.909H2001.57L2005.59 983.476H2005.79L2009.92 968.909H2013L2007.19 988H2004.3L2000.13 973.334H1999.83L1995.65 988H1992.77ZM2022.5 988.447C2021.29 988.447 2020.19 988.22 2019.2 987.764C2018.22 987.3 2017.44 986.633 2016.86 985.763C2016.28 984.884 2015.99 983.824 2015.99 982.581C2015.99 981.487 2016.2 980.601 2016.63 979.921C2017.06 979.233 2017.64 978.695 2018.36 978.305C2019.08 977.916 2019.88 977.626 2020.75 977.435C2021.62 977.237 2022.51 977.079 2023.39 976.963C2024.55 976.814 2025.49 976.702 2026.21 976.627C2026.94 976.545 2027.47 976.408 2027.81 976.217C2028.14 976.027 2028.31 975.695 2028.31 975.223V975.124C2028.31 973.897 2027.98 972.944 2027.31 972.265C2026.65 971.585 2025.64 971.246 2024.29 971.246C2022.89 971.246 2021.79 971.552 2020.99 972.165C2020.2 972.779 2019.64 973.433 2019.32 974.129L2016.53 973.135C2017.03 971.975 2017.69 971.072 2018.52 970.425C2019.36 969.771 2020.27 969.315 2021.25 969.058C2022.25 968.793 2023.23 968.661 2024.19 968.661C2024.8 968.661 2025.51 968.735 2026.3 968.884C2027.1 969.025 2027.88 969.319 2028.63 969.767C2029.38 970.214 2030 970.889 2030.5 971.793C2031 972.696 2031.25 973.906 2031.25 975.422V988H2028.31V985.415H2028.17C2027.97 985.829 2027.64 986.272 2027.17 986.745C2026.71 987.217 2026.09 987.619 2025.32 987.95C2024.55 988.282 2023.61 988.447 2022.5 988.447ZM2022.95 985.812C2024.11 985.812 2025.08 985.585 2025.88 985.129C2026.68 984.673 2027.29 984.085 2027.69 983.364C2028.11 982.643 2028.31 981.885 2028.31 981.089V978.405C2028.19 978.554 2027.92 978.691 2027.49 978.815C2027.08 978.931 2026.6 979.035 2026.05 979.126C2025.51 979.209 2024.99 979.283 2024.47 979.349C2023.97 979.407 2023.56 979.457 2023.24 979.499C2022.48 979.598 2021.77 979.76 2021.11 979.983C2020.45 980.199 2019.92 980.526 2019.51 980.965C2019.12 981.396 2018.92 981.984 2018.92 982.73C2018.92 983.749 2019.3 984.52 2020.05 985.042C2020.81 985.556 2021.78 985.812 2022.95 985.812ZM2037.81 995.159C2037.31 995.159 2036.87 995.118 2036.48 995.035C2036.09 994.96 2035.82 994.886 2035.67 994.811L2036.42 992.226C2037.13 992.408 2037.76 992.474 2038.3 992.425C2038.85 992.375 2039.34 992.131 2039.76 991.691C2040.19 991.261 2040.58 990.56 2040.94 989.591L2041.49 988.099L2034.43 968.909H2037.61L2042.88 984.122H2043.08L2048.35 968.909H2051.53L2043.43 990.784C2043.06 991.77 2042.61 992.586 2042.07 993.233C2041.53 993.887 2040.91 994.372 2040.19 994.687C2039.49 995.002 2038.69 995.159 2037.81 995.159ZM2068.18 976.516V988H2065.24V968.909H2068.08V971.892H2068.33C2068.77 970.923 2069.45 970.144 2070.36 969.555C2071.28 968.959 2072.45 968.661 2073.89 968.661C2075.19 968.661 2076.32 968.926 2077.29 969.456C2078.26 969.978 2079.01 970.773 2079.55 971.842C2080.09 972.903 2080.36 974.245 2080.36 975.869V988H2077.42V976.068C2077.42 974.568 2077.04 973.4 2076.26 972.563C2075.48 971.718 2074.41 971.295 2073.05 971.295C2072.11 971.295 2071.28 971.498 2070.54 971.904C2069.81 972.31 2069.23 972.903 2068.81 973.682C2068.39 974.461 2068.18 975.405 2068.18 976.516ZM2093.47 988.398C2091.75 988.398 2090.24 987.988 2088.94 987.167C2087.64 986.347 2086.63 985.199 2085.9 983.724C2085.18 982.25 2084.82 980.526 2084.82 978.554C2084.82 976.565 2085.18 974.829 2085.9 973.346C2086.63 971.863 2087.64 970.711 2088.94 969.891C2090.24 969.071 2091.75 968.661 2093.47 968.661C2095.2 968.661 2096.71 969.071 2098 969.891C2099.3 970.711 2100.31 971.863 2101.03 973.346C2101.76 974.829 2102.12 976.565 2102.12 978.554C2102.12 980.526 2101.76 982.25 2101.03 983.724C2100.31 985.199 2099.3 986.347 2098 987.167C2096.71 987.988 2095.2 988.398 2093.47 988.398ZM2093.47 985.763C2094.78 985.763 2095.86 985.427 2096.71 984.756C2097.55 984.085 2098.18 983.202 2098.58 982.109C2098.99 981.015 2099.19 979.83 2099.19 978.554C2099.19 977.278 2098.99 976.089 2098.58 974.987C2098.18 973.885 2097.55 972.994 2096.71 972.315C2095.86 971.635 2094.78 971.295 2093.47 971.295C2092.16 971.295 2091.09 971.635 2090.24 972.315C2089.4 972.994 2088.77 973.885 2088.37 974.987C2087.96 976.089 2087.76 977.278 2087.76 978.554C2087.76 979.83 2087.96 981.015 2088.37 982.109C2088.77 983.202 2089.4 984.085 2090.24 984.756C2091.09 985.427 2092.16 985.763 2093.47 985.763ZM2124.2 988.398C2122.41 988.398 2120.87 987.975 2119.58 987.13C2118.28 986.285 2117.29 985.121 2116.59 983.637C2115.9 982.154 2115.55 980.46 2115.55 978.554C2115.55 976.615 2115.91 974.904 2116.62 973.421C2117.34 971.929 2118.34 970.765 2119.63 969.928C2120.92 969.083 2122.43 968.661 2124.15 968.661C2125.49 968.661 2126.7 968.909 2127.78 969.406C2128.86 969.903 2129.74 970.599 2130.43 971.494C2131.12 972.389 2131.54 973.433 2131.71 974.626H2128.77C2128.55 973.756 2128.05 972.986 2127.28 972.315C2126.52 971.635 2125.49 971.295 2124.2 971.295C2123.06 971.295 2122.06 971.594 2121.19 972.19C2120.34 972.779 2119.67 973.611 2119.19 974.689C2118.72 975.757 2118.48 977.013 2118.48 978.455C2118.48 979.929 2118.72 981.214 2119.18 982.308C2119.65 983.401 2120.31 984.251 2121.17 984.855C2122.03 985.46 2123.04 985.763 2124.2 985.763C2124.96 985.763 2125.66 985.63 2126.28 985.365C2126.9 985.1 2127.42 984.719 2127.86 984.222C2128.29 983.724 2128.59 983.128 2128.77 982.432H2131.71C2131.54 983.559 2131.13 984.574 2130.48 985.477C2129.83 986.372 2128.97 987.084 2127.9 987.615C2126.84 988.137 2125.61 988.398 2124.2 988.398ZM2143.75 988.398C2142.03 988.398 2140.52 987.988 2139.22 987.167C2137.92 986.347 2136.91 985.199 2136.18 983.724C2135.46 982.25 2135.1 980.526 2135.1 978.554C2135.1 976.565 2135.46 974.829 2136.18 973.346C2136.91 971.863 2137.92 970.711 2139.22 969.891C2140.52 969.071 2142.03 968.661 2143.75 968.661C2145.48 968.661 2146.98 969.071 2148.28 969.891C2149.58 970.711 2150.59 971.863 2151.31 973.346C2152.04 974.829 2152.4 976.565 2152.4 978.554C2152.4 980.526 2152.04 982.25 2151.31 983.724C2150.59 985.199 2149.58 986.347 2148.28 987.167C2146.98 987.988 2145.48 988.398 2143.75 988.398ZM2143.75 985.763C2145.06 985.763 2146.14 985.427 2146.98 984.756C2147.83 984.085 2148.45 983.202 2148.86 982.109C2149.27 981.015 2149.47 979.83 2149.47 978.554C2149.47 977.278 2149.27 976.089 2148.86 974.987C2148.45 973.885 2147.83 972.994 2146.98 972.315C2146.14 971.635 2145.06 971.295 2143.75 971.295C2142.44 971.295 2141.37 971.635 2140.52 972.315C2139.68 972.994 2139.05 973.885 2138.64 974.987C2138.24 976.089 2138.03 977.278 2138.03 978.554C2138.03 979.83 2138.24 981.015 2138.64 982.109C2139.05 983.202 2139.68 984.085 2140.52 984.756C2141.37 985.427 2142.44 985.763 2143.75 985.763ZM2156.88 988V968.909H2159.71V971.892H2159.96C2160.36 970.873 2161 970.082 2161.89 969.518C2162.78 968.946 2163.84 968.661 2165.08 968.661C2166.34 968.661 2167.39 968.946 2168.23 969.518C2169.07 970.082 2169.73 970.873 2170.2 971.892H2170.4C2170.89 970.906 2171.62 970.123 2172.6 969.543C2173.58 968.955 2174.75 968.661 2176.12 968.661C2177.83 968.661 2179.22 969.195 2180.31 970.264C2181.39 971.324 2181.94 972.978 2181.94 975.223V988H2179V975.223C2179 973.814 2178.62 972.808 2177.85 972.203C2177.08 971.598 2176.17 971.295 2175.13 971.295C2173.78 971.295 2172.74 971.701 2172.01 972.513C2171.27 973.317 2170.9 974.336 2170.9 975.571V988H2167.92V974.925C2167.92 973.839 2167.56 972.965 2166.86 972.302C2166.16 971.631 2165.25 971.295 2164.14 971.295C2163.38 971.295 2162.66 971.498 2162 971.904C2161.35 972.31 2160.82 972.874 2160.41 973.595C2160.01 974.307 2159.81 975.132 2159.81 976.068V988H2156.88ZM2187.3 995.159V968.909H2190.13V971.942H2190.48C2190.7 971.61 2191 971.188 2191.38 970.674C2191.77 970.152 2192.32 969.688 2193.04 969.282C2193.77 968.868 2194.76 968.661 2196 968.661C2197.61 968.661 2199.02 969.062 2200.25 969.866C2201.48 970.67 2202.43 971.809 2203.12 973.284C2203.81 974.759 2204.15 976.499 2204.15 978.504C2204.15 980.526 2203.81 982.279 2203.12 983.762C2202.43 985.237 2201.48 986.38 2200.26 987.192C2199.05 987.996 2197.64 988.398 2196.05 988.398C2194.82 988.398 2193.84 988.195 2193.1 987.789C2192.37 987.374 2191.8 986.906 2191.4 986.384C2191 985.854 2190.7 985.415 2190.48 985.067H2190.23V995.159H2187.3ZM2190.18 978.455C2190.18 979.896 2190.39 981.168 2190.82 982.27C2191.24 983.364 2191.86 984.222 2192.67 984.843C2193.48 985.456 2194.48 985.763 2195.65 985.763C2196.88 985.763 2197.9 985.44 2198.72 984.793C2199.55 984.139 2200.17 983.26 2200.59 982.158C2201.01 981.048 2201.22 979.813 2201.22 978.455C2201.22 977.112 2201.01 975.902 2200.6 974.825C2200.19 973.74 2199.58 972.882 2198.75 972.252C2197.93 971.614 2196.9 971.295 2195.65 971.295C2194.46 971.295 2193.46 971.598 2192.64 972.203C2191.83 972.799 2191.22 973.636 2190.8 974.713C2190.39 975.782 2190.18 977.029 2190.18 978.455ZM2216.63 988.398C2214.79 988.398 2213.21 987.992 2211.87 987.18C2210.55 986.359 2209.52 985.216 2208.8 983.749C2208.09 982.274 2207.73 980.559 2207.73 978.604C2207.73 976.648 2208.09 974.925 2208.8 973.433C2209.52 971.933 2210.53 970.765 2211.81 969.928C2213.1 969.083 2214.61 968.661 2216.33 968.661C2217.33 968.661 2218.31 968.826 2219.28 969.158C2220.25 969.489 2221.13 970.028 2221.93 970.773C2222.72 971.511 2223.36 972.489 2223.83 973.707C2224.3 974.925 2224.54 976.424 2224.54 978.206V979.449H2209.82V976.913H2221.55C2221.55 975.836 2221.34 974.875 2220.91 974.03C2220.49 973.185 2219.88 972.518 2219.09 972.029C2218.31 971.54 2217.39 971.295 2216.33 971.295C2215.17 971.295 2214.15 971.585 2213.3 972.165C2212.46 972.737 2211.81 973.483 2211.35 974.403C2210.89 975.322 2210.67 976.308 2210.67 977.361V979.051C2210.67 980.493 2210.91 981.715 2211.41 982.718C2211.92 983.712 2212.62 984.47 2213.51 984.992C2214.41 985.506 2215.45 985.763 2216.63 985.763C2217.4 985.763 2218.1 985.655 2218.72 985.44C2219.35 985.216 2219.89 984.884 2220.35 984.445C2220.8 983.998 2221.16 983.443 2221.41 982.78L2224.24 983.575C2223.94 984.536 2223.44 985.382 2222.73 986.111C2222.03 986.832 2221.16 987.395 2220.12 987.801C2219.09 988.199 2217.92 988.398 2216.63 988.398ZM2237.3 968.909V971.395H2227.41V968.909H2237.3ZM2230.29 964.335H2233.22V982.531C2233.22 983.36 2233.35 983.981 2233.59 984.396C2233.83 984.802 2234.15 985.075 2234.53 985.216C2234.92 985.348 2235.33 985.415 2235.76 985.415C2236.08 985.415 2236.35 985.398 2236.56 985.365C2236.76 985.324 2236.93 985.29 2237.05 985.266L2237.65 987.901C2237.45 987.975 2237.17 988.05 2236.82 988.124C2236.46 988.207 2236.01 988.249 2235.46 988.249C2234.63 988.249 2233.82 988.07 2233.03 987.714C2232.24 987.358 2231.58 986.815 2231.06 986.086C2230.55 985.357 2230.29 984.437 2230.29 983.327V964.335ZM2241.71 988V968.909H2244.65V988H2241.71ZM2243.21 965.727C2242.63 965.727 2242.14 965.533 2241.73 965.143C2241.32 964.754 2241.12 964.286 2241.12 963.739C2241.12 963.192 2241.32 962.724 2241.73 962.334C2242.14 961.945 2242.63 961.75 2243.21 961.75C2243.78 961.75 2244.27 961.945 2244.67 962.334C2245.09 962.724 2245.29 963.192 2245.29 963.739C2245.29 964.286 2245.09 964.754 2244.67 965.143C2244.27 965.533 2243.78 965.727 2243.21 965.727ZM2258.32 968.909V971.395H2248.43V968.909H2258.32ZM2251.31 964.335H2254.25V982.531C2254.25 983.36 2254.37 983.981 2254.61 984.396C2254.85 984.802 2255.17 985.075 2255.55 985.216C2255.94 985.348 2256.35 985.415 2256.78 985.415C2257.1 985.415 2257.37 985.398 2257.58 985.365C2257.78 985.324 2257.95 985.29 2258.07 985.266L2258.67 987.901C2258.47 987.975 2258.19 988.05 2257.84 988.124C2257.48 988.207 2257.03 988.249 2256.48 988.249C2255.65 988.249 2254.84 988.07 2254.05 987.714C2253.26 987.358 2252.6 986.815 2252.08 986.086C2251.57 985.357 2251.31 984.437 2251.31 983.327V964.335ZM2270.29 988.398C2268.56 988.398 2267.05 987.988 2265.75 987.167C2264.46 986.347 2263.44 985.199 2262.72 983.724C2261.99 982.25 2261.63 980.526 2261.63 978.554C2261.63 976.565 2261.99 974.829 2262.72 973.346C2263.44 971.863 2264.46 970.711 2265.75 969.891C2267.05 969.071 2268.56 968.661 2270.29 968.661C2272.01 968.661 2273.52 969.071 2274.81 969.891C2276.11 970.711 2277.12 971.863 2277.84 973.346C2278.57 974.829 2278.94 976.565 2278.94 978.554C2278.94 980.526 2278.57 982.25 2277.84 983.724C2277.12 985.199 2276.11 986.347 2274.81 987.167C2273.52 987.988 2272.01 988.398 2270.29 988.398ZM2270.29 985.763C2271.59 985.763 2272.67 985.427 2273.52 984.756C2274.36 984.085 2274.99 983.202 2275.39 982.109C2275.8 981.015 2276 979.83 2276 978.554C2276 977.278 2275.8 976.089 2275.39 974.987C2274.99 973.885 2274.36 972.994 2273.52 972.315C2272.67 971.635 2271.59 971.295 2270.29 971.295C2268.98 971.295 2267.9 971.635 2267.05 972.315C2266.21 972.994 2265.58 973.885 2265.18 974.987C2264.77 976.089 2264.57 977.278 2264.57 978.554C2264.57 979.83 2264.77 981.015 2265.18 982.109C2265.58 983.202 2266.21 984.085 2267.05 984.756C2267.9 985.427 2268.98 985.763 2270.29 985.763ZM2283.41 988V968.909H2286.25V971.793H2286.45C2286.79 970.848 2287.42 970.082 2288.34 969.493C2289.25 968.905 2290.27 968.611 2291.42 968.611C2291.63 968.611 2291.9 968.615 2292.23 968.623C2292.55 968.632 2292.79 968.644 2292.96 968.661V971.643C2292.86 971.619 2292.63 971.581 2292.28 971.532C2291.93 971.474 2291.56 971.445 2291.17 971.445C2290.24 971.445 2289.41 971.639 2288.68 972.029C2287.96 972.41 2287.39 972.94 2286.97 973.62C2286.55 974.291 2286.35 975.057 2286.35 975.919V988H2283.41ZM2309.96 973.185L2307.32 973.93C2307.16 973.491 2306.91 973.065 2306.59 972.65C2306.28 972.228 2305.84 971.88 2305.3 971.606C2304.75 971.333 2304.05 971.196 2303.2 971.196C2302.03 971.196 2301.06 971.465 2300.28 972.004C2299.51 972.534 2299.12 973.21 2299.12 974.03C2299.12 974.759 2299.39 975.335 2299.92 975.757C2300.45 976.18 2301.27 976.532 2302.4 976.814L2305.24 977.51C2306.94 977.924 2308.21 978.558 2309.05 979.412C2309.89 980.257 2310.31 981.346 2310.31 982.68C2310.31 983.774 2309.99 984.752 2309.36 985.614C2308.74 986.475 2307.87 987.155 2306.75 987.652C2305.63 988.149 2304.33 988.398 2302.85 988.398C2300.9 988.398 2299.29 987.975 2298.01 987.13C2296.74 986.285 2295.93 985.05 2295.59 983.426L2298.37 982.73C2298.64 983.758 2299.14 984.528 2299.88 985.042C2300.62 985.556 2301.6 985.812 2302.8 985.812C2304.17 985.812 2305.25 985.522 2306.06 984.942C2306.87 984.354 2307.27 983.65 2307.27 982.83C2307.27 982.167 2307.04 981.612 2306.58 981.164C2306.11 980.708 2305.4 980.369 2304.44 980.145L2301.26 979.399C2299.51 978.985 2298.23 978.343 2297.41 977.473C2296.59 976.594 2296.19 975.496 2296.19 974.179C2296.19 973.102 2296.49 972.149 2297.09 971.32C2297.71 970.492 2298.54 969.841 2299.59 969.369C2300.65 968.897 2301.85 968.661 2303.2 968.661C2305.09 968.661 2306.57 969.075 2307.65 969.903C2308.73 970.732 2309.5 971.826 2309.96 973.185ZM2331.77 988.398C2330.18 988.398 2328.78 987.996 2327.56 987.192C2326.34 986.38 2325.39 985.237 2324.7 983.762C2324.01 982.279 2323.67 980.526 2323.67 978.504C2323.67 976.499 2324.01 974.759 2324.7 973.284C2325.39 971.809 2326.35 970.67 2327.57 969.866C2328.8 969.062 2330.22 968.661 2331.82 968.661C2333.07 968.661 2334.05 968.868 2334.77 969.282C2335.5 969.688 2336.05 970.152 2336.44 970.674C2336.82 971.188 2337.13 971.61 2337.34 971.942H2337.59V962.545H2340.52V988H2337.69V985.067H2337.34C2337.13 985.415 2336.82 985.854 2336.42 986.384C2336.03 986.906 2335.46 987.374 2334.72 987.789C2333.98 988.195 2333 988.398 2331.77 988.398ZM2332.17 985.763C2333.35 985.763 2334.34 985.456 2335.16 984.843C2335.97 984.222 2336.58 983.364 2337.01 982.27C2337.43 981.168 2337.64 979.896 2337.64 978.455C2337.64 977.029 2337.43 975.782 2337.02 974.713C2336.61 973.636 2335.99 972.799 2335.18 972.203C2334.37 971.598 2333.37 971.295 2332.17 971.295C2330.93 971.295 2329.89 971.614 2329.06 972.252C2328.24 972.882 2327.63 973.74 2327.21 974.825C2326.81 975.902 2326.6 977.112 2326.6 978.455C2326.6 979.813 2326.81 981.048 2327.23 982.158C2327.65 983.26 2328.27 984.139 2329.09 984.793C2329.92 985.44 2330.95 985.763 2332.17 985.763ZM2354.06 988.398C2352.34 988.398 2350.82 987.988 2349.52 987.167C2348.23 986.347 2347.22 985.199 2346.49 983.724C2345.77 982.25 2345.41 980.526 2345.41 978.554C2345.41 976.565 2345.77 974.829 2346.49 973.346C2347.22 971.863 2348.23 970.711 2349.52 969.891C2350.82 969.071 2352.34 968.661 2354.06 968.661C2355.78 968.661 2357.29 969.071 2358.58 969.891C2359.88 970.711 2360.9 971.863 2361.62 973.346C2362.35 974.829 2362.71 976.565 2362.71 978.554C2362.71 980.526 2362.35 982.25 2361.62 983.724C2360.9 985.199 2359.88 986.347 2358.58 987.167C2357.29 987.988 2355.78 988.398 2354.06 988.398ZM2354.06 985.763C2355.37 985.763 2356.45 985.427 2357.29 984.756C2358.14 984.085 2358.76 983.202 2359.17 982.109C2359.57 981.015 2359.78 979.83 2359.78 978.554C2359.78 977.278 2359.57 976.089 2359.17 974.987C2358.76 973.885 2358.14 972.994 2357.29 972.315C2356.45 971.635 2355.37 971.295 2354.06 971.295C2352.75 971.295 2351.67 971.635 2350.83 972.315C2349.98 972.994 2349.36 973.885 2348.95 974.987C2348.55 976.089 2348.34 977.278 2348.34 978.554C2348.34 979.83 2348.55 981.015 2348.95 982.109C2349.36 983.202 2349.98 984.085 2350.83 984.756C2351.67 985.427 2352.75 985.763 2354.06 985.763ZM2371.02 980.841V980.692C2371.03 979.109 2371.2 977.85 2371.51 976.913C2371.83 975.977 2372.28 975.219 2372.86 974.639C2373.44 974.059 2374.13 973.524 2374.94 973.036C2375.43 972.737 2375.87 972.385 2376.26 971.979C2376.65 971.565 2376.96 971.088 2377.18 970.55C2377.41 970.011 2377.53 969.415 2377.53 968.76C2377.53 967.948 2377.34 967.244 2376.96 966.647C2376.58 966.05 2376.07 965.591 2375.43 965.267C2374.79 964.944 2374.08 964.783 2373.3 964.783C2372.62 964.783 2371.97 964.924 2371.34 965.205C2370.71 965.487 2370.18 965.93 2369.76 966.535C2369.34 967.14 2369.09 967.931 2369.03 968.909H2365.89C2365.96 967.5 2366.33 966.295 2366.99 965.292C2367.66 964.29 2368.54 963.523 2369.64 962.993C2370.74 962.463 2371.96 962.197 2373.3 962.197C2374.76 962.197 2376.03 962.487 2377.11 963.067C2378.19 963.647 2379.03 964.443 2379.62 965.454C2380.21 966.465 2380.51 967.616 2380.51 968.909C2380.51 969.821 2380.37 970.645 2380.09 971.382C2379.82 972.12 2379.42 972.779 2378.9 973.359C2378.38 973.939 2377.76 974.452 2377.03 974.9C2376.3 975.356 2375.72 975.836 2375.28 976.342C2374.84 976.839 2374.52 977.431 2374.32 978.119C2374.12 978.807 2374.02 979.664 2374 980.692V980.841H2371.02ZM2372.61 988.199C2371.99 988.199 2371.47 987.979 2371.03 987.54C2370.59 987.101 2370.37 986.575 2370.37 985.962C2370.37 985.348 2370.59 984.822 2371.03 984.383C2371.47 983.944 2371.99 983.724 2372.61 983.724C2373.22 983.724 2373.75 983.944 2374.19 984.383C2374.62 984.822 2374.84 985.348 2374.84 985.962C2374.84 986.368 2374.74 986.741 2374.53 987.08C2374.33 987.42 2374.06 987.693 2373.73 987.901C2373.39 988.099 2373.02 988.199 2372.61 988.199Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"CustomerUnmetNeed\">\r\n <rect id=\"Rectangle 8\" x=\"221\" y=\"312\" width=\"572\" height=\"333\" rx=\"50\" fill=\"#396F9D\" />\r\n <path\r\n d=\"M312.688 359.5H309.077C308.864 358.461 308.49 357.549 307.956 356.763C307.432 355.977 306.791 355.317 306.034 354.783C305.287 354.239 304.457 353.831 303.545 353.56C302.632 353.288 301.681 353.152 300.691 353.152C298.886 353.152 297.25 353.608 295.784 354.521C294.328 355.433 293.168 356.777 292.305 358.554C291.45 360.33 291.023 362.509 291.023 365.091C291.023 367.673 291.45 369.852 292.305 371.628C293.168 373.404 294.328 374.749 295.784 375.661C297.25 376.574 298.886 377.03 300.691 377.03C301.681 377.03 302.632 376.894 303.545 376.622C304.457 376.35 305.287 375.948 306.034 375.414C306.791 374.87 307.432 374.205 307.956 373.419C308.49 372.623 308.864 371.711 309.077 370.682H312.688C312.416 372.206 311.921 373.569 311.203 374.773C310.485 375.977 309.592 377.001 308.524 377.845C307.456 378.68 306.258 379.316 304.928 379.752C303.608 380.189 302.195 380.408 300.691 380.408C298.148 380.408 295.886 379.786 293.906 378.544C291.926 377.302 290.368 375.535 289.233 373.244C288.097 370.954 287.529 368.236 287.529 365.091C287.529 361.946 288.097 359.228 289.233 356.938C290.368 354.647 291.926 352.88 293.906 351.638C295.886 350.395 298.148 349.774 300.691 349.774C302.195 349.774 303.608 349.993 304.928 350.429C306.258 350.866 307.456 351.507 308.524 352.351C309.592 353.186 310.485 354.205 311.203 355.409C311.921 356.603 312.416 357.966 312.688 359.5ZM332.151 370.857V357.636H335.587V380H332.151V376.214H331.918C331.394 377.35 330.578 378.316 329.472 379.112C328.365 379.898 326.968 380.291 325.279 380.291C323.881 380.291 322.638 379.985 321.551 379.374C320.464 378.753 319.61 377.821 318.989 376.578C318.368 375.326 318.057 373.749 318.057 371.847V357.636H321.493V371.614C321.493 373.244 321.949 374.545 322.862 375.516C323.784 376.486 324.958 376.972 326.385 376.972C327.239 376.972 328.108 376.753 328.991 376.316C329.884 375.88 330.632 375.21 331.233 374.307C331.845 373.404 332.151 372.254 332.151 370.857ZM357.721 362.645L354.634 363.518C354.44 363.004 354.154 362.504 353.775 362.019C353.407 361.524 352.902 361.116 352.261 360.796C351.621 360.475 350.8 360.315 349.801 360.315C348.432 360.315 347.292 360.631 346.379 361.262C345.476 361.883 345.025 362.674 345.025 363.635C345.025 364.489 345.336 365.164 345.957 365.659C346.578 366.154 347.549 366.566 348.869 366.896L352.188 367.712C354.188 368.197 355.678 368.94 356.658 369.939C357.639 370.929 358.129 372.206 358.129 373.768C358.129 375.05 357.76 376.195 357.022 377.205C356.294 378.214 355.275 379.01 353.965 379.592C352.654 380.175 351.13 380.466 349.393 380.466C347.112 380.466 345.224 379.971 343.729 378.981C342.235 377.991 341.288 376.545 340.89 374.642L344.152 373.827C344.462 375.03 345.049 375.933 345.913 376.535C346.787 377.137 347.927 377.438 349.335 377.438C350.936 377.438 352.208 377.098 353.149 376.418C354.101 375.729 354.576 374.904 354.576 373.943C354.576 373.167 354.304 372.516 353.761 371.992C353.217 371.458 352.383 371.06 351.257 370.798L347.529 369.925C345.481 369.439 343.977 368.687 343.016 367.668C342.065 366.639 341.589 365.353 341.589 363.81C341.589 362.548 341.943 361.432 342.652 360.461C343.37 359.49 344.346 358.728 345.578 358.175C346.821 357.622 348.228 357.345 349.801 357.345C352.014 357.345 353.751 357.83 355.013 358.801C356.285 359.772 357.187 361.053 357.721 362.645ZM373.027 357.636V360.548H361.438V357.636H373.027ZM364.815 352.278H368.251V373.594C368.251 374.564 368.392 375.292 368.674 375.778C368.965 376.253 369.334 376.574 369.78 376.739C370.236 376.894 370.717 376.972 371.222 376.972C371.6 376.972 371.911 376.952 372.153 376.913C372.396 376.865 372.59 376.826 372.736 376.797L373.435 379.884C373.202 379.971 372.877 380.058 372.459 380.146C372.042 380.243 371.513 380.291 370.872 380.291C369.902 380.291 368.95 380.083 368.018 379.665C367.096 379.248 366.33 378.612 365.718 377.758C365.116 376.904 364.815 375.826 364.815 374.526V352.278ZM387.041 380.466C385.022 380.466 383.25 379.985 381.726 379.025C380.212 378.064 379.028 376.719 378.174 374.991C377.329 373.264 376.907 371.245 376.907 368.935C376.907 366.605 377.329 364.572 378.174 362.834C379.028 361.097 380.212 359.748 381.726 358.787C383.25 357.826 385.022 357.345 387.041 357.345C389.06 357.345 390.826 357.826 392.34 358.787C393.864 359.748 395.048 361.097 395.893 362.834C396.747 364.572 397.174 366.605 397.174 368.935C397.174 371.245 396.747 373.264 395.893 374.991C395.048 376.719 393.864 378.064 392.34 379.025C390.826 379.985 389.06 380.466 387.041 380.466ZM387.041 377.379C388.574 377.379 389.836 376.986 390.826 376.2C391.816 375.414 392.549 374.38 393.025 373.099C393.5 371.817 393.738 370.429 393.738 368.935C393.738 367.44 393.5 366.047 393.025 364.756C392.549 363.465 391.816 362.422 390.826 361.626C389.836 360.83 388.574 360.432 387.041 360.432C385.507 360.432 384.245 360.83 383.255 361.626C382.265 362.422 381.532 363.465 381.057 364.756C380.581 366.047 380.343 367.44 380.343 368.935C380.343 370.429 380.581 371.817 381.057 373.099C381.532 374.38 382.265 375.414 383.255 376.2C384.245 376.986 385.507 377.379 387.041 377.379ZM402.419 380V357.636H405.739V361.131H406.03C406.496 359.937 407.248 359.01 408.287 358.35C409.325 357.68 410.573 357.345 412.029 357.345C413.504 357.345 414.732 357.68 415.712 358.35C416.702 359.01 417.474 359.937 418.027 361.131H418.26C418.833 359.976 419.692 359.058 420.837 358.379C421.983 357.69 423.356 357.345 424.958 357.345C426.957 357.345 428.593 357.971 429.864 359.223C431.136 360.466 431.772 362.402 431.772 365.033V380H428.335V365.033C428.335 363.383 427.884 362.203 426.981 361.495C426.079 360.786 425.016 360.432 423.793 360.432C422.22 360.432 421.002 360.907 420.138 361.859C419.275 362.8 418.843 363.994 418.843 365.44V380H415.348V364.683C415.348 363.412 414.936 362.388 414.111 361.611C413.286 360.825 412.223 360.432 410.922 360.432C410.029 360.432 409.194 360.67 408.418 361.145C407.651 361.621 407.03 362.281 406.554 363.125C406.088 363.96 405.855 364.926 405.855 366.023V380H402.419ZM447.43 380.466C445.276 380.466 443.417 379.99 441.854 379.039C440.301 378.078 439.102 376.739 438.258 375.021C437.423 373.293 437.006 371.284 437.006 368.993C437.006 366.702 437.423 364.683 438.258 362.936C439.102 361.179 440.277 359.811 441.781 358.83C443.296 357.84 445.062 357.345 447.081 357.345C448.246 357.345 449.396 357.539 450.532 357.928C451.667 358.316 452.701 358.947 453.633 359.82C454.565 360.684 455.307 361.83 455.861 363.256C456.414 364.683 456.69 366.44 456.69 368.527V369.983H439.452V367.013H453.196C453.196 365.751 452.944 364.625 452.439 363.635C451.944 362.645 451.235 361.864 450.313 361.291C449.401 360.718 448.323 360.432 447.081 360.432C445.712 360.432 444.528 360.772 443.528 361.451C442.538 362.121 441.776 362.994 441.243 364.072C440.709 365.149 440.442 366.304 440.442 367.537V369.517C440.442 371.206 440.733 372.638 441.315 373.812C441.908 374.977 442.728 375.865 443.776 376.477C444.824 377.078 446.042 377.379 447.43 377.379C448.333 377.379 449.149 377.253 449.877 377.001C450.614 376.739 451.25 376.35 451.784 375.836C452.318 375.312 452.73 374.661 453.021 373.885L456.341 374.817C455.992 375.943 455.404 376.933 454.579 377.787C453.754 378.631 452.735 379.291 451.522 379.767C450.308 380.233 448.945 380.466 447.43 380.466ZM461.917 380V357.636H465.237V361.014H465.47C465.878 359.908 466.615 359.01 467.683 358.321C468.751 357.632 469.954 357.287 471.294 357.287C471.546 357.287 471.862 357.292 472.24 357.301C472.619 357.311 472.905 357.326 473.099 357.345V360.839C472.983 360.81 472.716 360.767 472.298 360.708C471.891 360.641 471.459 360.607 471.003 360.607C469.915 360.607 468.945 360.835 468.091 361.291C467.246 361.737 466.576 362.359 466.081 363.154C465.596 363.941 465.353 364.839 465.353 365.848V380H461.917ZM508.738 350.182H512.348V369.925C512.348 371.963 511.868 373.783 510.907 375.385C509.956 376.976 508.611 378.233 506.874 379.156C505.136 380.068 503.098 380.524 500.759 380.524C498.42 380.524 496.381 380.068 494.644 379.156C492.906 378.233 491.557 376.976 490.596 375.385C489.645 373.783 489.169 371.963 489.169 369.925V350.182H492.78V369.634C492.78 371.089 493.1 372.385 493.741 373.521C494.382 374.647 495.294 375.535 496.478 376.185C497.672 376.826 499.099 377.146 500.759 377.146C502.419 377.146 503.846 376.826 505.039 376.185C506.233 375.535 507.146 374.647 507.777 373.521C508.417 372.385 508.738 371.089 508.738 369.634V350.182ZM522.529 366.547V380H519.093V357.636H522.413V361.131H522.704C523.228 359.995 524.024 359.083 525.092 358.393C526.159 357.695 527.538 357.345 529.227 357.345C530.741 357.345 532.066 357.656 533.201 358.277C534.337 358.888 535.22 359.82 535.851 361.072C536.482 362.315 536.798 363.887 536.798 365.79V380H533.362V366.023C533.362 364.266 532.905 362.897 531.993 361.917C531.081 360.927 529.828 360.432 528.237 360.432C527.14 360.432 526.159 360.67 525.296 361.145C524.441 361.621 523.767 362.315 523.272 363.227C522.777 364.14 522.529 365.246 522.529 366.547ZM543.077 380V357.636H546.396V361.131H546.687C547.153 359.937 547.905 359.01 548.944 358.35C549.983 357.68 551.23 357.345 552.686 357.345C554.161 357.345 555.389 357.68 556.369 358.35C557.36 359.01 558.131 359.937 558.684 361.131H558.917C559.49 359.976 560.349 359.058 561.494 358.379C562.64 357.69 564.013 357.345 565.615 357.345C567.614 357.345 569.25 357.971 570.521 359.223C571.793 360.466 572.429 362.402 572.429 365.033V380H568.993V365.033C568.993 363.383 568.541 362.203 567.639 361.495C566.736 360.786 565.673 360.432 564.45 360.432C562.878 360.432 561.66 360.907 560.796 361.859C559.932 362.8 559.5 363.994 559.5 365.44V380H556.006V364.683C556.006 363.412 555.593 362.388 554.768 361.611C553.943 360.825 552.88 360.432 551.579 360.432C550.686 360.432 549.852 360.67 549.075 361.145C548.308 361.621 547.687 362.281 547.211 363.125C546.746 363.96 546.513 364.926 546.513 366.023V380H543.077ZM588.088 380.466C585.933 380.466 584.074 379.99 582.511 379.039C580.958 378.078 579.76 376.739 578.915 375.021C578.08 373.293 577.663 371.284 577.663 368.993C577.663 366.702 578.08 364.683 578.915 362.936C579.76 361.179 580.934 359.811 582.439 358.83C583.953 357.84 585.719 357.345 587.738 357.345C588.903 357.345 590.053 357.539 591.189 357.928C592.325 358.316 593.358 358.947 594.29 359.82C595.222 360.684 595.964 361.83 596.518 363.256C597.071 364.683 597.348 366.44 597.348 368.527V369.983H580.109V367.013H593.853C593.853 365.751 593.601 364.625 593.096 363.635C592.601 362.645 591.893 361.864 590.971 361.291C590.058 360.718 588.981 360.432 587.738 360.432C586.37 360.432 585.185 360.772 584.186 361.451C583.196 362.121 582.434 362.994 581.9 364.072C581.366 365.149 581.099 366.304 581.099 367.537V369.517C581.099 371.206 581.39 372.638 581.973 373.812C582.565 374.977 583.385 375.865 584.433 376.477C585.482 377.078 586.7 377.379 588.088 377.379C588.99 377.379 589.806 377.253 590.534 377.001C591.271 376.739 591.907 376.35 592.441 375.836C592.975 375.312 593.387 374.661 593.679 373.885L596.998 374.817C596.649 375.943 596.062 376.933 595.237 377.787C594.411 378.631 593.392 379.291 592.179 379.767C590.966 380.233 589.602 380.466 588.088 380.466ZM612.3 357.636V360.548H600.711V357.636H612.3ZM604.089 352.278H607.525V373.594C607.525 374.564 607.666 375.292 607.947 375.778C608.238 376.253 608.607 376.574 609.054 376.739C609.51 376.894 609.99 376.972 610.495 376.972C610.874 376.972 611.184 376.952 611.427 376.913C611.67 376.865 611.864 376.826 612.009 376.797L612.708 379.884C612.475 379.971 612.15 380.058 611.733 380.146C611.315 380.243 610.786 380.291 610.146 380.291C609.175 380.291 608.224 380.083 607.292 379.665C606.37 379.248 605.603 378.612 604.991 377.758C604.39 376.904 604.089 375.826 604.089 374.526V352.278ZM653.111 350.182V380H649.617L633.368 356.588H633.077V380H629.466V350.182H632.961L649.267 373.652H649.559V350.182H653.111ZM669.247 380.466C667.092 380.466 665.233 379.99 663.671 379.039C662.118 378.078 660.919 376.739 660.074 375.021C659.24 373.293 658.822 371.284 658.822 368.993C658.822 366.702 659.24 364.683 660.074 362.936C660.919 361.179 662.093 359.811 663.598 358.83C665.112 357.84 666.879 357.345 668.897 357.345C670.062 357.345 671.212 357.539 672.348 357.928C673.484 358.316 674.517 358.947 675.449 359.82C676.381 360.684 677.124 361.83 677.677 363.256C678.23 364.683 678.507 366.44 678.507 368.527V369.983H661.268V367.013H675.013C675.013 365.751 674.76 364.625 674.255 363.635C673.76 362.645 673.052 361.864 672.13 361.291C671.217 360.718 670.14 360.432 668.897 360.432C667.529 360.432 666.345 360.772 665.345 361.451C664.355 362.121 663.593 362.994 663.059 364.072C662.525 365.149 662.258 366.304 662.258 367.537V369.517C662.258 371.206 662.549 372.638 663.132 373.812C663.724 374.977 664.544 375.865 665.592 376.477C666.641 377.078 667.859 377.379 669.247 377.379C670.15 377.379 670.965 377.253 671.693 377.001C672.431 376.739 673.066 376.35 673.6 375.836C674.134 375.312 674.547 374.661 674.838 373.885L678.157 374.817C677.808 375.943 677.221 376.933 676.396 377.787C675.571 378.631 674.551 379.291 673.338 379.767C672.125 380.233 670.761 380.466 669.247 380.466ZM693.11 380.466C690.955 380.466 689.097 379.99 687.534 379.039C685.981 378.078 684.782 376.739 683.938 375.021C683.103 373.293 682.685 371.284 682.685 368.993C682.685 366.702 683.103 364.683 683.938 362.936C684.782 361.179 685.957 359.811 687.461 358.83C688.975 357.84 690.742 357.345 692.761 357.345C693.926 357.345 695.076 357.539 696.211 357.928C697.347 358.316 698.381 358.947 699.313 359.82C700.244 360.684 700.987 361.83 701.54 363.256C702.093 364.683 702.37 366.44 702.37 368.527V369.983H685.131V367.013H698.876C698.876 365.751 698.623 364.625 698.119 363.635C697.624 362.645 696.915 361.864 695.993 361.291C695.081 360.718 694.003 360.432 692.761 360.432C691.392 360.432 690.208 360.772 689.208 361.451C688.218 362.121 687.456 362.994 686.922 364.072C686.388 365.149 686.122 366.304 686.122 367.537V369.517C686.122 371.206 686.413 372.638 686.995 373.812C687.587 374.977 688.407 375.865 689.456 376.477C690.504 377.078 691.722 377.379 693.11 377.379C694.013 377.379 694.828 377.253 695.556 377.001C696.294 376.739 696.93 376.35 697.464 375.836C697.997 375.312 698.41 374.661 698.701 373.885L702.021 374.817C701.671 375.943 701.084 376.933 700.259 377.787C699.434 378.631 698.415 379.291 697.201 379.767C695.988 380.233 694.624 380.466 693.11 380.466ZM716.042 380.466C714.178 380.466 712.533 379.995 711.106 379.054C709.679 378.102 708.563 376.763 707.757 375.035C706.952 373.298 706.549 371.245 706.549 368.876C706.549 366.527 706.952 364.489 707.757 362.761C708.563 361.034 709.684 359.699 711.12 358.757C712.557 357.816 714.217 357.345 716.1 357.345C717.556 357.345 718.706 357.588 719.551 358.073C720.405 358.549 721.055 359.092 721.502 359.704C721.958 360.306 722.312 360.801 722.564 361.189H722.856V350.182H726.292V380H722.972V376.564H722.564C722.312 376.972 721.953 377.486 721.487 378.107C721.021 378.719 720.356 379.267 719.492 379.752C718.628 380.228 717.478 380.466 716.042 380.466ZM716.508 377.379C717.886 377.379 719.051 377.02 720.002 376.302C720.953 375.574 721.676 374.569 722.171 373.288C722.666 371.997 722.914 370.507 722.914 368.818C722.914 367.149 722.671 365.688 722.186 364.436C721.7 363.174 720.982 362.194 720.031 361.495C719.08 360.786 717.905 360.432 716.508 360.432C715.052 360.432 713.838 360.806 712.868 361.553C711.907 362.291 711.184 363.295 710.698 364.567C710.223 365.829 709.985 367.246 709.985 368.818C709.985 370.41 710.227 371.856 710.713 373.157C711.208 374.448 711.936 375.477 712.897 376.244C713.867 377.001 715.071 377.379 716.508 377.379Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M285.083 388.153H729.902V390.949H285.083V388.153Z\" fill=\"black\" />\r\n <path\r\n id=\"How to offer something no one else does\"\r\n d=\"M289.435 459V433.545H292.518V444.881H306.09V433.545H309.173V459H306.09V447.615H292.518V459H289.435ZM322.702 459.398C320.978 459.398 319.466 458.988 318.165 458.167C316.872 457.347 315.861 456.199 315.132 454.724C314.411 453.25 314.051 451.526 314.051 449.554C314.051 447.565 314.411 445.829 315.132 444.346C315.861 442.863 316.872 441.711 318.165 440.891C319.466 440.071 320.978 439.661 322.702 439.661C324.425 439.661 325.933 440.071 327.226 440.891C328.527 441.711 329.538 442.863 330.258 444.346C330.988 445.829 331.352 447.565 331.352 449.554C331.352 451.526 330.988 453.25 330.258 454.724C329.538 456.199 328.527 457.347 327.226 458.167C325.933 458.988 324.425 459.398 322.702 459.398ZM322.702 456.763C324.011 456.763 325.088 456.427 325.933 455.756C326.778 455.085 327.404 454.202 327.81 453.109C328.216 452.015 328.419 450.83 328.419 449.554C328.419 448.278 328.216 447.089 327.81 445.987C327.404 444.885 326.778 443.994 325.933 443.315C325.088 442.635 324.011 442.295 322.702 442.295C321.392 442.295 320.315 442.635 319.47 443.315C318.625 443.994 317.999 444.885 317.593 445.987C317.187 447.089 316.984 448.278 316.984 449.554C316.984 450.83 317.187 452.015 317.593 453.109C317.999 454.202 318.625 455.085 319.47 455.756C320.315 456.427 321.392 456.763 322.702 456.763ZM339.506 459L333.689 439.909H336.771L340.898 454.526H341.096L345.173 439.909H348.305L352.332 454.476H352.531L356.658 439.909H359.74L353.923 459H351.04L346.864 444.334H346.565L342.389 459H339.506ZM381.764 439.909V442.395H371.871V439.909H381.764ZM374.754 435.335H377.687V453.531C377.687 454.36 377.808 454.981 378.048 455.396C378.296 455.802 378.611 456.075 378.992 456.216C379.382 456.348 379.792 456.415 380.223 456.415C380.546 456.415 380.811 456.398 381.018 456.365C381.225 456.324 381.391 456.29 381.515 456.266L382.112 458.901C381.913 458.975 381.636 459.05 381.279 459.124C380.923 459.207 380.471 459.249 379.925 459.249C379.096 459.249 378.284 459.07 377.489 458.714C376.701 458.358 376.047 457.815 375.525 457.086C375.011 456.357 374.754 455.437 374.754 454.327V435.335ZM393.727 459.398C392.003 459.398 390.491 458.988 389.19 458.167C387.898 457.347 386.887 456.199 386.158 454.724C385.437 453.25 385.076 451.526 385.076 449.554C385.076 447.565 385.437 445.829 386.158 444.346C386.887 442.863 387.898 441.711 389.19 440.891C390.491 440.071 392.003 439.661 393.727 439.661C395.45 439.661 396.958 440.071 398.251 440.891C399.552 441.711 400.563 442.863 401.284 444.346C402.013 445.829 402.378 447.565 402.378 449.554C402.378 451.526 402.013 453.25 401.284 454.724C400.563 456.199 399.552 457.347 398.251 458.167C396.958 458.988 395.45 459.398 393.727 459.398ZM393.727 456.763C395.036 456.763 396.113 456.427 396.958 455.756C397.804 455.085 398.429 454.202 398.835 453.109C399.241 452.015 399.444 450.83 399.444 449.554C399.444 448.278 399.241 447.089 398.835 445.987C398.429 444.885 397.804 443.994 396.958 443.315C396.113 442.635 395.036 442.295 393.727 442.295C392.418 442.295 391.341 442.635 390.495 443.315C389.65 443.994 389.025 444.885 388.619 445.987C388.213 447.089 388.01 448.278 388.01 449.554C388.01 450.83 388.213 452.015 388.619 453.109C389.025 454.202 389.65 455.085 390.495 455.756C391.341 456.427 392.418 456.763 393.727 456.763ZM424.455 459.398C422.731 459.398 421.219 458.988 419.918 458.167C418.625 457.347 417.614 456.199 416.885 454.724C416.164 453.25 415.804 451.526 415.804 449.554C415.804 447.565 416.164 445.829 416.885 444.346C417.614 442.863 418.625 441.711 419.918 440.891C421.219 440.071 422.731 439.661 424.455 439.661C426.178 439.661 427.686 440.071 428.979 440.891C430.28 441.711 431.29 442.863 432.011 444.346C432.74 445.829 433.105 447.565 433.105 449.554C433.105 451.526 432.74 453.25 432.011 454.724C431.29 456.199 430.28 457.347 428.979 458.167C427.686 458.988 426.178 459.398 424.455 459.398ZM424.455 456.763C425.764 456.763 426.841 456.427 427.686 455.756C428.531 455.085 429.157 454.202 429.563 453.109C429.969 452.015 430.172 450.83 430.172 449.554C430.172 448.278 429.969 447.089 429.563 445.987C429.157 444.885 428.531 443.994 427.686 443.315C426.841 442.635 425.764 442.295 424.455 442.295C423.145 442.295 422.068 442.635 421.223 443.315C420.378 443.994 419.752 444.885 419.346 445.987C418.94 447.089 418.737 448.278 418.737 449.554C418.737 450.83 418.94 452.015 419.346 453.109C419.752 454.202 420.378 455.085 421.223 455.756C422.068 456.427 423.145 456.763 424.455 456.763ZM446.084 439.909V442.395H435.793V439.909H446.084ZM438.875 459V437.274C438.875 436.18 439.132 435.269 439.646 434.54C440.16 433.811 440.827 433.264 441.647 432.899C442.467 432.535 443.333 432.352 444.245 432.352C444.965 432.352 445.554 432.41 446.009 432.526C446.465 432.642 446.805 432.75 447.029 432.849L446.183 435.385C446.034 435.335 445.827 435.273 445.562 435.199C445.305 435.124 444.965 435.087 444.543 435.087C443.573 435.087 442.873 435.331 442.442 435.82C442.02 436.309 441.808 437.026 441.808 437.97V459H438.875ZM458.696 439.909V442.395H448.405V439.909H458.696ZM451.488 459V437.274C451.488 436.18 451.744 435.269 452.258 434.54C452.772 433.811 453.439 433.264 454.259 432.899C455.08 432.535 455.945 432.352 456.857 432.352C457.578 432.352 458.166 432.41 458.622 432.526C459.077 432.642 459.417 432.75 459.641 432.849L458.796 435.385C458.647 435.335 458.439 435.273 458.174 435.199C457.917 435.124 457.578 435.087 457.155 435.087C456.186 435.087 455.486 435.331 455.055 435.82C454.632 436.309 454.421 437.026 454.421 437.97V459H451.488ZM470.025 459.398C468.186 459.398 466.599 458.992 465.265 458.18C463.939 457.359 462.916 456.216 462.195 454.749C461.482 453.274 461.126 451.559 461.126 449.604C461.126 447.648 461.482 445.925 462.195 444.433C462.916 442.933 463.919 441.765 465.203 440.928C466.496 440.083 468.004 439.661 469.727 439.661C470.721 439.661 471.703 439.826 472.673 440.158C473.642 440.489 474.525 441.028 475.32 441.773C476.116 442.511 476.749 443.489 477.222 444.707C477.694 445.925 477.93 447.424 477.93 449.206V450.449H463.214V447.913H474.947C474.947 446.836 474.732 445.875 474.301 445.03C473.878 444.185 473.273 443.518 472.486 443.029C471.707 442.54 470.788 442.295 469.727 442.295C468.559 442.295 467.548 442.585 466.694 443.165C465.849 443.737 465.199 444.483 464.743 445.403C464.287 446.322 464.059 447.308 464.059 448.361V450.051C464.059 451.493 464.308 452.715 464.805 453.718C465.311 454.712 466.011 455.47 466.906 455.992C467.801 456.506 468.84 456.763 470.025 456.763C470.796 456.763 471.492 456.655 472.113 456.44C472.743 456.216 473.286 455.884 473.742 455.445C474.197 454.998 474.549 454.443 474.798 453.78L477.632 454.575C477.334 455.536 476.832 456.382 476.128 457.111C475.424 457.832 474.554 458.395 473.518 458.801C472.482 459.199 471.318 459.398 470.025 459.398ZM482.392 459V439.909H485.226V442.793H485.425C485.773 441.848 486.403 441.082 487.314 440.493C488.226 439.905 489.253 439.611 490.396 439.611C490.612 439.611 490.881 439.615 491.204 439.623C491.527 439.632 491.772 439.644 491.938 439.661V442.643C491.838 442.619 491.61 442.581 491.254 442.532C490.906 442.474 490.537 442.445 490.148 442.445C489.22 442.445 488.391 442.639 487.662 443.029C486.941 443.41 486.369 443.94 485.947 444.62C485.533 445.291 485.325 446.057 485.325 446.919V459H482.392ZM518.781 444.185L516.146 444.93C515.98 444.491 515.736 444.065 515.413 443.65C515.098 443.228 514.667 442.88 514.12 442.606C513.573 442.333 512.873 442.196 512.02 442.196C510.851 442.196 509.878 442.465 509.099 443.004C508.328 443.534 507.943 444.21 507.943 445.03C507.943 445.759 508.208 446.335 508.739 446.757C509.269 447.18 510.097 447.532 511.224 447.814L514.058 448.51C515.765 448.924 517.037 449.558 517.874 450.412C518.711 451.257 519.129 452.346 519.129 453.68C519.129 454.774 518.814 455.752 518.185 456.614C517.563 457.475 516.693 458.155 515.574 458.652C514.456 459.149 513.155 459.398 511.672 459.398C509.725 459.398 508.113 458.975 506.837 458.13C505.561 457.285 504.753 456.05 504.413 454.426L507.197 453.73C507.462 454.758 507.964 455.528 508.701 456.042C509.447 456.556 510.421 456.812 511.622 456.812C512.989 456.812 514.075 456.522 514.878 455.942C515.69 455.354 516.096 454.65 516.096 453.83C516.096 453.167 515.864 452.612 515.4 452.164C514.936 451.708 514.224 451.369 513.263 451.145L510.081 450.399C508.332 449.985 507.048 449.343 506.228 448.473C505.416 447.594 505.01 446.496 505.01 445.179C505.01 444.102 505.312 443.149 505.917 442.32C506.53 441.492 507.363 440.841 508.415 440.369C509.476 439.897 510.677 439.661 512.02 439.661C513.909 439.661 515.392 440.075 516.469 440.903C517.555 441.732 518.325 442.826 518.781 444.185ZM531.3 459.398C529.577 459.398 528.065 458.988 526.764 458.167C525.471 457.347 524.46 456.199 523.731 454.724C523.01 453.25 522.65 451.526 522.65 449.554C522.65 447.565 523.01 445.829 523.731 444.346C524.46 442.863 525.471 441.711 526.764 440.891C528.065 440.071 529.577 439.661 531.3 439.661C533.024 439.661 534.532 440.071 535.824 440.891C537.125 441.711 538.136 442.863 538.857 444.346C539.586 445.829 539.951 447.565 539.951 449.554C539.951 451.526 539.586 453.25 538.857 454.724C538.136 456.199 537.125 457.347 535.824 458.167C534.532 458.988 533.024 459.398 531.3 459.398ZM531.3 456.763C532.609 456.763 533.687 456.427 534.532 455.756C535.377 455.085 536.003 454.202 536.409 453.109C536.815 452.015 537.018 450.83 537.018 449.554C537.018 448.278 536.815 447.089 536.409 445.987C536.003 444.885 535.377 443.994 534.532 443.315C533.687 442.635 532.609 442.295 531.3 442.295C529.991 442.295 528.914 442.635 528.069 443.315C527.224 443.994 526.598 444.885 526.192 445.987C525.786 447.089 525.583 448.278 525.583 449.554C525.583 450.83 525.786 452.015 526.192 453.109C526.598 454.202 527.224 455.085 528.069 455.756C528.914 456.427 529.991 456.763 531.3 456.763ZM544.428 459V439.909H547.262V442.892H547.511C547.908 441.873 548.551 441.082 549.437 440.518C550.324 439.946 551.389 439.661 552.631 439.661C553.891 439.661 554.939 439.946 555.776 440.518C556.621 441.082 557.28 441.873 557.752 442.892H557.951C558.44 441.906 559.173 441.123 560.151 440.543C561.129 439.955 562.301 439.661 563.668 439.661C565.375 439.661 566.771 440.195 567.857 441.264C568.942 442.324 569.485 443.978 569.485 446.223V459H566.552V446.223C566.552 444.814 566.167 443.808 565.396 443.203C564.625 442.598 563.718 442.295 562.674 442.295C561.332 442.295 560.292 442.701 559.554 443.513C558.817 444.317 558.448 445.336 558.448 446.571V459H555.465V445.925C555.465 444.839 555.113 443.965 554.409 443.302C553.704 442.631 552.797 442.295 551.687 442.295C550.925 442.295 550.212 442.498 549.549 442.904C548.894 443.31 548.364 443.874 547.958 444.595C547.56 445.307 547.362 446.132 547.362 447.068V459H544.428ZM582.852 459.398C581.013 459.398 579.426 458.992 578.092 458.18C576.766 457.359 575.743 456.216 575.022 454.749C574.31 453.274 573.953 451.559 573.953 449.604C573.953 447.648 574.31 445.925 575.022 444.433C575.743 442.933 576.746 441.765 578.03 440.928C579.323 440.083 580.831 439.661 582.554 439.661C583.549 439.661 584.53 439.826 585.5 440.158C586.469 440.489 587.352 441.028 588.147 441.773C588.943 442.511 589.577 443.489 590.049 444.707C590.521 445.925 590.757 447.424 590.757 449.206V450.449H576.041V447.913H587.774C587.774 446.836 587.559 445.875 587.128 445.03C586.705 444.185 586.101 443.518 585.313 443.029C584.535 442.54 583.615 442.295 582.554 442.295C581.386 442.295 580.375 442.585 579.522 443.165C578.676 443.737 578.026 444.483 577.57 445.403C577.114 446.322 576.887 447.308 576.887 448.361V450.051C576.887 451.493 577.135 452.715 577.632 453.718C578.138 454.712 578.838 455.47 579.733 455.992C580.628 456.506 581.668 456.763 582.852 456.763C583.623 456.763 584.319 456.655 584.941 456.44C585.57 456.216 586.113 455.884 586.569 455.445C587.024 454.998 587.377 454.443 587.625 453.78L590.459 454.575C590.161 455.536 589.659 456.382 588.955 457.111C588.251 457.832 587.381 458.395 586.345 458.801C585.309 459.199 584.145 459.398 582.852 459.398ZM603.522 439.909V442.395H593.628V439.909H603.522ZM596.512 435.335H599.445V453.531C599.445 454.36 599.565 454.981 599.806 455.396C600.054 455.802 600.369 456.075 600.75 456.216C601.14 456.348 601.55 456.415 601.981 456.415C602.304 456.415 602.569 456.398 602.776 456.365C602.983 456.324 603.149 456.29 603.273 456.266L603.87 458.901C603.671 458.975 603.393 459.05 603.037 459.124C602.681 459.207 602.229 459.249 601.682 459.249C600.854 459.249 600.042 459.07 599.246 458.714C598.459 458.358 597.805 457.815 597.283 457.086C596.769 456.357 596.512 455.437 596.512 454.327V435.335ZM611.278 447.516V459H608.344V433.545H611.278V442.892H611.526C611.974 441.906 612.645 441.123 613.54 440.543C614.443 439.955 615.644 439.661 617.144 439.661C618.445 439.661 619.584 439.922 620.562 440.444C621.54 440.957 622.298 441.749 622.837 442.817C623.383 443.878 623.657 445.229 623.657 446.869V459H620.724V447.068C620.724 445.552 620.33 444.379 619.543 443.551C618.764 442.714 617.683 442.295 616.299 442.295C615.338 442.295 614.476 442.498 613.714 442.904C612.96 443.31 612.363 443.903 611.924 444.682C611.493 445.461 611.278 446.405 611.278 447.516ZM629.023 459V439.909H631.956V459H629.023ZM630.515 436.727C629.943 436.727 629.45 436.533 629.035 436.143C628.629 435.754 628.426 435.286 628.426 434.739C628.426 434.192 628.629 433.724 629.035 433.334C629.45 432.945 629.943 432.75 630.515 432.75C631.086 432.75 631.575 432.945 631.981 433.334C632.395 433.724 632.603 434.192 632.603 434.739C632.603 435.286 632.395 435.754 631.981 436.143C631.575 436.533 631.086 436.727 630.515 436.727ZM640.262 447.516V459H637.329V439.909H640.163V442.892H640.411C640.859 441.923 641.538 441.144 642.449 440.555C643.361 439.959 644.538 439.661 645.979 439.661C647.272 439.661 648.403 439.926 649.372 440.456C650.342 440.978 651.096 441.773 651.634 442.842C652.173 443.903 652.442 445.245 652.442 446.869V459H649.509V447.068C649.509 445.568 649.12 444.4 648.341 443.563C647.562 442.718 646.493 442.295 645.134 442.295C644.198 442.295 643.361 442.498 642.623 442.904C641.894 443.31 641.318 443.903 640.896 444.682C640.473 445.461 640.262 446.405 640.262 447.516ZM665.508 466.557C664.091 466.557 662.873 466.375 661.854 466.01C660.835 465.654 659.986 465.181 659.306 464.593C658.635 464.013 658.101 463.392 657.703 462.729L660.04 461.088C660.305 461.436 660.64 461.834 661.046 462.281C661.452 462.737 662.007 463.131 662.712 463.462C663.424 463.802 664.357 463.972 665.508 463.972C667.049 463.972 668.321 463.599 669.324 462.853C670.327 462.107 670.828 460.939 670.828 459.348V455.47H670.579C670.364 455.818 670.057 456.249 669.66 456.763C669.27 457.268 668.707 457.72 667.969 458.118C667.24 458.507 666.254 458.702 665.011 458.702C663.47 458.702 662.086 458.337 660.86 457.608C659.642 456.879 658.677 455.818 657.964 454.426C657.26 453.034 656.907 451.344 656.907 449.355C656.907 447.4 657.251 445.697 657.939 444.247C658.627 442.788 659.584 441.662 660.81 440.866C662.036 440.062 663.453 439.661 665.061 439.661C666.304 439.661 667.29 439.868 668.019 440.282C668.756 440.688 669.32 441.152 669.709 441.674C670.107 442.188 670.414 442.61 670.629 442.942H670.927V439.909H673.761V459.547C673.761 461.188 673.388 462.522 672.643 463.549C671.905 464.585 670.911 465.343 669.66 465.824C668.417 466.312 667.033 466.557 665.508 466.557ZM665.409 456.067C666.585 456.067 667.58 455.797 668.392 455.259C669.204 454.72 669.821 453.946 670.244 452.935C670.666 451.924 670.878 450.714 670.878 449.305C670.878 447.93 670.67 446.716 670.256 445.664C669.842 444.611 669.229 443.787 668.417 443.19C667.605 442.594 666.602 442.295 665.409 442.295C664.166 442.295 663.13 442.61 662.302 443.24C661.481 443.87 660.864 444.715 660.45 445.776C660.044 446.836 659.841 448.013 659.841 449.305C659.841 450.631 660.048 451.804 660.462 452.823C660.885 453.834 661.506 454.629 662.326 455.209C663.155 455.781 664.183 456.067 665.409 456.067ZM691.907 447.516V459H688.974V439.909H691.808V442.892H692.057C692.504 441.923 693.183 441.144 694.095 440.555C695.006 439.959 696.183 439.661 697.625 439.661C698.917 439.661 700.048 439.926 701.018 440.456C701.987 440.978 702.741 441.773 703.28 442.842C703.819 443.903 704.088 445.245 704.088 446.869V459H701.155V447.068C701.155 445.568 700.765 444.4 699.986 443.563C699.207 442.718 698.139 442.295 696.78 442.295C695.843 442.295 695.006 442.498 694.269 442.904C693.54 443.31 692.964 443.903 692.541 444.682C692.119 445.461 691.907 446.405 691.907 447.516ZM717.204 459.398C715.48 459.398 713.968 458.988 712.667 458.167C711.374 457.347 710.363 456.199 709.634 454.724C708.913 453.25 708.553 451.526 708.553 449.554C708.553 447.565 708.913 445.829 709.634 444.346C710.363 442.863 711.374 441.711 712.667 440.891C713.968 440.071 715.48 439.661 717.204 439.661C718.927 439.661 720.435 440.071 721.728 440.891C723.029 441.711 724.039 442.863 724.76 444.346C725.49 445.829 725.854 447.565 725.854 449.554C725.854 451.526 725.49 453.25 724.76 454.724C724.039 456.199 723.029 457.347 721.728 458.167C720.435 458.988 718.927 459.398 717.204 459.398ZM717.204 456.763C718.513 456.763 719.59 456.427 720.435 455.756C721.28 455.085 721.906 454.202 722.312 453.109C722.718 452.015 722.921 450.83 722.921 449.554C722.921 448.278 722.718 447.089 722.312 445.987C721.906 444.885 721.28 443.994 720.435 443.315C719.59 442.635 718.513 442.295 717.204 442.295C715.894 442.295 714.817 442.635 713.972 443.315C713.127 443.994 712.501 444.885 712.095 445.987C711.689 447.089 711.486 448.278 711.486 449.554C711.486 450.83 711.689 452.015 712.095 453.109C712.501 454.202 713.127 455.085 713.972 455.756C714.817 456.427 715.894 456.763 717.204 456.763ZM402.426 501.398C400.702 501.398 399.19 500.988 397.889 500.167C396.597 499.347 395.586 498.199 394.856 496.724C394.136 495.25 393.775 493.526 393.775 491.554C393.775 489.565 394.136 487.829 394.856 486.346C395.586 484.863 396.597 483.711 397.889 482.891C399.19 482.071 400.702 481.661 402.426 481.661C404.149 481.661 405.657 482.071 406.95 482.891C408.251 483.711 409.262 484.863 409.983 486.346C410.712 487.829 411.076 489.565 411.076 491.554C411.076 493.526 410.712 495.25 409.983 496.724C409.262 498.199 408.251 499.347 406.95 500.167C405.657 500.988 404.149 501.398 402.426 501.398ZM402.426 498.763C403.735 498.763 404.812 498.427 405.657 497.756C406.502 497.085 407.128 496.202 407.534 495.109C407.94 494.015 408.143 492.83 408.143 491.554C408.143 490.278 407.94 489.089 407.534 487.987C407.128 486.885 406.502 485.994 405.657 485.315C404.812 484.635 403.735 484.295 402.426 484.295C401.117 484.295 400.039 484.635 399.194 485.315C398.349 485.994 397.723 486.885 397.317 487.987C396.911 489.089 396.708 490.278 396.708 491.554C396.708 492.83 396.911 494.015 397.317 495.109C397.723 496.202 398.349 497.085 399.194 497.756C400.039 498.427 401.117 498.763 402.426 498.763ZM418.487 489.516V501H415.554V481.909H418.388V484.892H418.636C419.084 483.923 419.763 483.144 420.675 482.555C421.586 481.959 422.763 481.661 424.204 481.661C425.497 481.661 426.628 481.926 427.597 482.456C428.567 482.978 429.321 483.773 429.86 484.842C430.398 485.903 430.667 487.245 430.667 488.869V501H427.734V489.068C427.734 487.568 427.345 486.4 426.566 485.563C425.787 484.718 424.718 484.295 423.359 484.295C422.423 484.295 421.586 484.498 420.849 484.904C420.119 485.31 419.544 485.903 419.121 486.682C418.698 487.461 418.487 488.405 418.487 489.516ZM444.032 501.398C442.192 501.398 440.605 500.992 439.271 500.18C437.946 499.359 436.922 498.216 436.201 496.749C435.489 495.274 435.133 493.559 435.133 491.604C435.133 489.648 435.489 487.925 436.201 486.433C436.922 484.933 437.925 483.765 439.209 482.928C440.502 482.083 442.01 481.661 443.733 481.661C444.728 481.661 445.71 481.826 446.679 482.158C447.649 482.489 448.531 483.028 449.326 483.773C450.122 484.511 450.756 485.489 451.228 486.707C451.7 487.925 451.937 489.424 451.937 491.206V492.449H437.221V489.913H448.954C448.954 488.836 448.738 487.875 448.307 487.03C447.885 486.185 447.28 485.518 446.493 485.029C445.714 484.54 444.794 484.295 443.733 484.295C442.565 484.295 441.554 484.585 440.701 485.165C439.856 485.737 439.205 486.483 438.749 487.403C438.294 488.322 438.066 489.308 438.066 490.361V492.051C438.066 493.493 438.314 494.715 438.812 495.718C439.317 496.712 440.017 497.47 440.912 497.992C441.807 498.506 442.847 498.763 444.032 498.763C444.802 498.763 445.498 498.655 446.12 498.44C446.749 498.216 447.292 497.884 447.748 497.445C448.204 496.998 448.556 496.443 448.804 495.78L451.638 496.575C451.34 497.536 450.839 498.382 450.134 499.111C449.43 499.832 448.56 500.395 447.524 500.801C446.488 501.199 445.324 501.398 444.032 501.398ZM474.247 501.398C472.407 501.398 470.82 500.992 469.486 500.18C468.16 499.359 467.137 498.216 466.416 496.749C465.704 495.274 465.347 493.559 465.347 491.604C465.347 489.648 465.704 487.925 466.416 486.433C467.137 484.933 468.14 483.765 469.424 482.928C470.717 482.083 472.225 481.661 473.948 481.661C474.943 481.661 475.924 481.826 476.894 482.158C477.863 482.489 478.746 483.028 479.541 483.773C480.337 484.511 480.971 485.489 481.443 486.707C481.915 487.925 482.151 489.424 482.151 491.206V492.449H467.435V489.913H479.168C479.168 488.836 478.953 487.875 478.522 487.03C478.1 486.185 477.495 485.518 476.707 485.029C475.929 484.54 475.009 484.295 473.948 484.295C472.78 484.295 471.769 484.585 470.916 485.165C470.07 485.737 469.42 486.483 468.964 487.403C468.508 488.322 468.281 489.308 468.281 490.361V492.051C468.281 493.493 468.529 494.715 469.026 495.718C469.532 496.712 470.232 497.47 471.127 497.992C472.022 498.506 473.062 498.763 474.247 498.763C475.017 498.763 475.713 498.655 476.335 498.44C476.964 498.216 477.507 497.884 477.963 497.445C478.419 496.998 478.771 496.443 479.019 495.78L481.853 496.575C481.555 497.536 481.053 498.382 480.349 499.111C479.645 499.832 478.775 500.395 477.739 500.801C476.703 501.199 475.539 501.398 474.247 501.398ZM489.547 475.545V501H486.613V475.545H489.547ZM508.442 486.185L505.807 486.93C505.641 486.491 505.397 486.065 505.074 485.65C504.759 485.228 504.328 484.88 503.781 484.606C503.234 484.333 502.534 484.196 501.68 484.196C500.512 484.196 499.538 484.465 498.76 485.004C497.989 485.534 497.604 486.21 497.604 487.03C497.604 487.759 497.869 488.335 498.399 488.757C498.929 489.18 499.758 489.532 500.885 489.814L503.719 490.51C505.426 490.924 506.698 491.558 507.534 492.412C508.371 493.257 508.79 494.346 508.79 495.68C508.79 496.774 508.475 497.752 507.845 498.614C507.224 499.475 506.354 500.155 505.235 500.652C504.116 501.149 502.816 501.398 501.332 501.398C499.385 501.398 497.774 500.975 496.498 500.13C495.221 499.285 494.414 498.05 494.074 496.426L496.858 495.73C497.123 496.758 497.624 497.528 498.362 498.042C499.108 498.556 500.081 498.812 501.283 498.812C502.65 498.812 503.735 498.522 504.539 497.942C505.351 497.354 505.757 496.65 505.757 495.83C505.757 495.167 505.525 494.612 505.061 494.164C504.597 493.708 503.884 493.369 502.923 493.145L499.741 492.399C497.993 491.985 496.709 491.343 495.888 490.473C495.076 489.594 494.67 488.496 494.67 487.179C494.67 486.102 494.973 485.149 495.578 484.32C496.191 483.492 497.024 482.841 498.076 482.369C499.137 481.897 500.338 481.661 501.68 481.661C503.57 481.661 505.053 482.075 506.13 482.903C507.215 483.732 507.986 484.826 508.442 486.185ZM521.209 501.398C519.37 501.398 517.783 500.992 516.449 500.18C515.123 499.359 514.1 498.216 513.379 496.749C512.667 495.274 512.31 493.559 512.31 491.604C512.31 489.648 512.667 487.925 513.379 486.433C514.1 484.933 515.103 483.765 516.387 482.928C517.68 482.083 519.188 481.661 520.911 481.661C521.905 481.661 522.887 481.826 523.857 482.158C524.826 482.489 525.709 483.028 526.504 483.773C527.3 484.511 527.934 485.489 528.406 486.707C528.878 487.925 529.114 489.424 529.114 491.206V492.449H514.398V489.913H526.131C526.131 488.836 525.916 487.875 525.485 487.03C525.062 486.185 524.458 485.518 523.67 485.029C522.891 484.54 521.972 484.295 520.911 484.295C519.743 484.295 518.732 484.585 517.878 485.165C517.033 485.737 516.383 486.483 515.927 487.403C515.471 488.322 515.244 489.308 515.244 490.361V492.051C515.244 493.493 515.492 494.715 515.989 495.718C516.495 496.712 517.195 497.47 518.09 497.992C518.985 498.506 520.025 498.763 521.209 498.763C521.98 498.763 522.676 498.655 523.297 498.44C523.927 498.216 524.47 497.884 524.926 497.445C525.381 496.998 525.734 496.443 525.982 495.78L528.816 496.575C528.518 497.536 528.016 498.382 527.312 499.111C526.608 499.832 525.738 500.395 524.702 500.801C523.666 501.199 522.502 501.398 521.209 501.398ZM550.629 501.398C549.038 501.398 547.633 500.996 546.415 500.192C545.197 499.38 544.244 498.237 543.557 496.762C542.869 495.279 542.525 493.526 542.525 491.504C542.525 489.499 542.869 487.759 543.557 486.284C544.244 484.809 545.201 483.67 546.428 482.866C547.654 482.062 549.071 481.661 550.679 481.661C551.921 481.661 552.903 481.868 553.624 482.282C554.353 482.688 554.909 483.152 555.29 483.674C555.679 484.188 555.982 484.61 556.197 484.942H556.446V475.545H559.379V501H556.545V498.067H556.197C555.982 498.415 555.675 498.854 555.277 499.384C554.88 499.906 554.312 500.374 553.574 500.789C552.837 501.195 551.855 501.398 550.629 501.398ZM551.027 498.763C552.203 498.763 553.197 498.456 554.009 497.843C554.822 497.222 555.439 496.364 555.861 495.27C556.284 494.168 556.495 492.896 556.495 491.455C556.495 490.029 556.288 488.782 555.874 487.713C555.46 486.636 554.846 485.799 554.034 485.203C553.222 484.598 552.22 484.295 551.027 484.295C549.784 484.295 548.748 484.614 547.919 485.252C547.099 485.882 546.482 486.74 546.067 487.825C545.661 488.902 545.458 490.112 545.458 491.455C545.458 492.813 545.666 494.048 546.08 495.158C546.502 496.26 547.124 497.139 547.944 497.793C548.773 498.44 549.8 498.763 551.027 498.763ZM572.914 501.398C571.19 501.398 569.678 500.988 568.377 500.167C567.085 499.347 566.074 498.199 565.345 496.724C564.624 495.25 564.263 493.526 564.263 491.554C564.263 489.565 564.624 487.829 565.345 486.346C566.074 484.863 567.085 483.711 568.377 482.891C569.678 482.071 571.19 481.661 572.914 481.661C574.637 481.661 576.146 482.071 577.438 482.891C578.739 483.711 579.75 484.863 580.471 486.346C581.2 487.829 581.565 489.565 581.565 491.554C581.565 493.526 581.2 495.25 580.471 496.724C579.75 498.199 578.739 499.347 577.438 500.167C576.146 500.988 574.637 501.398 572.914 501.398ZM572.914 498.763C574.223 498.763 575.3 498.427 576.146 497.756C576.991 497.085 577.616 496.202 578.022 495.109C578.428 494.015 578.631 492.83 578.631 491.554C578.631 490.278 578.428 489.089 578.022 487.987C577.616 486.885 576.991 485.994 576.146 485.315C575.3 484.635 574.223 484.295 572.914 484.295C571.605 484.295 570.528 484.635 569.682 485.315C568.837 485.994 568.212 486.885 567.806 487.987C567.4 489.089 567.197 490.278 567.197 491.554C567.197 492.83 567.4 494.015 567.806 495.109C568.212 496.202 568.837 497.085 569.682 497.756C570.528 498.427 571.605 498.763 572.914 498.763ZM594.046 501.398C592.207 501.398 590.62 500.992 589.286 500.18C587.96 499.359 586.937 498.216 586.216 496.749C585.503 495.274 585.147 493.559 585.147 491.604C585.147 489.648 585.503 487.925 586.216 486.433C586.937 484.933 587.94 483.765 589.224 482.928C590.517 482.083 592.025 481.661 593.748 481.661C594.742 481.661 595.724 481.826 596.694 482.158C597.663 482.489 598.546 483.028 599.341 483.773C600.137 484.511 600.77 485.489 601.243 486.707C601.715 487.925 601.951 489.424 601.951 491.206V492.449H587.235V489.913H598.968C598.968 488.836 598.753 487.875 598.322 487.03C597.899 486.185 597.294 485.518 596.507 485.029C595.728 484.54 594.809 484.295 593.748 484.295C592.58 484.295 591.569 484.585 590.715 485.165C589.87 485.737 589.22 486.483 588.764 487.403C588.308 488.322 588.08 489.308 588.08 490.361V492.051C588.08 493.493 588.329 494.715 588.826 495.718C589.332 496.712 590.032 497.47 590.927 497.992C591.822 498.506 592.861 498.763 594.046 498.763C594.817 498.763 595.513 498.655 596.134 498.44C596.764 498.216 597.307 497.884 597.763 497.445C598.218 496.998 598.57 496.443 598.819 495.78L601.653 496.575C601.355 497.536 600.853 498.382 600.149 499.111C599.445 499.832 598.575 500.395 597.539 500.801C596.503 501.199 595.339 501.398 594.046 501.398ZM619.936 486.185L617.301 486.93C617.135 486.491 616.891 486.065 616.568 485.65C616.253 485.228 615.822 484.88 615.275 484.606C614.728 484.333 614.028 484.196 613.175 484.196C612.006 484.196 611.033 484.465 610.254 485.004C609.483 485.534 609.098 486.21 609.098 487.03C609.098 487.759 609.363 488.335 609.893 488.757C610.424 489.18 611.252 489.532 612.379 489.814L615.213 490.51C616.92 490.924 618.192 491.558 619.029 492.412C619.865 493.257 620.284 494.346 620.284 495.68C620.284 496.774 619.969 497.752 619.339 498.614C618.718 499.475 617.848 500.155 616.729 500.652C615.611 501.149 614.31 501.398 612.827 501.398C610.879 501.398 609.268 500.975 607.992 500.13C606.716 499.285 605.908 498.05 605.568 496.426L608.352 495.73C608.617 496.758 609.119 497.528 609.856 498.042C610.602 498.556 611.575 498.812 612.777 498.812C614.144 498.812 615.229 498.522 616.033 497.942C616.845 497.354 617.251 496.65 617.251 495.83C617.251 495.167 617.019 494.612 616.555 494.164C616.091 493.708 615.379 493.369 614.417 493.145L611.236 492.399C609.487 491.985 608.203 491.343 607.383 490.473C606.571 489.594 606.165 488.496 606.165 487.179C606.165 486.102 606.467 485.149 607.072 484.32C607.685 483.492 608.518 482.841 609.57 482.369C610.631 481.897 611.832 481.661 613.175 481.661C615.064 481.661 616.547 482.075 617.624 482.903C618.71 483.732 619.48 484.826 619.936 486.185Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"JobsToBeDone\" className=\"map-btn\" onClick={ClickHandler(\"JobsToBeDone\")}>\r\n <rect\r\n id=\"Rectangle 8_2\"\r\n x=\"221\"\r\n y=\"757\"\r\n width=\"572\"\r\n height=\"333\"\r\n rx=\"50\"\r\n fill=\"#396F9D\"\r\n />\r\n <path\r\n d=\"M373.42 795.182H377.031V816.497C377.031 818.4 376.681 820.016 375.983 821.346C375.284 822.675 374.299 823.685 373.027 824.374C371.755 825.063 370.256 825.408 368.528 825.408C366.897 825.408 365.446 825.112 364.175 824.52C362.903 823.918 361.903 823.064 361.175 821.957C360.447 820.85 360.083 819.535 360.083 818.011H363.636C363.636 818.856 363.845 819.594 364.262 820.224C364.689 820.846 365.272 821.331 366.009 821.68C366.747 822.03 367.587 822.205 368.528 822.205C369.567 822.205 370.45 821.986 371.178 821.549C371.906 821.113 372.459 820.472 372.838 819.627C373.226 818.773 373.42 817.73 373.42 816.497V795.182ZM392.886 825.466C390.867 825.466 389.096 824.985 387.572 824.025C386.058 823.064 384.874 821.719 384.02 819.991C383.175 818.264 382.753 816.245 382.753 813.935C382.753 811.605 383.175 809.572 384.02 807.834C384.874 806.097 386.058 804.748 387.572 803.787C389.096 802.826 390.867 802.345 392.886 802.345C394.905 802.345 396.672 802.826 398.186 803.787C399.71 804.748 400.894 806.097 401.739 807.834C402.593 809.572 403.02 811.605 403.02 813.935C403.02 816.245 402.593 818.264 401.739 819.991C400.894 821.719 399.71 823.064 398.186 824.025C396.672 824.985 394.905 825.466 392.886 825.466ZM392.886 822.379C394.42 822.379 395.682 821.986 396.672 821.2C397.662 820.414 398.395 819.38 398.87 818.099C399.346 816.817 399.584 815.429 399.584 813.935C399.584 812.44 399.346 811.047 398.87 809.756C398.395 808.465 397.662 807.422 396.672 806.626C395.682 805.83 394.42 805.432 392.886 805.432C391.353 805.432 390.091 805.83 389.101 806.626C388.111 807.422 387.378 808.465 386.902 809.756C386.427 811.047 386.189 812.44 386.189 813.935C386.189 815.429 386.427 816.817 386.902 818.099C387.378 819.38 388.111 820.414 389.101 821.2C390.091 821.986 391.353 822.379 392.886 822.379ZM408.731 825V795.182H412.167V806.189H412.458C412.711 805.801 413.06 805.306 413.506 804.704C413.963 804.092 414.613 803.549 415.457 803.073C416.312 802.588 417.467 802.345 418.923 802.345C420.806 802.345 422.466 802.816 423.902 803.757C425.339 804.699 426.46 806.034 427.265 807.761C428.071 809.489 428.474 811.527 428.474 813.876C428.474 816.245 428.071 818.298 427.265 820.035C426.46 821.763 425.343 823.102 423.917 824.054C422.49 824.995 420.845 825.466 418.981 825.466C417.544 825.466 416.394 825.228 415.53 824.752C414.666 824.267 414.002 823.719 413.536 823.107C413.07 822.486 412.711 821.972 412.458 821.564H412.051V825H408.731ZM412.109 813.818C412.109 815.507 412.356 816.997 412.851 818.288C413.346 819.569 414.069 820.574 415.021 821.302C415.972 822.02 417.137 822.379 418.515 822.379C419.952 822.379 421.15 822.001 422.111 821.244C423.082 820.477 423.81 819.448 424.295 818.157C424.79 816.856 425.038 815.41 425.038 813.818C425.038 812.246 424.795 810.829 424.31 809.567C423.834 808.295 423.111 807.291 422.14 806.553C421.179 805.806 419.971 805.432 418.515 805.432C417.117 805.432 415.943 805.786 414.992 806.495C414.04 807.194 413.322 808.174 412.837 809.436C412.351 810.688 412.109 812.149 412.109 813.818ZM454.987 802.636V805.548H443.397V802.636H454.987ZM446.775 797.278H450.211V818.594C450.211 819.564 450.352 820.292 450.634 820.778C450.925 821.253 451.294 821.574 451.74 821.739C452.196 821.894 452.677 821.972 453.182 821.972C453.56 821.972 453.871 821.952 454.113 821.913C454.356 821.865 454.55 821.826 454.696 821.797L455.395 824.884C455.162 824.971 454.836 825.058 454.419 825.146C454.002 825.243 453.473 825.291 452.832 825.291C451.861 825.291 450.91 825.083 449.978 824.665C449.056 824.248 448.29 823.612 447.678 822.758C447.076 821.904 446.775 820.826 446.775 819.526V797.278ZM469.001 825.466C466.982 825.466 465.21 824.985 463.686 824.025C462.172 823.064 460.988 821.719 460.134 819.991C459.289 818.264 458.867 816.245 458.867 813.935C458.867 811.605 459.289 809.572 460.134 807.834C460.988 806.097 462.172 804.748 463.686 803.787C465.21 802.826 466.982 802.345 469.001 802.345C471.02 802.345 472.786 802.826 474.3 803.787C475.824 804.748 477.008 806.097 477.853 807.834C478.707 809.572 479.134 811.605 479.134 813.935C479.134 816.245 478.707 818.264 477.853 819.991C477.008 821.719 475.824 823.064 474.3 824.025C472.786 824.985 471.02 825.466 469.001 825.466ZM469.001 822.379C470.534 822.379 471.796 821.986 472.786 821.2C473.776 820.414 474.509 819.38 474.985 818.099C475.46 816.817 475.698 815.429 475.698 813.935C475.698 812.44 475.46 811.047 474.985 809.756C474.509 808.465 473.776 807.422 472.786 806.626C471.796 805.83 470.534 805.432 469.001 805.432C467.467 805.432 466.205 805.83 465.215 806.626C464.225 807.422 463.492 808.465 463.017 809.756C462.541 811.047 462.303 812.44 462.303 813.935C462.303 815.429 462.541 816.817 463.017 818.099C463.492 819.38 464.225 820.414 465.215 821.2C466.205 821.986 467.467 822.379 469.001 822.379ZM496.376 825V795.182H506.801C508.878 795.182 510.592 795.541 511.941 796.259C513.29 796.968 514.295 797.924 514.955 799.127C515.615 800.321 515.945 801.646 515.945 803.102C515.945 804.384 515.717 805.442 515.26 806.276C514.814 807.111 514.222 807.771 513.484 808.256C512.756 808.742 511.965 809.101 511.111 809.334V809.625C512.023 809.683 512.94 810.004 513.863 810.586C514.785 811.168 515.556 812.003 516.178 813.09C516.799 814.177 517.109 815.507 517.109 817.08C517.109 818.574 516.77 819.919 516.09 821.113C515.411 822.306 514.338 823.253 512.873 823.952C511.407 824.651 509.5 825 507.151 825H496.376ZM499.987 821.797H507.151C509.509 821.797 511.184 821.341 512.174 820.428C513.173 819.506 513.673 818.39 513.673 817.08C513.673 816.07 513.416 815.138 512.902 814.284C512.387 813.42 511.654 812.731 510.703 812.217C509.752 811.692 508.626 811.43 507.325 811.43H499.987V821.797ZM499.987 808.286H506.685C507.772 808.286 508.752 808.072 509.626 807.645C510.509 807.218 511.208 806.616 511.722 805.839C512.246 805.063 512.509 804.151 512.509 803.102C512.509 801.792 512.052 800.681 511.14 799.768C510.228 798.846 508.781 798.385 506.801 798.385H499.987V808.286ZM531.953 825.466C529.798 825.466 527.939 824.99 526.377 824.039C524.824 823.078 523.625 821.739 522.78 820.021C521.946 818.293 521.528 816.284 521.528 813.993C521.528 811.702 521.946 809.683 522.78 807.936C523.625 806.179 524.799 804.811 526.304 803.83C527.818 802.84 529.585 802.345 531.604 802.345C532.768 802.345 533.919 802.539 535.054 802.928C536.19 803.316 537.224 803.947 538.155 804.82C539.087 805.684 539.83 806.83 540.383 808.256C540.936 809.683 541.213 811.44 541.213 813.527V814.983H523.974V812.013H537.719C537.719 810.751 537.466 809.625 536.961 808.635C536.466 807.645 535.758 806.864 534.836 806.291C533.923 805.718 532.846 805.432 531.604 805.432C530.235 805.432 529.051 805.772 528.051 806.451C527.061 807.121 526.299 807.994 525.765 809.072C525.231 810.149 524.964 811.304 524.964 812.537V814.517C524.964 816.206 525.256 817.638 525.838 818.812C526.43 819.977 527.25 820.865 528.298 821.477C529.347 822.078 530.565 822.379 531.953 822.379C532.856 822.379 533.671 822.253 534.399 822.001C535.137 821.739 535.772 821.35 536.306 820.836C536.84 820.312 537.253 819.661 537.544 818.885L540.863 819.817C540.514 820.943 539.927 821.933 539.102 822.787C538.277 823.631 537.258 824.291 536.044 824.767C534.831 825.233 533.467 825.466 531.953 825.466ZM567.639 825H558.437V795.182H568.046C570.939 795.182 573.414 795.779 575.472 796.973C577.53 798.157 579.107 799.86 580.204 802.083C581.3 804.296 581.849 806.946 581.849 810.033C581.849 813.139 581.296 815.813 580.189 818.055C579.083 820.288 577.471 822.006 575.355 823.209C573.239 824.403 570.667 825 567.639 825ZM562.048 821.797H567.406C569.871 821.797 571.914 821.321 573.535 820.37C575.156 819.419 576.365 818.065 577.161 816.308C577.957 814.551 578.355 812.459 578.355 810.033C578.355 807.625 577.961 805.553 577.175 803.816C576.389 802.069 575.215 800.729 573.652 799.797C572.089 798.856 570.143 798.385 567.813 798.385H562.048V821.797ZM596.525 825.466C594.506 825.466 592.735 824.985 591.211 824.025C589.697 823.064 588.512 821.719 587.658 819.991C586.814 818.264 586.392 816.245 586.392 813.935C586.392 811.605 586.814 809.572 587.658 807.834C588.512 806.097 589.697 804.748 591.211 803.787C592.735 802.826 594.506 802.345 596.525 802.345C598.544 802.345 600.311 802.826 601.825 803.787C603.349 804.748 604.533 806.097 605.377 807.834C606.231 809.572 606.659 811.605 606.659 813.935C606.659 816.245 606.231 818.264 605.377 819.991C604.533 821.719 603.349 823.064 601.825 824.025C600.311 824.985 598.544 825.466 596.525 825.466ZM596.525 822.379C598.059 822.379 599.32 821.986 600.311 821.2C601.301 820.414 602.033 819.38 602.509 818.099C602.985 816.817 603.222 815.429 603.222 813.935C603.222 812.44 602.985 811.047 602.509 809.756C602.033 808.465 601.301 807.422 600.311 806.626C599.32 805.83 598.059 805.432 596.525 805.432C594.991 805.432 593.73 805.83 592.74 806.626C591.749 807.422 591.017 808.465 590.541 809.756C590.065 811.047 589.828 812.44 589.828 813.935C589.828 815.429 590.065 816.817 590.541 818.099C591.017 819.38 591.749 820.414 592.74 821.2C593.73 821.986 594.991 822.379 596.525 822.379ZM615.34 811.547V825H611.904V802.636H615.223V806.131H615.514C616.039 804.995 616.835 804.083 617.902 803.393C618.97 802.695 620.348 802.345 622.037 802.345C623.551 802.345 624.876 802.656 626.012 803.277C627.148 803.888 628.031 804.82 628.662 806.072C629.293 807.315 629.608 808.887 629.608 810.79V825H626.172V811.023C626.172 809.266 625.716 807.897 624.804 806.917C623.891 805.927 622.639 805.432 621.047 805.432C619.95 805.432 618.97 805.67 618.106 806.145C617.252 806.621 616.577 807.315 616.082 808.227C615.587 809.14 615.34 810.246 615.34 811.547ZM645.263 825.466C643.109 825.466 641.25 824.99 639.687 824.039C638.134 823.078 636.935 821.739 636.091 820.021C635.256 818.293 634.839 816.284 634.839 813.993C634.839 811.702 635.256 809.683 636.091 807.936C636.935 806.179 638.11 804.811 639.614 803.83C641.129 802.84 642.895 802.345 644.914 802.345C646.079 802.345 647.229 802.539 648.365 802.928C649.5 803.316 650.534 803.947 651.466 804.82C652.398 805.684 653.14 806.83 653.694 808.256C654.247 809.683 654.523 811.44 654.523 813.527V814.983H637.285V812.013H651.029C651.029 810.751 650.777 809.625 650.272 808.635C649.777 807.645 649.068 806.864 648.146 806.291C647.234 805.718 646.156 805.432 644.914 805.432C643.545 805.432 642.361 805.772 641.362 806.451C640.371 807.121 639.609 807.994 639.076 809.072C638.542 810.149 638.275 811.304 638.275 812.537V814.517C638.275 816.206 638.566 817.638 639.148 818.812C639.741 819.977 640.561 820.865 641.609 821.477C642.657 822.078 643.875 822.379 645.263 822.379C646.166 822.379 646.982 822.253 647.71 822.001C648.447 821.739 649.083 821.35 649.617 820.836C650.151 820.312 650.563 819.661 650.854 818.885L654.174 819.817C653.825 820.943 653.237 821.933 652.412 822.787C651.587 823.631 650.568 824.291 649.355 824.767C648.141 825.233 646.778 825.466 645.263 825.466Z\"\r\n fill=\"black\"\r\n />\r\n <path d=\"M358.395 833.153H656.62V835.949H358.395V833.153Z\" fill=\"black\" />\r\n <path\r\n id=\"What is the job to be done?\"\r\n d=\"M287.804 904L280.844 878.545H283.976L289.296 899.277H289.544L294.963 878.545H298.443L303.862 899.277H304.111L309.431 878.545H312.563L305.602 904H302.421L296.803 883.716H296.604L290.986 904H287.804ZM318.939 892.516V904H316.005V878.545H318.939V887.892H319.187C319.635 886.906 320.306 886.123 321.201 885.543C322.104 884.955 323.305 884.661 324.805 884.661C326.106 884.661 327.245 884.922 328.223 885.444C329.201 885.957 329.959 886.749 330.498 887.817C331.045 888.878 331.318 890.229 331.318 891.869V904H328.385V892.068C328.385 890.552 327.991 889.379 327.204 888.551C326.425 887.714 325.344 887.295 323.96 887.295C322.999 887.295 322.137 887.498 321.375 887.904C320.621 888.31 320.024 888.903 319.585 889.682C319.154 890.461 318.939 891.405 318.939 892.516ZM342.302 904.447C341.092 904.447 339.994 904.22 339.008 903.764C338.022 903.3 337.239 902.633 336.659 901.763C336.079 900.884 335.789 899.824 335.789 898.581C335.789 897.487 336.005 896.601 336.436 895.921C336.866 895.233 337.442 894.695 338.163 894.305C338.884 893.916 339.68 893.626 340.55 893.435C341.428 893.237 342.31 893.079 343.197 892.963C344.357 892.814 345.297 892.702 346.018 892.627C346.748 892.545 347.278 892.408 347.609 892.217C347.949 892.027 348.119 891.695 348.119 891.223V891.124C348.119 889.897 347.783 888.944 347.112 888.265C346.449 887.585 345.442 887.246 344.092 887.246C342.692 887.246 341.594 887.552 340.798 888.165C340.003 888.779 339.443 889.433 339.12 890.129L336.336 889.135C336.833 887.975 337.496 887.072 338.325 886.425C339.162 885.771 340.073 885.315 341.059 885.058C342.053 884.793 343.031 884.661 343.992 884.661C344.606 884.661 345.31 884.735 346.105 884.884C346.909 885.025 347.684 885.319 348.43 885.767C349.184 886.214 349.809 886.889 350.306 887.793C350.803 888.696 351.052 889.906 351.052 891.422V904H348.119V901.415H347.97C347.771 901.829 347.439 902.272 346.975 902.745C346.511 903.217 345.894 903.619 345.123 903.95C344.353 904.282 343.412 904.447 342.302 904.447ZM342.75 901.812C343.91 901.812 344.887 901.585 345.683 901.129C346.486 900.673 347.091 900.085 347.497 899.364C347.912 898.643 348.119 897.885 348.119 897.089V894.405C347.995 894.554 347.721 894.691 347.299 894.815C346.884 894.931 346.404 895.035 345.857 895.126C345.318 895.209 344.792 895.283 344.278 895.349C343.773 895.407 343.363 895.457 343.048 895.499C342.285 895.598 341.573 895.76 340.91 895.983C340.255 896.199 339.725 896.526 339.319 896.965C338.921 897.396 338.723 897.984 338.723 898.73C338.723 899.749 339.1 900.52 339.854 901.042C340.616 901.556 341.581 901.812 342.75 901.812ZM364.708 884.909V887.395H354.815V884.909H364.708ZM357.698 880.335H360.632V898.531C360.632 899.36 360.752 899.981 360.992 900.396C361.241 900.802 361.556 901.075 361.937 901.216C362.326 901.348 362.736 901.415 363.167 901.415C363.49 901.415 363.756 901.398 363.963 901.365C364.17 901.324 364.336 901.29 364.46 901.266L365.056 903.901C364.858 903.975 364.58 904.05 364.224 904.124C363.867 904.207 363.416 904.249 362.869 904.249C362.04 904.249 361.228 904.07 360.433 903.714C359.646 903.358 358.991 902.815 358.469 902.086C357.955 901.357 357.698 900.437 357.698 899.327V880.335ZM378.964 904V884.909H381.898V904H378.964ZM380.456 881.727C379.884 881.727 379.391 881.533 378.977 881.143C378.571 880.754 378.368 880.286 378.368 879.739C378.368 879.192 378.571 878.724 378.977 878.334C379.391 877.945 379.884 877.75 380.456 877.75C381.028 877.75 381.517 877.945 381.923 878.334C382.337 878.724 382.544 879.192 382.544 879.739C382.544 880.286 382.337 880.754 381.923 881.143C381.517 881.533 381.028 881.727 380.456 881.727ZM400.793 889.185L398.158 889.93C397.992 889.491 397.748 889.065 397.425 888.65C397.11 888.228 396.679 887.88 396.132 887.606C395.585 887.333 394.885 887.196 394.031 887.196C392.863 887.196 391.89 887.465 391.111 888.004C390.34 888.534 389.955 889.21 389.955 890.03C389.955 890.759 390.22 891.335 390.75 891.757C391.281 892.18 392.109 892.532 393.236 892.814L396.07 893.51C397.777 893.924 399.049 894.558 399.886 895.412C400.722 896.257 401.141 897.346 401.141 898.68C401.141 899.774 400.826 900.752 400.196 901.614C399.575 902.475 398.705 903.155 397.586 903.652C396.468 904.149 395.167 904.398 393.683 904.398C391.736 904.398 390.125 903.975 388.849 903.13C387.573 902.285 386.765 901.05 386.425 899.426L389.209 898.73C389.474 899.758 389.975 900.528 390.713 901.042C391.459 901.556 392.432 901.812 393.634 901.812C395.001 901.812 396.086 901.522 396.89 900.942C397.702 900.354 398.108 899.65 398.108 898.83C398.108 898.167 397.876 897.612 397.412 897.164C396.948 896.708 396.236 896.369 395.274 896.145L392.093 895.399C390.344 894.985 389.06 894.343 388.24 893.473C387.428 892.594 387.022 891.496 387.022 890.179C387.022 889.102 387.324 888.149 387.929 887.32C388.542 886.492 389.375 885.841 390.427 885.369C391.488 884.897 392.689 884.661 394.031 884.661C395.921 884.661 397.404 885.075 398.481 885.903C399.567 886.732 400.337 887.826 400.793 889.185ZM423.703 884.909V887.395H413.809V884.909H423.703ZM416.693 880.335H419.626V898.531C419.626 899.36 419.746 899.981 419.986 900.396C420.235 900.802 420.55 901.075 420.931 901.216C421.32 901.348 421.73 901.415 422.161 901.415C422.485 901.415 422.75 901.398 422.957 901.365C423.164 901.324 423.33 901.29 423.454 901.266L424.051 903.901C423.852 903.975 423.574 904.05 423.218 904.124C422.862 904.207 422.41 904.249 421.863 904.249C421.034 904.249 420.222 904.07 419.427 903.714C418.64 903.358 417.985 902.815 417.463 902.086C416.949 901.357 416.693 900.437 416.693 899.327V880.335ZM431.458 892.516V904H428.525V878.545H431.458V887.892H431.707C432.154 886.906 432.825 886.123 433.72 885.543C434.623 884.955 435.825 884.661 437.325 884.661C438.626 884.661 439.765 884.922 440.743 885.444C441.72 885.957 442.479 886.749 443.017 887.817C443.564 888.878 443.837 890.229 443.837 891.869V904H440.904V892.068C440.904 890.552 440.511 889.379 439.723 888.551C438.945 887.714 437.863 887.295 436.48 887.295C435.518 887.295 434.657 887.498 433.894 887.904C433.14 888.31 432.544 888.903 432.105 889.682C431.674 890.461 431.458 891.405 431.458 892.516ZM457.208 904.398C455.368 904.398 453.782 903.992 452.448 903.18C451.122 902.359 450.099 901.216 449.378 899.749C448.665 898.274 448.309 896.559 448.309 894.604C448.309 892.648 448.665 890.925 449.378 889.433C450.099 887.933 451.101 886.765 452.386 885.928C453.678 885.083 455.186 884.661 456.91 884.661C457.904 884.661 458.886 884.826 459.855 885.158C460.825 885.489 461.707 886.028 462.503 886.773C463.298 887.511 463.932 888.489 464.404 889.707C464.877 890.925 465.113 892.424 465.113 894.206V895.449H450.397V892.913H462.13C462.13 891.836 461.914 890.875 461.484 890.03C461.061 889.185 460.456 888.518 459.669 888.029C458.89 887.54 457.97 887.295 456.91 887.295C455.741 887.295 454.73 887.585 453.877 888.165C453.032 888.737 452.381 889.483 451.926 890.403C451.47 891.322 451.242 892.308 451.242 893.361V895.051C451.242 896.493 451.491 897.715 451.988 898.718C452.493 899.712 453.193 900.47 454.088 900.992C454.983 901.506 456.023 901.763 457.208 901.763C457.979 901.763 458.675 901.655 459.296 901.44C459.926 901.216 460.468 900.884 460.924 900.445C461.38 899.998 461.732 899.443 461.981 898.78L464.814 899.575C464.516 900.536 464.015 901.382 463.311 902.111C462.606 902.832 461.736 903.395 460.701 903.801C459.665 904.199 458.501 904.398 457.208 904.398ZM479.419 884.909H482.352V905.392C482.352 906.569 482.149 907.588 481.743 908.45C481.345 909.311 480.74 909.978 479.928 910.451C479.124 910.923 478.109 911.159 476.883 911.159C476.784 911.159 476.684 911.159 476.585 911.159C476.485 911.159 476.386 911.159 476.286 911.159V908.425C476.386 908.425 476.477 908.425 476.56 908.425C476.643 908.425 476.734 908.425 476.833 908.425C477.728 908.425 478.383 908.16 478.797 907.629C479.211 907.107 479.419 906.362 479.419 905.392V884.909ZM480.86 881.727C480.289 881.727 479.796 881.533 479.381 881.143C478.975 880.754 478.772 880.286 478.772 879.739C478.772 879.192 478.975 878.724 479.381 878.334C479.796 877.945 480.289 877.75 480.86 877.75C481.432 877.75 481.921 877.945 482.327 878.334C482.741 878.724 482.948 879.192 482.948 879.739C482.948 880.286 482.741 880.754 482.327 881.143C481.921 881.533 481.432 881.727 480.86 881.727ZM495.48 904.398C493.756 904.398 492.244 903.988 490.943 903.167C489.651 902.347 488.64 901.199 487.911 899.724C487.19 898.25 486.829 896.526 486.829 894.554C486.829 892.565 487.19 890.829 487.911 889.346C488.64 887.863 489.651 886.711 490.943 885.891C492.244 885.071 493.756 884.661 495.48 884.661C497.203 884.661 498.711 885.071 500.004 885.891C501.305 886.711 502.316 887.863 503.037 889.346C503.766 890.829 504.13 892.565 504.13 894.554C504.13 896.526 503.766 898.25 503.037 899.724C502.316 901.199 501.305 902.347 500.004 903.167C498.711 903.988 497.203 904.398 495.48 904.398ZM495.48 901.763C496.789 901.763 497.866 901.427 498.711 900.756C499.557 900.085 500.182 899.202 500.588 898.109C500.994 897.015 501.197 895.83 501.197 894.554C501.197 893.278 500.994 892.089 500.588 890.987C500.182 889.885 499.557 888.994 498.711 888.315C497.866 887.635 496.789 887.295 495.48 887.295C494.171 887.295 493.094 887.635 492.248 888.315C491.403 888.994 490.778 889.885 490.372 890.987C489.966 892.089 489.763 893.278 489.763 894.554C489.763 895.83 489.966 897.015 490.372 898.109C490.778 899.202 491.403 900.085 492.248 900.756C493.094 901.427 494.171 901.763 495.48 901.763ZM509.006 904V878.545H511.939V887.942H512.188C512.403 887.61 512.701 887.188 513.082 886.674C513.472 886.152 514.027 885.688 514.748 885.282C515.477 884.868 516.463 884.661 517.706 884.661C519.313 884.661 520.73 885.062 521.957 885.866C523.183 886.67 524.14 887.809 524.828 889.284C525.516 890.759 525.859 892.499 525.859 894.504C525.859 896.526 525.516 898.279 524.828 899.762C524.14 901.237 523.187 902.38 521.969 903.192C520.751 903.996 519.347 904.398 517.756 904.398C516.529 904.398 515.548 904.195 514.81 903.789C514.073 903.374 513.505 902.906 513.107 902.384C512.71 901.854 512.403 901.415 512.188 901.067H511.84V904H509.006ZM511.889 894.455C511.889 895.896 512.101 897.168 512.523 898.27C512.946 899.364 513.563 900.222 514.375 900.843C515.187 901.456 516.181 901.763 517.358 901.763C518.584 901.763 519.608 901.44 520.428 900.793C521.257 900.139 521.878 899.26 522.292 898.158C522.715 897.048 522.926 895.813 522.926 894.455C522.926 893.112 522.719 891.902 522.305 890.825C521.899 889.74 521.281 888.882 520.453 888.252C519.633 887.614 518.601 887.295 517.358 887.295C516.165 887.295 515.162 887.598 514.35 888.203C513.538 888.799 512.925 889.636 512.511 890.713C512.096 891.782 511.889 893.029 511.889 894.455ZM548.493 884.909V887.395H538.599V884.909H548.493ZM541.483 880.335H544.416V898.531C544.416 899.36 544.536 899.981 544.776 900.396C545.025 900.802 545.34 901.075 545.721 901.216C546.11 901.348 546.521 901.415 546.951 901.415C547.275 901.415 547.54 901.398 547.747 901.365C547.954 901.324 548.12 901.29 548.244 901.266L548.841 903.901C548.642 903.975 548.364 904.05 548.008 904.124C547.652 904.207 547.2 904.249 546.653 904.249C545.825 904.249 545.012 904.07 544.217 903.714C543.43 903.358 542.775 902.815 542.253 902.086C541.74 901.357 541.483 900.437 541.483 899.327V880.335ZM560.455 904.398C558.732 904.398 557.22 903.988 555.919 903.167C554.626 902.347 553.615 901.199 552.886 899.724C552.165 898.25 551.805 896.526 551.805 894.554C551.805 892.565 552.165 890.829 552.886 889.346C553.615 887.863 554.626 886.711 555.919 885.891C557.22 885.071 558.732 884.661 560.455 884.661C562.179 884.661 563.687 885.071 564.98 885.891C566.281 886.711 567.291 887.863 568.012 889.346C568.741 890.829 569.106 892.565 569.106 894.554C569.106 896.526 568.741 898.25 568.012 899.724C567.291 901.199 566.281 902.347 564.98 903.167C563.687 903.988 562.179 904.398 560.455 904.398ZM560.455 901.763C561.765 901.763 562.842 901.427 563.687 900.756C564.532 900.085 565.158 899.202 565.564 898.109C565.97 897.015 566.173 895.83 566.173 894.554C566.173 893.278 565.97 892.089 565.564 890.987C565.158 889.885 564.532 888.994 563.687 888.315C562.842 887.635 561.765 887.295 560.455 887.295C559.146 887.295 558.069 887.635 557.224 888.315C556.379 888.994 555.753 889.885 555.347 890.987C554.941 892.089 554.738 893.278 554.738 894.554C554.738 895.83 554.941 897.015 555.347 898.109C555.753 899.202 556.379 900.085 557.224 900.756C558.069 901.427 559.146 901.763 560.455 901.763ZM583.825 904V878.545H586.758V887.942H587.007C587.222 887.61 587.521 887.188 587.902 886.674C588.291 886.152 588.846 885.688 589.567 885.282C590.296 884.868 591.282 884.661 592.525 884.661C594.133 884.661 595.55 885.062 596.776 885.866C598.002 886.67 598.959 887.809 599.647 889.284C600.335 890.759 600.679 892.499 600.679 894.504C600.679 896.526 600.335 898.279 599.647 899.762C598.959 901.237 598.007 902.38 596.788 903.192C595.57 903.996 594.166 904.398 592.575 904.398C591.349 904.398 590.367 904.195 589.629 903.789C588.892 903.374 588.324 902.906 587.927 902.384C587.529 901.854 587.222 901.415 587.007 901.067H586.659V904H583.825ZM586.709 894.455C586.709 895.896 586.92 897.168 587.342 898.27C587.765 899.364 588.382 900.222 589.194 900.843C590.006 901.456 591.001 901.763 592.177 901.763C593.404 901.763 594.427 901.44 595.247 900.793C596.076 900.139 596.697 899.26 597.112 898.158C597.534 897.048 597.746 895.813 597.746 894.455C597.746 893.112 597.538 891.902 597.124 890.825C596.718 889.74 596.101 888.882 595.272 888.252C594.452 887.614 593.42 887.295 592.177 887.295C590.984 887.295 589.982 887.598 589.17 888.203C588.357 888.799 587.744 889.636 587.33 890.713C586.916 891.782 586.709 893.029 586.709 894.455ZM613.17 904.398C611.33 904.398 609.744 903.992 608.41 903.18C607.084 902.359 606.061 901.216 605.34 899.749C604.627 898.274 604.271 896.559 604.271 894.604C604.271 892.648 604.627 890.925 605.34 889.433C606.061 887.933 607.063 886.765 608.347 885.928C609.64 885.083 611.148 884.661 612.872 884.661C613.866 884.661 614.848 884.826 615.817 885.158C616.787 885.489 617.669 886.028 618.465 886.773C619.26 887.511 619.894 888.489 620.366 889.707C620.839 890.925 621.075 892.424 621.075 894.206V895.449H606.359V892.913H618.092C618.092 891.836 617.876 890.875 617.445 890.03C617.023 889.185 616.418 888.518 615.631 888.029C614.852 887.54 613.932 887.295 612.872 887.295C611.703 887.295 610.692 887.585 609.839 888.165C608.994 888.737 608.343 889.483 607.888 890.403C607.432 891.322 607.204 892.308 607.204 893.361V895.051C607.204 896.493 607.453 897.715 607.95 898.718C608.455 899.712 609.155 900.47 610.05 900.992C610.945 901.506 611.985 901.763 613.17 901.763C613.94 901.763 614.636 901.655 615.258 901.44C615.888 901.216 616.43 900.884 616.886 900.445C617.342 899.998 617.694 899.443 617.943 898.78L620.776 899.575C620.478 900.536 619.977 901.382 619.273 902.111C618.568 902.832 617.698 903.395 616.662 903.801C615.627 904.199 614.462 904.398 613.17 904.398ZM642.589 904.398C640.998 904.398 639.594 903.996 638.376 903.192C637.158 902.38 636.205 901.237 635.517 899.762C634.829 898.279 634.486 896.526 634.486 894.504C634.486 892.499 634.829 890.759 635.517 889.284C636.205 887.809 637.162 886.67 638.388 885.866C639.615 885.062 641.032 884.661 642.639 884.661C643.882 884.661 644.864 884.868 645.585 885.282C646.314 885.688 646.869 886.152 647.25 886.674C647.64 887.188 647.942 887.61 648.157 887.942H648.406V878.545H651.339V904H648.505V901.067H648.157C647.942 901.415 647.635 901.854 647.238 902.384C646.84 902.906 646.272 903.374 645.535 903.789C644.797 904.195 643.816 904.398 642.589 904.398ZM642.987 901.763C644.164 901.763 645.158 901.456 645.97 900.843C646.782 900.222 647.399 899.364 647.822 898.27C648.244 897.168 648.456 895.896 648.456 894.455C648.456 893.029 648.249 891.782 647.834 890.713C647.42 889.636 646.807 888.799 645.995 888.203C645.183 887.598 644.18 887.295 642.987 887.295C641.744 887.295 640.708 887.614 639.88 888.252C639.059 888.882 638.442 889.74 638.028 890.825C637.622 891.902 637.419 893.112 637.419 894.455C637.419 895.813 637.626 897.048 638.04 898.158C638.463 899.26 639.084 900.139 639.905 900.793C640.733 901.44 641.761 901.763 642.987 901.763ZM664.874 904.398C663.151 904.398 661.639 903.988 660.338 903.167C659.045 902.347 658.034 901.199 657.305 899.724C656.584 898.25 656.224 896.526 656.224 894.554C656.224 892.565 656.584 890.829 657.305 889.346C658.034 887.863 659.045 886.711 660.338 885.891C661.639 885.071 663.151 884.661 664.874 884.661C666.598 884.661 668.106 885.071 669.399 885.891C670.699 886.711 671.71 887.863 672.431 889.346C673.16 890.829 673.525 892.565 673.525 894.554C673.525 896.526 673.16 898.25 672.431 899.724C671.71 901.199 670.699 902.347 669.399 903.167C668.106 903.988 666.598 904.398 664.874 904.398ZM664.874 901.763C666.184 901.763 667.261 901.427 668.106 900.756C668.951 900.085 669.577 899.202 669.983 898.109C670.389 897.015 670.592 895.83 670.592 894.554C670.592 893.278 670.389 892.089 669.983 890.987C669.577 889.885 668.951 888.994 668.106 888.315C667.261 887.635 666.184 887.295 664.874 887.295C663.565 887.295 662.488 887.635 661.643 888.315C660.798 888.994 660.172 889.885 659.766 890.987C659.36 892.089 659.157 893.278 659.157 894.554C659.157 895.83 659.36 897.015 659.766 898.109C660.172 899.202 660.798 900.085 661.643 900.756C662.488 901.427 663.565 901.763 664.874 901.763ZM680.936 892.516V904H678.003V884.909H680.836V887.892H681.085C681.532 886.923 682.212 886.144 683.123 885.555C684.035 884.959 685.211 884.661 686.653 884.661C687.946 884.661 689.077 884.926 690.046 885.456C691.016 885.978 691.77 886.773 692.308 887.842C692.847 888.903 693.116 890.245 693.116 891.869V904H690.183V892.068C690.183 890.568 689.793 889.4 689.015 888.563C688.236 887.718 687.167 887.295 685.808 887.295C684.872 887.295 684.035 887.498 683.297 887.904C682.568 888.31 681.992 888.903 681.57 889.682C681.147 890.461 680.936 891.405 680.936 892.516ZM706.48 904.398C704.641 904.398 703.054 903.992 701.72 903.18C700.394 902.359 699.371 901.216 698.65 899.749C697.938 898.274 697.581 896.559 697.581 894.604C697.581 892.648 697.938 890.925 698.65 889.433C699.371 887.933 700.374 886.765 701.658 885.928C702.951 885.083 704.459 884.661 706.182 884.661C707.176 884.661 708.158 884.826 709.128 885.158C710.097 885.489 710.98 886.028 711.775 886.773C712.571 887.511 713.205 888.489 713.677 889.707C714.149 890.925 714.385 892.424 714.385 894.206V895.449H699.669V892.913H711.402C711.402 891.836 711.187 890.875 710.756 890.03C710.333 889.185 709.729 888.518 708.941 888.029C708.162 887.54 707.243 887.295 706.182 887.295C705.014 887.295 704.003 887.585 703.149 888.165C702.304 888.737 701.654 889.483 701.198 890.403C700.742 891.322 700.515 892.308 700.515 893.361V895.051C700.515 896.493 700.763 897.715 701.26 898.718C701.766 899.712 702.466 900.47 703.361 900.992C704.256 901.506 705.296 901.763 706.48 901.763C707.251 901.763 707.947 901.655 708.568 901.44C709.198 901.216 709.741 900.884 710.197 900.445C710.652 899.998 711.005 899.443 711.253 898.78L714.087 899.575C713.789 900.536 713.287 901.382 712.583 902.111C711.879 902.832 711.009 903.395 709.973 903.801C708.937 904.199 707.773 904.398 706.48 904.398ZM722.675 896.841V896.692C722.692 895.109 722.858 893.85 723.173 892.913C723.487 891.977 723.935 891.219 724.515 890.639C725.095 890.059 725.791 889.524 726.603 889.036C727.092 888.737 727.531 888.385 727.92 887.979C728.31 887.565 728.616 887.088 728.84 886.55C729.072 886.011 729.188 885.415 729.188 884.76C729.188 883.948 728.998 883.244 728.616 882.647C728.235 882.05 727.726 881.591 727.088 881.267C726.45 880.944 725.741 880.783 724.962 880.783C724.283 880.783 723.628 880.924 722.999 881.205C722.369 881.487 721.843 881.93 721.42 882.535C720.997 883.14 720.753 883.931 720.687 884.909H717.555C717.621 883.5 717.986 882.295 718.648 881.292C719.32 880.29 720.202 879.523 721.296 878.993C722.398 878.463 723.62 878.197 724.962 878.197C726.421 878.197 727.688 878.487 728.766 879.067C729.851 879.647 730.688 880.443 731.276 881.454C731.873 882.465 732.171 883.616 732.171 884.909C732.171 885.821 732.03 886.645 731.749 887.382C731.475 888.12 731.077 888.779 730.555 889.359C730.042 889.939 729.42 890.452 728.691 890.9C727.962 891.356 727.378 891.836 726.939 892.342C726.499 892.839 726.18 893.431 725.981 894.119C725.783 894.807 725.675 895.664 725.658 896.692V896.841H722.675ZM724.266 904.199C723.653 904.199 723.127 903.979 722.688 903.54C722.249 903.101 722.029 902.575 722.029 901.962C722.029 901.348 722.249 900.822 722.688 900.383C723.127 899.944 723.653 899.724 724.266 899.724C724.879 899.724 725.406 899.944 725.845 900.383C726.284 900.822 726.504 901.348 726.504 901.962C726.504 902.368 726.4 902.741 726.193 903.08C725.994 903.42 725.725 903.693 725.385 903.901C725.053 904.099 724.681 904.199 724.266 904.199Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"Header\">\r\n <rect id=\"Rectangle 1\" width=\"1000\" height=\"200\" rx=\"50\" fill=\"#9D393D\" />\r\n <path\r\n d=\"M267.04 68V38.1818H277.115C279.455 38.1818 281.367 38.604 282.852 39.4485C284.347 40.2833 285.453 41.4141 286.171 42.8409C286.89 44.2678 287.249 45.8596 287.249 47.6165C287.249 49.3733 286.89 50.9701 286.171 52.4066C285.463 53.8432 284.366 54.9885 282.881 55.8427C281.396 56.6871 279.493 57.1094 277.174 57.1094H269.952V53.9062H277.057C278.659 53.9062 279.945 53.6296 280.915 53.0763C281.886 52.5231 282.59 51.7757 283.027 50.8342C283.473 49.8829 283.696 48.8104 283.696 47.6165C283.696 46.4226 283.473 45.3549 283.027 44.4134C282.59 43.4718 281.881 42.7341 280.901 42.2003C279.92 41.6567 278.62 41.3849 276.999 41.3849H270.651V68H267.04ZM292.599 68V45.6364H295.919V49.0142H296.152C296.56 47.9077 297.297 47.0098 298.365 46.3207C299.433 45.6315 300.636 45.2869 301.976 45.2869C302.228 45.2869 302.544 45.2918 302.922 45.3015C303.301 45.3112 303.587 45.3258 303.781 45.3452V48.8395C303.665 48.8104 303.398 48.7667 302.981 48.7085C302.573 48.6405 302.141 48.6065 301.685 48.6065C300.598 48.6065 299.627 48.8346 298.773 49.2908C297.928 49.7373 297.259 50.3585 296.764 51.1545C296.278 51.9407 296.036 52.8385 296.036 53.848V68H292.599ZM316.55 68.4659C314.395 68.4659 312.537 67.9903 310.974 67.0391C309.421 66.0781 308.222 64.7386 307.378 63.0206C306.543 61.2929 306.125 59.2836 306.125 56.9929C306.125 54.7022 306.543 52.6832 307.378 50.9361C308.222 49.1792 309.396 47.8106 310.901 46.8303C312.415 45.8402 314.182 45.3452 316.201 45.3452C317.365 45.3452 318.516 45.5393 319.651 45.9276C320.787 46.3158 321.821 46.9467 322.753 47.8203C323.684 48.6842 324.427 49.8295 324.98 51.2564C325.533 52.6832 325.81 54.4401 325.81 56.527V57.983H308.571V55.0128H322.316C322.316 53.7509 322.063 52.625 321.559 51.6349C321.064 50.6449 320.355 49.8635 319.433 49.2908C318.521 48.7182 317.443 48.4318 316.201 48.4318C314.832 48.4318 313.648 48.7715 312.648 49.451C311.658 50.1207 310.896 50.9943 310.362 52.0717C309.828 53.1491 309.561 54.3042 309.561 55.5369V57.517C309.561 59.206 309.853 60.6377 310.435 61.8121C311.027 62.9769 311.847 63.8651 312.896 64.4766C313.944 65.0784 315.162 65.3793 316.55 65.3793C317.453 65.3793 318.268 65.2531 318.996 65.0007C319.734 64.7386 320.37 64.3504 320.903 63.8359C321.437 63.3118 321.85 62.6615 322.141 61.8849L325.461 62.8168C325.111 63.9427 324.524 64.9328 323.699 65.7869C322.874 66.6314 321.855 67.2914 320.641 67.767C319.428 68.233 318.064 68.4659 316.55 68.4659ZM340.122 68.4659C338.026 68.4659 336.22 67.9709 334.706 66.9808C333.192 65.9908 332.027 64.627 331.212 62.8896C330.396 61.1521 329.989 59.1671 329.989 56.9347C329.989 54.6634 330.406 52.659 331.241 50.9215C332.085 49.1744 333.26 47.8106 334.764 46.8303C336.278 45.8402 338.045 45.3452 340.064 45.3452C341.636 45.3452 343.054 45.6364 344.315 46.2188C345.577 46.8011 346.611 47.6165 347.417 48.6648C348.222 49.7131 348.722 50.9361 348.916 52.3338H345.48C345.218 51.3146 344.636 50.4119 343.733 49.6257C342.84 48.8298 341.636 48.4318 340.122 48.4318C338.783 48.4318 337.608 48.7812 336.599 49.4801C335.599 50.1693 334.818 51.1448 334.255 52.4066C333.701 53.6587 333.425 55.1293 333.425 56.8182C333.425 58.5459 333.697 60.0504 334.24 61.3317C334.793 62.6129 335.57 63.6078 336.57 64.3164C337.579 65.025 338.763 65.3793 340.122 65.3793C341.015 65.3793 341.826 65.224 342.554 64.9134C343.282 64.6027 343.898 64.1562 344.403 63.5739C344.907 62.9915 345.267 62.2926 345.48 61.4773H348.916C348.722 62.7973 348.242 63.9864 347.475 65.0444C346.718 66.0927 345.713 66.9274 344.461 67.5487C343.219 68.1602 341.772 68.4659 340.122 68.4659ZM363.316 68.4659C361.161 68.4659 359.302 67.9903 357.739 67.0391C356.186 66.0781 354.988 64.7386 354.143 63.0206C353.308 61.2929 352.891 59.2836 352.891 56.9929C352.891 54.7022 353.308 52.6832 354.143 50.9361C354.988 49.1792 356.162 47.8106 357.667 46.8303C359.181 45.8402 360.947 45.3452 362.966 45.3452C364.131 45.3452 365.281 45.5393 366.417 45.9276C367.553 46.3158 368.586 46.9467 369.518 47.8203C370.45 48.6842 371.193 49.8295 371.746 51.2564C372.299 52.6832 372.576 54.4401 372.576 56.527V57.983H355.337V55.0128H369.081C369.081 53.7509 368.829 52.625 368.324 51.6349C367.829 50.6449 367.121 49.8635 366.199 49.2908C365.286 48.7182 364.209 48.4318 362.966 48.4318C361.598 48.4318 360.414 48.7715 359.414 49.451C358.424 50.1207 357.662 50.9943 357.128 52.0717C356.594 53.1491 356.327 54.3042 356.327 55.5369V57.517C356.327 59.206 356.618 60.6377 357.201 61.8121C357.793 62.9769 358.613 63.8651 359.661 64.4766C360.71 65.0784 361.928 65.3793 363.316 65.3793C364.218 65.3793 365.034 65.2531 365.762 65.0007C366.499 64.7386 367.135 64.3504 367.669 63.8359C368.203 63.3118 368.615 62.6615 368.907 61.8849L372.226 62.8168C371.877 63.9427 371.29 64.9328 370.465 65.7869C369.639 66.6314 368.62 67.2914 367.407 67.767C366.194 68.233 364.83 68.4659 363.316 68.4659ZM386.247 68.4659C384.384 68.4659 382.738 67.9951 381.311 67.0536C379.885 66.1024 378.768 64.7629 377.963 63.0352C377.157 61.2977 376.754 59.2448 376.754 56.8764C376.754 54.5275 377.157 52.4891 377.963 50.7614C378.768 49.0336 379.889 47.699 381.326 46.7575C382.763 45.8159 384.422 45.3452 386.305 45.3452C387.761 45.3452 388.912 45.5878 389.756 46.0732C390.61 46.5488 391.261 47.0923 391.707 47.7038C392.163 48.3056 392.518 48.8007 392.77 49.1889H393.061V38.1818H396.497V68H393.178V64.5639H392.77C392.518 64.9716 392.158 65.486 391.693 66.1072C391.227 66.7187 390.562 67.2672 389.698 67.7525C388.834 68.2281 387.684 68.4659 386.247 68.4659ZM386.713 65.3793C388.091 65.3793 389.256 65.0201 390.207 64.3018C391.159 63.5739 391.882 62.5692 392.377 61.288C392.872 59.997 393.119 58.5071 393.119 56.8182C393.119 55.1487 392.877 53.6879 392.391 52.4357C391.906 51.1739 391.188 50.1935 390.237 49.4947C389.285 48.7861 388.111 48.4318 386.713 48.4318C385.257 48.4318 384.044 48.8055 383.073 49.5529C382.112 50.2906 381.389 51.2952 380.904 52.5668C380.428 53.8286 380.19 55.2457 380.19 56.8182C380.19 58.41 380.433 59.8563 380.918 61.157C381.413 62.4479 382.141 63.4768 383.102 64.2436C384.073 65.0007 385.277 65.3793 386.713 65.3793ZM403.267 68V45.6364H406.704V68H403.267ZM405.015 41.9091C404.345 41.9091 403.767 41.681 403.282 41.2248C402.806 40.7686 402.569 40.2202 402.569 39.5795C402.569 38.9389 402.806 38.3905 403.282 37.9343C403.767 37.4781 404.345 37.25 405.015 37.25C405.684 37.25 406.257 37.4781 406.733 37.9343C407.218 38.3905 407.461 38.9389 407.461 39.5795C407.461 40.2202 407.218 40.7686 406.733 41.2248C406.257 41.681 405.684 41.9091 405.015 41.9091ZM416.433 54.5469V68H412.997V45.6364H416.317V49.1307H416.608C417.132 47.995 417.928 47.0826 418.996 46.3935C420.063 45.6946 421.442 45.3452 423.13 45.3452C424.645 45.3452 425.97 45.6558 427.105 46.277C428.241 46.8885 429.124 47.8203 429.755 49.0724C430.386 50.3149 430.701 51.8873 430.701 53.7898V68H427.265V54.0227C427.265 52.2659 426.809 50.8973 425.897 49.9169C424.984 48.9268 423.732 48.4318 422.14 48.4318C421.044 48.4318 420.063 48.6696 419.199 49.1452C418.345 49.6209 417.671 50.3149 417.176 51.2273C416.681 52.1397 416.433 53.2462 416.433 54.5469ZM446.007 76.8523C444.348 76.8523 442.921 76.6387 441.727 76.2116C440.533 75.7943 439.538 75.241 438.742 74.5518C437.956 73.8724 437.33 73.1444 436.864 72.3679L439.601 70.446C439.912 70.8537 440.305 71.3196 440.78 71.8438C441.256 72.3776 441.906 72.8387 442.731 73.2269C443.566 73.6249 444.658 73.8239 446.007 73.8239C447.813 73.8239 449.303 73.3871 450.477 72.5135C451.652 71.6399 452.239 70.2713 452.239 68.4077V63.8651H451.948C451.695 64.2727 451.336 64.7775 450.87 65.3793C450.414 65.9714 449.754 66.5004 448.89 66.9663C448.036 67.4225 446.881 67.6506 445.425 67.6506C443.62 67.6506 441.999 67.2235 440.562 66.3693C439.135 65.5152 438.004 64.2727 437.17 62.642C436.345 61.0114 435.932 59.0312 435.932 56.7017C435.932 54.411 436.335 52.4163 437.14 50.7177C437.946 49.0094 439.067 47.6893 440.504 46.7575C441.94 45.8159 443.6 45.3452 445.483 45.3452C446.939 45.3452 448.094 45.5878 448.948 46.0732C449.812 46.5488 450.472 47.0923 450.928 47.7038C451.394 48.3056 451.754 48.8007 452.006 49.1889H452.355V45.6364H455.675V68.6406C455.675 70.5625 455.238 72.1252 454.365 73.3288C453.501 74.5421 452.336 75.4303 450.87 75.9933C449.414 76.5659 447.793 76.8523 446.007 76.8523ZM445.891 64.5639C447.269 64.5639 448.434 64.2485 449.385 63.6175C450.336 62.9866 451.06 62.0791 451.555 60.8949C452.05 59.7107 452.297 58.2936 452.297 56.6435C452.297 55.0322 452.054 53.6102 451.569 52.3775C451.084 51.1448 450.366 50.179 449.414 49.4801C448.463 48.7812 447.289 48.4318 445.891 48.4318C444.435 48.4318 443.222 48.8007 442.251 49.5384C441.29 50.276 440.567 51.2661 440.082 52.5085C439.606 53.7509 439.368 55.1293 439.368 56.6435C439.368 58.1965 439.611 59.57 440.096 60.7638C440.591 61.948 441.319 62.8799 442.28 63.5593C443.251 64.229 444.454 64.5639 445.891 64.5639ZM473.962 68V38.1818H484.037C486.367 38.1818 488.279 38.5798 489.774 39.3757C491.268 40.1619 492.375 41.2442 493.093 42.6225C493.812 44.0008 494.171 45.5684 494.171 47.3253C494.171 49.0821 493.812 50.64 493.093 51.9989C492.375 53.3578 491.273 54.4255 489.788 55.2021C488.303 55.9689 486.406 56.3523 484.095 56.3523H475.942V53.0909H483.979C485.571 53.0909 486.852 52.858 487.823 52.392C488.803 51.9261 489.512 51.2661 489.948 50.4119C490.395 49.5481 490.618 48.5192 490.618 47.3253C490.618 46.1314 490.395 45.0879 489.948 44.195C489.502 43.302 488.788 42.6128 487.808 42.1275C486.828 41.6325 485.532 41.3849 483.921 41.3849H477.573V68H473.962ZM487.997 54.6051L495.335 68H491.142L483.921 54.6051H487.997ZM508.858 68.4659C506.703 68.4659 504.844 67.9903 503.281 67.0391C501.728 66.0781 500.53 64.7386 499.685 63.0206C498.85 61.2929 498.433 59.2836 498.433 56.9929C498.433 54.7022 498.85 52.6832 499.685 50.9361C500.53 49.1792 501.704 47.8106 503.209 46.8303C504.723 45.8402 506.489 45.3452 508.508 45.3452C509.673 45.3452 510.823 45.5393 511.959 45.9276C513.095 46.3158 514.128 46.9467 515.06 47.8203C515.992 48.6842 516.735 49.8295 517.288 51.2564C517.841 52.6832 518.118 54.4401 518.118 56.527V57.983H500.879V55.0128H514.623C514.623 53.7509 514.371 52.625 513.866 51.6349C513.371 50.6449 512.663 49.8635 511.741 49.2908C510.828 48.7182 509.751 48.4318 508.508 48.4318C507.14 48.4318 505.956 48.7715 504.956 49.451C503.966 50.1207 503.204 50.9943 502.67 52.0717C502.136 53.1491 501.869 54.3042 501.869 55.5369V57.517C501.869 59.206 502.16 60.6377 502.743 61.8121C503.335 62.9769 504.155 63.8651 505.203 64.4766C506.252 65.0784 507.47 65.3793 508.858 65.3793C509.76 65.3793 510.576 65.2531 511.304 65.0007C512.041 64.7386 512.677 64.3504 513.211 63.8359C513.745 63.3118 514.157 62.6615 514.449 61.8849L517.768 62.8168C517.419 63.9427 516.832 64.9328 516.007 65.7869C515.181 66.6314 514.162 67.2914 512.949 67.767C511.736 68.233 510.372 68.4659 508.858 68.4659ZM538.603 76.3864V64.5639H538.312C538.06 64.9716 537.7 65.486 537.235 66.1072C536.769 66.7187 536.104 67.2672 535.24 67.7525C534.376 68.2281 533.226 68.4659 531.789 68.4659C529.926 68.4659 528.28 67.9951 526.853 67.0536C525.427 66.1024 524.31 64.7629 523.505 63.0352C522.699 61.2977 522.296 59.2448 522.296 56.8764C522.296 54.5275 522.699 52.4891 523.505 50.7614C524.31 49.0336 525.431 47.699 526.868 46.7575C528.305 45.8159 529.964 45.3452 531.847 45.3452C533.303 45.3452 534.454 45.5878 535.298 46.0732C536.152 46.5488 536.803 47.0923 537.249 47.7038C537.705 48.3056 538.06 48.8007 538.312 49.1889H538.72V45.6364H542.039V76.3864H538.603ZM532.255 65.3793C533.633 65.3793 534.798 65.0201 535.749 64.3018C536.701 63.5739 537.424 62.5692 537.919 61.288C538.414 59.997 538.661 58.5071 538.661 56.8182C538.661 55.1487 538.419 53.6879 537.933 52.4357C537.448 51.1739 536.73 50.1935 535.779 49.4947C534.827 48.7861 533.653 48.4318 532.255 48.4318C530.799 48.4318 529.586 48.8055 528.615 49.5529C527.654 50.2906 526.931 51.2952 526.446 52.5668C525.97 53.8286 525.732 55.2457 525.732 56.8182C525.732 58.41 525.975 59.8563 526.46 61.157C526.955 62.4479 527.683 63.4768 528.644 64.2436C529.615 65.0007 530.819 65.3793 532.255 65.3793ZM562.423 58.8565V45.6364H565.859V68H562.423V64.2145H562.19C561.666 65.3501 560.85 66.3159 559.744 67.1119C558.637 67.8981 557.239 68.2912 555.551 68.2912C554.153 68.2912 552.91 67.9854 551.823 67.3739C550.736 66.7527 549.882 65.8209 549.261 64.5785C548.64 63.3263 548.329 61.7491 548.329 59.8466V45.6364H551.765V59.6136C551.765 61.2443 552.221 62.545 553.134 63.5156C554.056 64.4863 555.23 64.9716 556.657 64.9716C557.511 64.9716 558.38 64.7532 559.263 64.3164C560.156 63.8796 560.904 63.2099 561.505 62.3072C562.117 61.4045 562.423 60.2543 562.423 58.8565ZM572.152 68V45.6364H575.588V68H572.152ZM573.899 41.9091C573.23 41.9091 572.652 41.681 572.167 41.2248C571.691 40.7686 571.453 40.2202 571.453 39.5795C571.453 38.9389 571.691 38.3905 572.167 37.9343C572.652 37.4781 573.23 37.25 573.899 37.25C574.569 37.25 575.142 37.4781 575.617 37.9343C576.103 38.3905 576.345 38.9389 576.345 39.5795C576.345 40.2202 576.103 40.7686 575.617 41.2248C575.142 41.681 574.569 41.9091 573.899 41.9091ZM581.882 68V45.6364H585.201V49.0142H585.434C585.842 47.9077 586.58 47.0098 587.647 46.3207C588.715 45.6315 589.919 45.2869 591.258 45.2869C591.51 45.2869 591.826 45.2918 592.205 45.3015C592.583 45.3112 592.869 45.3258 593.064 45.3452V48.8395C592.947 48.8104 592.68 48.7667 592.263 48.7085C591.855 48.6405 591.423 48.6065 590.967 48.6065C589.88 48.6065 588.909 48.8346 588.055 49.2908C587.211 49.7373 586.541 50.3585 586.046 51.1545C585.56 51.9407 585.318 52.8385 585.318 53.848V68H581.882ZM605.832 68.4659C603.678 68.4659 601.819 67.9903 600.256 67.0391C598.703 66.0781 597.504 64.7386 596.66 63.0206C595.825 61.2929 595.408 59.2836 595.408 56.9929C595.408 54.7022 595.825 52.6832 596.66 50.9361C597.504 49.1792 598.679 47.8106 600.183 46.8303C601.697 45.8402 603.464 45.3452 605.483 45.3452C606.648 45.3452 607.798 45.5393 608.934 45.9276C610.069 46.3158 611.103 46.9467 612.035 47.8203C612.967 48.6842 613.709 49.8295 614.262 51.2564C614.816 52.6832 615.092 54.4401 615.092 56.527V57.983H597.854V55.0128H611.598C611.598 53.7509 611.346 52.625 610.841 51.6349C610.346 50.6449 609.637 49.8635 608.715 49.2908C607.803 48.7182 606.725 48.4318 605.483 48.4318C604.114 48.4318 602.93 48.7715 601.93 49.451C600.94 50.1207 600.178 50.9943 599.644 52.0717C599.111 53.1491 598.844 54.3042 598.844 55.5369V57.517C598.844 59.206 599.135 60.6377 599.717 61.8121C600.309 62.9769 601.13 63.8651 602.178 64.4766C603.226 65.0784 604.444 65.3793 605.832 65.3793C606.735 65.3793 607.55 65.2531 608.278 65.0007C609.016 64.7386 609.652 64.3504 610.186 63.8359C610.72 63.3118 611.132 62.6615 611.423 61.8849L614.743 62.8168C614.393 63.9427 613.806 64.9328 612.981 65.7869C612.156 66.6314 611.137 67.2914 609.924 67.767C608.71 68.233 607.347 68.4659 605.832 68.4659ZM620.319 68V45.6364H623.639V49.1307H623.93C624.396 47.9368 625.148 47.0098 626.187 46.3498C627.225 45.68 628.473 45.3452 629.929 45.3452C631.404 45.3452 632.632 45.68 633.612 46.3498C634.602 47.0098 635.374 47.9368 635.927 49.1307H636.16C636.733 47.9756 637.592 47.0584 638.737 46.3789C639.883 45.6897 641.256 45.3452 642.858 45.3452C644.857 45.3452 646.493 45.9712 647.764 47.2234C649.036 48.4658 649.671 50.4022 649.671 53.0327V68H646.235V53.0327C646.235 51.3826 645.784 50.2032 644.881 49.4947C643.979 48.7861 642.916 48.4318 641.693 48.4318C640.12 48.4318 638.902 48.9074 638.038 49.8587C637.174 50.8002 636.742 51.9941 636.742 53.4403V68H633.248V52.6832C633.248 51.4117 632.836 50.3877 632.011 49.6112C631.186 48.8249 630.123 48.4318 628.822 48.4318C627.929 48.4318 627.094 48.6696 626.318 49.1452C625.551 49.6209 624.93 50.2809 624.454 51.1254C623.988 51.9601 623.755 52.9259 623.755 54.0227V68H620.319ZM665.33 68.4659C663.176 68.4659 661.317 67.9903 659.754 67.0391C658.201 66.0781 657.002 64.7386 656.158 63.0206C655.323 61.2929 654.906 59.2836 654.906 56.9929C654.906 54.7022 655.323 52.6832 656.158 50.9361C657.002 49.1792 658.177 47.8106 659.681 46.8303C661.195 45.8402 662.962 45.3452 664.981 45.3452C666.146 45.3452 667.296 45.5393 668.432 45.9276C669.567 46.3158 670.601 46.9467 671.533 47.8203C672.465 48.6842 673.207 49.8295 673.76 51.2564C674.314 52.6832 674.59 54.4401 674.59 56.527V57.983H657.352V55.0128H671.096C671.096 53.7509 670.844 52.625 670.339 51.6349C669.844 50.6449 669.135 49.8635 668.213 49.2908C667.301 48.7182 666.223 48.4318 664.981 48.4318C663.612 48.4318 662.428 48.7715 661.428 49.451C660.438 50.1207 659.676 50.9943 659.143 52.0717C658.609 53.1491 658.342 54.3042 658.342 55.5369V57.517C658.342 59.206 658.633 60.6377 659.215 61.8121C659.807 62.9769 660.628 63.8651 661.676 64.4766C662.724 65.0784 663.942 65.3793 665.33 65.3793C666.233 65.3793 667.048 65.2531 667.776 65.0007C668.514 64.7386 669.15 64.3504 669.684 63.8359C670.218 63.3118 670.63 62.6615 670.921 61.8849L674.241 62.8168C673.891 63.9427 673.304 64.9328 672.479 65.7869C671.654 66.6314 670.635 67.2914 669.422 67.767C668.208 68.233 666.845 68.4659 665.33 68.4659ZM683.253 54.5469V68H679.817V45.6364H683.137V49.1307H683.428C683.952 47.995 684.748 47.0826 685.816 46.3935C686.884 45.6946 688.262 45.3452 689.951 45.3452C691.465 45.3452 692.79 45.6558 693.926 46.277C695.061 46.8885 695.944 47.8203 696.575 49.0724C697.206 50.3149 697.522 51.8873 697.522 53.7898V68H694.086V54.0227C694.086 52.2659 693.63 50.8973 692.717 49.9169C691.805 48.9268 690.553 48.4318 688.961 48.4318C687.864 48.4318 686.884 48.6696 686.02 49.1452C685.165 49.6209 684.491 50.3149 683.996 51.2273C683.501 52.1397 683.253 53.2462 683.253 54.5469ZM713.527 45.6364V48.5483H701.937V45.6364H713.527ZM705.315 40.2784H708.751V61.5938C708.751 62.5644 708.892 63.2924 709.173 63.7777C709.464 64.2533 709.833 64.5736 710.28 64.7386C710.736 64.8939 711.216 64.9716 711.721 64.9716C712.1 64.9716 712.41 64.9522 712.653 64.9134C712.896 64.8648 713.09 64.826 713.235 64.7969L713.934 67.8835C713.701 67.9709 713.376 68.0582 712.959 68.1456C712.541 68.2427 712.012 68.2912 711.372 68.2912C710.401 68.2912 709.45 68.0825 708.518 67.6651C707.596 67.2478 706.829 66.612 706.218 65.7578C705.616 64.9036 705.315 63.8262 705.315 62.5256V40.2784ZM734.136 50.6449L731.049 51.5185C730.855 51.004 730.569 50.5041 730.19 50.0188C729.821 49.5238 729.316 49.1161 728.676 48.7958C728.035 48.4755 727.215 48.3153 726.215 48.3153C724.847 48.3153 723.706 48.6308 722.794 49.2617C721.891 49.8829 721.44 50.674 721.44 51.6349C721.44 52.4891 721.75 53.1637 722.371 53.6587C722.993 54.1538 723.963 54.5663 725.283 54.8963L728.603 55.7116C730.603 56.197 732.092 56.9395 733.073 57.9393C734.053 58.9293 734.543 60.2057 734.543 61.7685C734.543 63.0497 734.175 64.1951 733.437 65.2045C732.709 66.214 731.69 67.0099 730.379 67.5923C729.069 68.1747 727.545 68.4659 725.808 68.4659C723.527 68.4659 721.639 67.9709 720.144 66.9808C718.649 65.9908 717.703 64.5445 717.305 62.642L720.566 61.8267C720.877 63.0303 721.464 63.933 722.328 64.5348C723.201 65.1366 724.342 65.4375 725.749 65.4375C727.351 65.4375 728.622 65.0978 729.564 64.4183C730.515 63.7292 730.991 62.9041 730.991 61.9432C730.991 61.1667 730.719 60.5163 730.175 59.9922C729.632 59.4583 728.797 59.0604 727.671 58.7983L723.944 57.9247C721.896 57.4394 720.391 56.6871 719.43 55.668C718.479 54.6391 718.004 53.353 718.004 51.8097C718.004 50.5478 718.358 49.4316 719.066 48.4609C719.785 47.4903 720.76 46.7283 721.993 46.1751C723.235 45.6218 724.643 45.3452 726.215 45.3452C728.428 45.3452 730.166 45.8305 731.428 46.8011C732.699 47.7718 733.602 49.053 734.136 50.6449Z\"\r\n fill=\"white\"\r\n />\r\n <path d=\"M263.429 76.1534H736.582V78.9489H263.429V76.1534Z\" fill=\"white\" />\r\n <path\r\n id=\"Foundations and Operating Arena\"\r\n d=\"M224.578 147V121.545H239.84V124.28H227.66V132.881H238.697V135.615H227.66V147H224.578ZM251.076 147.398C249.353 147.398 247.84 146.988 246.54 146.167C245.247 145.347 244.236 144.199 243.507 142.724C242.786 141.25 242.426 139.526 242.426 137.554C242.426 135.565 242.786 133.829 243.507 132.346C244.236 130.863 245.247 129.711 246.54 128.891C247.84 128.071 249.353 127.661 251.076 127.661C252.8 127.661 254.308 128.071 255.6 128.891C256.901 129.711 257.912 130.863 258.633 132.346C259.362 133.829 259.727 135.565 259.727 137.554C259.727 139.526 259.362 141.25 258.633 142.724C257.912 144.199 256.901 145.347 255.6 146.167C254.308 146.988 252.8 147.398 251.076 147.398ZM251.076 144.763C252.385 144.763 253.462 144.427 254.308 143.756C255.153 143.085 255.778 142.202 256.184 141.109C256.59 140.015 256.793 138.83 256.793 137.554C256.793 136.278 256.59 135.089 256.184 133.987C255.778 132.885 255.153 131.994 254.308 131.315C253.462 130.635 252.385 130.295 251.076 130.295C249.767 130.295 248.69 130.635 247.845 131.315C246.999 131.994 246.374 132.885 245.968 133.987C245.562 135.089 245.359 136.278 245.359 137.554C245.359 138.83 245.562 140.015 245.968 141.109C246.374 142.202 246.999 143.085 247.845 143.756C248.69 144.427 249.767 144.763 251.076 144.763ZM276.235 139.195V127.909H279.169V147H276.235V143.768H276.037C275.589 144.738 274.893 145.562 273.949 146.242C273.004 146.913 271.811 147.249 270.369 147.249C269.176 147.249 268.115 146.988 267.187 146.466C266.259 145.935 265.53 145.14 265 144.079C264.469 143.01 264.204 141.664 264.204 140.04V127.909H267.137V139.841C267.137 141.233 267.527 142.343 268.306 143.172C269.093 144 270.096 144.415 271.314 144.415C272.043 144.415 272.784 144.228 273.538 143.855C274.301 143.483 274.939 142.911 275.452 142.14C275.974 141.37 276.235 140.388 276.235 139.195ZM287.474 135.516V147H284.541V127.909H287.375V130.892H287.623C288.071 129.923 288.75 129.144 289.662 128.555C290.573 127.959 291.75 127.661 293.192 127.661C294.484 127.661 295.615 127.926 296.585 128.456C297.554 128.978 298.308 129.773 298.847 130.842C299.385 131.903 299.655 133.245 299.655 134.869V147H296.722V135.068C296.722 133.568 296.332 132.4 295.553 131.563C294.774 130.718 293.705 130.295 292.347 130.295C291.41 130.295 290.573 130.498 289.836 130.904C289.107 131.31 288.531 131.903 288.108 132.682C287.686 133.461 287.474 134.405 287.474 135.516ZM312.224 147.398C310.633 147.398 309.228 146.996 308.01 146.192C306.792 145.38 305.839 144.237 305.151 142.762C304.464 141.279 304.12 139.526 304.12 137.504C304.12 135.499 304.464 133.759 305.151 132.284C305.839 130.809 306.796 129.67 308.023 128.866C309.249 128.062 310.666 127.661 312.273 127.661C313.516 127.661 314.498 127.868 315.219 128.282C315.948 128.688 316.503 129.152 316.884 129.674C317.274 130.188 317.576 130.61 317.792 130.942H318.04V121.545H320.974V147H318.14V144.067H317.792C317.576 144.415 317.27 144.854 316.872 145.384C316.474 145.906 315.907 146.374 315.169 146.789C314.432 147.195 313.45 147.398 312.224 147.398ZM312.621 144.763C313.798 144.763 314.792 144.456 315.604 143.843C316.416 143.222 317.034 142.364 317.456 141.27C317.879 140.168 318.09 138.896 318.09 137.455C318.09 136.029 317.883 134.782 317.469 133.713C317.054 132.636 316.441 131.799 315.629 131.203C314.817 130.598 313.814 130.295 312.621 130.295C311.378 130.295 310.343 130.614 309.514 131.252C308.694 131.882 308.076 132.74 307.662 133.825C307.256 134.902 307.053 136.112 307.053 137.455C307.053 138.813 307.26 140.048 307.675 141.158C308.097 142.26 308.719 143.139 309.539 143.793C310.367 144.44 311.395 144.763 312.621 144.763ZM332.371 147.447C331.161 147.447 330.063 147.22 329.077 146.764C328.091 146.3 327.308 145.633 326.728 144.763C326.148 143.884 325.858 142.824 325.858 141.581C325.858 140.487 326.074 139.601 326.504 138.921C326.935 138.233 327.511 137.695 328.232 137.305C328.953 136.916 329.748 136.626 330.618 136.435C331.497 136.237 332.379 136.079 333.266 135.963C334.426 135.814 335.366 135.702 336.087 135.627C336.816 135.545 337.347 135.408 337.678 135.217C338.018 135.027 338.188 134.695 338.188 134.223V134.124C338.188 132.897 337.852 131.944 337.181 131.265C336.518 130.585 335.511 130.246 334.161 130.246C332.76 130.246 331.662 130.552 330.867 131.165C330.072 131.779 329.512 132.433 329.189 133.129L326.405 132.135C326.902 130.975 327.565 130.072 328.394 129.425C329.231 128.771 330.142 128.315 331.128 128.058C332.122 127.793 333.1 127.661 334.061 127.661C334.674 127.661 335.379 127.735 336.174 127.884C336.978 128.025 337.753 128.319 338.498 128.767C339.252 129.214 339.878 129.889 340.375 130.793C340.872 131.696 341.121 132.906 341.121 134.422V147H338.188V144.415H338.039C337.84 144.829 337.508 145.272 337.044 145.745C336.58 146.217 335.963 146.619 335.192 146.95C334.422 147.282 333.481 147.447 332.371 147.447ZM332.818 144.812C333.978 144.812 334.956 144.585 335.752 144.129C336.555 143.673 337.16 143.085 337.566 142.364C337.981 141.643 338.188 140.885 338.188 140.089V137.405C338.063 137.554 337.79 137.691 337.367 137.815C336.953 137.931 336.472 138.035 335.926 138.126C335.387 138.209 334.861 138.283 334.347 138.349C333.842 138.407 333.432 138.457 333.117 138.499C332.354 138.598 331.642 138.76 330.979 138.983C330.324 139.199 329.794 139.526 329.388 139.965C328.99 140.396 328.791 140.984 328.791 141.73C328.791 142.749 329.168 143.52 329.922 144.042C330.685 144.556 331.65 144.812 332.818 144.812ZM354.777 127.909V130.395H344.884V127.909H354.777ZM347.767 123.335H350.701V141.531C350.701 142.36 350.821 142.981 351.061 143.396C351.31 143.802 351.624 144.075 352.006 144.216C352.395 144.348 352.805 144.415 353.236 144.415C353.559 144.415 353.824 144.398 354.032 144.365C354.239 144.324 354.404 144.29 354.529 144.266L355.125 146.901C354.926 146.975 354.649 147.05 354.293 147.124C353.936 147.207 353.485 147.249 352.938 147.249C352.109 147.249 351.297 147.07 350.502 146.714C349.715 146.358 349.06 145.815 348.538 145.086C348.024 144.357 347.767 143.437 347.767 142.327V123.335ZM359.19 147V127.909H362.123V147H359.19ZM360.681 124.727C360.109 124.727 359.616 124.533 359.202 124.143C358.796 123.754 358.593 123.286 358.593 122.739C358.593 122.192 358.796 121.724 359.202 121.334C359.616 120.945 360.109 120.75 360.681 120.75C361.253 120.75 361.742 120.945 362.148 121.334C362.562 121.724 362.769 122.192 362.769 122.739C362.769 123.286 362.562 123.754 362.148 124.143C361.742 124.533 361.253 124.727 360.681 124.727ZM375.251 147.398C373.527 147.398 372.015 146.988 370.714 146.167C369.422 145.347 368.411 144.199 367.682 142.724C366.961 141.25 366.6 139.526 366.6 137.554C366.6 135.565 366.961 133.829 367.682 132.346C368.411 130.863 369.422 129.711 370.714 128.891C372.015 128.071 373.527 127.661 375.251 127.661C376.974 127.661 378.482 128.071 379.775 128.891C381.076 129.711 382.087 130.863 382.808 132.346C383.537 133.829 383.901 135.565 383.901 137.554C383.901 139.526 383.537 141.25 382.808 142.724C382.087 144.199 381.076 145.347 379.775 146.167C378.482 146.988 376.974 147.398 375.251 147.398ZM375.251 144.763C376.56 144.763 377.637 144.427 378.482 143.756C379.328 143.085 379.953 142.202 380.359 141.109C380.765 140.015 380.968 138.83 380.968 137.554C380.968 136.278 380.765 135.089 380.359 133.987C379.953 132.885 379.328 131.994 378.482 131.315C377.637 130.635 376.56 130.295 375.251 130.295C373.942 130.295 372.865 130.635 372.019 131.315C371.174 131.994 370.549 132.885 370.143 133.987C369.737 135.089 369.534 136.278 369.534 137.554C369.534 138.83 369.737 140.015 370.143 141.109C370.549 142.202 371.174 143.085 372.019 143.756C372.865 144.427 373.942 144.763 375.251 144.763ZM391.312 135.516V147H388.379V127.909H391.213V130.892H391.461C391.909 129.923 392.588 129.144 393.5 128.555C394.411 127.959 395.588 127.661 397.03 127.661C398.322 127.661 399.453 127.926 400.423 128.456C401.392 128.978 402.146 129.773 402.685 130.842C403.223 131.903 403.493 133.245 403.493 134.869V147H400.559V135.068C400.559 133.568 400.17 132.4 399.391 131.563C398.612 130.718 397.543 130.295 396.184 130.295C395.248 130.295 394.411 130.498 393.674 130.904C392.945 131.31 392.369 131.903 391.946 132.682C391.524 133.461 391.312 134.405 391.312 135.516ZM422.375 132.185L419.74 132.93C419.575 132.491 419.33 132.065 419.007 131.65C418.692 131.228 418.261 130.88 417.714 130.606C417.168 130.333 416.467 130.196 415.614 130.196C414.446 130.196 413.472 130.465 412.693 131.004C411.923 131.534 411.537 132.21 411.537 133.03C411.537 133.759 411.802 134.335 412.333 134.757C412.863 135.18 413.692 135.532 414.819 135.814L417.652 136.51C419.359 136.924 420.631 137.558 421.468 138.412C422.305 139.257 422.723 140.346 422.723 141.68C422.723 142.774 422.408 143.752 421.779 144.614C421.157 145.475 420.287 146.155 419.169 146.652C418.05 147.149 416.749 147.398 415.266 147.398C413.319 147.398 411.707 146.975 410.431 146.13C409.155 145.285 408.347 144.05 408.007 142.426L410.792 141.73C411.057 142.758 411.558 143.528 412.295 144.042C413.041 144.556 414.015 144.812 415.216 144.812C416.583 144.812 417.669 144.522 418.473 143.942C419.285 143.354 419.691 142.65 419.691 141.83C419.691 141.167 419.459 140.612 418.995 140.164C418.531 139.708 417.818 139.369 416.857 139.145L413.675 138.399C411.927 137.985 410.642 137.343 409.822 136.473C409.01 135.594 408.604 134.496 408.604 133.179C408.604 132.102 408.906 131.149 409.511 130.32C410.125 129.492 410.957 128.841 412.01 128.369C413.07 127.897 414.272 127.661 415.614 127.661C417.503 127.661 418.986 128.075 420.064 128.903C421.149 129.732 421.92 130.826 422.375 132.185ZM442.6 147.447C441.391 147.447 440.293 147.22 439.307 146.764C438.321 146.3 437.538 145.633 436.958 144.763C436.378 143.884 436.088 142.824 436.088 141.581C436.088 140.487 436.303 139.601 436.734 138.921C437.165 138.233 437.741 137.695 438.462 137.305C439.182 136.916 439.978 136.626 440.848 136.435C441.726 136.237 442.609 136.079 443.495 135.963C444.655 135.814 445.596 135.702 446.317 135.627C447.046 135.545 447.576 135.408 447.908 135.217C448.247 135.027 448.417 134.695 448.417 134.223V134.124C448.417 132.897 448.082 131.944 447.41 131.265C446.748 130.585 445.741 130.246 444.39 130.246C442.99 130.246 441.892 130.552 441.097 131.165C440.301 131.779 439.742 132.433 439.419 133.129L436.634 132.135C437.132 130.975 437.795 130.072 438.623 129.425C439.46 128.771 440.371 128.315 441.358 128.058C442.352 127.793 443.33 127.661 444.291 127.661C444.904 127.661 445.608 127.735 446.404 127.884C447.207 128.025 447.982 128.319 448.728 128.767C449.482 129.214 450.108 129.889 450.605 130.793C451.102 131.696 451.35 132.906 451.35 134.422V147H448.417V144.415H448.268C448.069 144.829 447.738 145.272 447.274 145.745C446.81 146.217 446.192 146.619 445.422 146.95C444.651 147.282 443.711 147.447 442.6 147.447ZM443.048 144.812C444.208 144.812 445.186 144.585 445.981 144.129C446.785 143.673 447.39 143.085 447.796 142.364C448.21 141.643 448.417 140.885 448.417 140.089V137.405C448.293 137.554 448.019 137.691 447.597 137.815C447.183 137.931 446.702 138.035 446.155 138.126C445.617 138.209 445.09 138.283 444.577 138.349C444.071 138.407 443.661 138.457 443.346 138.499C442.584 138.598 441.871 138.76 441.208 138.983C440.554 139.199 440.023 139.526 439.617 139.965C439.22 140.396 439.021 140.984 439.021 141.73C439.021 142.749 439.398 143.52 440.152 144.042C440.914 144.556 441.88 144.812 443.048 144.812ZM459.637 135.516V147H456.704V127.909H459.538V130.892H459.787C460.234 129.923 460.913 129.144 461.825 128.555C462.736 127.959 463.913 127.661 465.355 127.661C466.647 127.661 467.778 127.926 468.748 128.456C469.717 128.978 470.471 129.773 471.01 130.842C471.549 131.903 471.818 133.245 471.818 134.869V147H468.885V135.068C468.885 133.568 468.495 132.4 467.716 131.563C466.937 130.718 465.868 130.295 464.51 130.295C463.573 130.295 462.736 130.498 461.999 130.904C461.27 131.31 460.694 131.903 460.271 132.682C459.849 133.461 459.637 134.405 459.637 135.516ZM484.387 147.398C482.796 147.398 481.391 146.996 480.173 146.192C478.955 145.38 478.002 144.237 477.315 142.762C476.627 141.279 476.283 139.526 476.283 137.504C476.283 135.499 476.627 133.759 477.315 132.284C478.002 130.809 478.959 129.67 480.186 128.866C481.412 128.062 482.829 127.661 484.436 127.661C485.679 127.661 486.661 127.868 487.382 128.282C488.111 128.688 488.666 129.152 489.047 129.674C489.437 130.188 489.739 130.61 489.955 130.942H490.203V121.545H493.137V147H490.303V144.067H489.955C489.739 144.415 489.433 144.854 489.035 145.384C488.637 145.906 488.07 146.374 487.332 146.789C486.595 147.195 485.613 147.398 484.387 147.398ZM484.784 144.763C485.961 144.763 486.955 144.456 487.767 143.843C488.579 143.222 489.197 142.364 489.619 141.27C490.042 140.168 490.253 138.896 490.253 137.455C490.253 136.029 490.046 134.782 489.632 133.713C489.217 132.636 488.604 131.799 487.792 131.203C486.98 130.598 485.978 130.295 484.784 130.295C483.541 130.295 482.506 130.614 481.677 131.252C480.857 131.882 480.239 132.74 479.825 133.825C479.419 134.902 479.216 136.112 479.216 137.455C479.216 138.813 479.423 140.048 479.838 141.158C480.26 142.26 480.882 143.139 481.702 143.793C482.531 144.44 483.558 144.763 484.784 144.763ZM530.635 134.273C530.635 136.957 530.15 139.277 529.181 141.233C528.211 143.188 526.881 144.696 525.191 145.757C523.501 146.818 521.57 147.348 519.399 147.348C517.228 147.348 515.297 146.818 513.607 145.757C511.917 144.696 510.587 143.188 509.617 141.233C508.648 139.277 508.163 136.957 508.163 134.273C508.163 131.588 508.648 129.268 509.617 127.312C510.587 125.357 511.917 123.849 513.607 122.788C515.297 121.728 517.228 121.197 519.399 121.197C521.57 121.197 523.501 121.728 525.191 122.788C526.881 123.849 528.211 125.357 529.181 127.312C530.15 129.268 530.635 131.588 530.635 134.273ZM527.652 134.273C527.652 132.069 527.283 130.208 526.546 128.692C525.817 127.176 524.826 126.028 523.575 125.249C522.332 124.47 520.94 124.081 519.399 124.081C517.858 124.081 516.462 124.47 515.21 125.249C513.968 126.028 512.977 127.176 512.24 128.692C511.511 130.208 511.146 132.069 511.146 134.273C511.146 136.477 511.511 138.337 512.24 139.853C512.977 141.37 513.968 142.517 515.21 143.296C516.462 144.075 517.858 144.464 519.399 144.464C520.94 144.464 522.332 144.075 523.575 143.296C524.826 142.517 525.817 141.37 526.546 139.853C527.283 138.337 527.652 136.477 527.652 134.273ZM535.42 154.159V127.909H538.254V130.942H538.602C538.817 130.61 539.116 130.188 539.497 129.674C539.886 129.152 540.441 128.688 541.162 128.282C541.891 127.868 542.877 127.661 544.12 127.661C545.728 127.661 547.145 128.062 548.371 128.866C549.597 129.67 550.554 130.809 551.242 132.284C551.93 133.759 552.274 135.499 552.274 137.504C552.274 139.526 551.93 141.279 551.242 142.762C550.554 144.237 549.601 145.38 548.383 146.192C547.165 146.996 545.761 147.398 544.17 147.398C542.944 147.398 541.962 147.195 541.224 146.789C540.487 146.374 539.919 145.906 539.522 145.384C539.124 144.854 538.817 144.415 538.602 144.067H538.353V154.159H535.42ZM538.304 137.455C538.304 138.896 538.515 140.168 538.937 141.27C539.36 142.364 539.977 143.222 540.789 143.843C541.601 144.456 542.596 144.763 543.772 144.763C544.999 144.763 546.022 144.44 546.842 143.793C547.671 143.139 548.292 142.26 548.707 141.158C549.129 140.048 549.34 138.813 549.34 137.455C549.34 136.112 549.133 134.902 548.719 133.825C548.313 132.74 547.696 131.882 546.867 131.252C546.047 130.614 545.015 130.295 543.772 130.295C542.579 130.295 541.576 130.598 540.764 131.203C539.952 131.799 539.339 132.636 538.925 133.713C538.511 134.782 538.304 136.029 538.304 137.455ZM564.752 147.398C562.913 147.398 561.326 146.992 559.992 146.18C558.666 145.359 557.643 144.216 556.922 142.749C556.21 141.274 555.853 139.559 555.853 137.604C555.853 135.648 556.21 133.925 556.922 132.433C557.643 130.933 558.646 129.765 559.93 128.928C561.223 128.083 562.731 127.661 564.454 127.661C565.448 127.661 566.43 127.826 567.4 128.158C568.369 128.489 569.252 129.028 570.047 129.773C570.843 130.511 571.476 131.489 571.949 132.707C572.421 133.925 572.657 135.424 572.657 137.206V138.449H557.941V135.913H569.674C569.674 134.836 569.459 133.875 569.028 133.03C568.605 132.185 568.001 131.518 567.213 131.029C566.434 130.54 565.515 130.295 564.454 130.295C563.286 130.295 562.275 130.585 561.421 131.165C560.576 131.737 559.926 132.483 559.47 133.403C559.014 134.322 558.786 135.308 558.786 136.361V138.051C558.786 139.493 559.035 140.715 559.532 141.718C560.038 142.712 560.738 143.47 561.633 143.992C562.528 144.506 563.568 144.763 564.752 144.763C565.523 144.763 566.219 144.655 566.84 144.44C567.47 144.216 568.013 143.884 568.469 143.445C568.924 142.998 569.277 142.443 569.525 141.78L572.359 142.575C572.061 143.536 571.559 144.382 570.855 145.111C570.151 145.832 569.281 146.395 568.245 146.801C567.209 147.199 566.045 147.398 564.752 147.398ZM577.119 147V127.909H579.953V130.793H580.152C580.5 129.848 581.13 129.082 582.041 128.493C582.953 127.905 583.98 127.611 585.123 127.611C585.339 127.611 585.608 127.615 585.931 127.623C586.255 127.632 586.499 127.644 586.665 127.661V130.643C586.565 130.619 586.337 130.581 585.981 130.532C585.633 130.474 585.264 130.445 584.875 130.445C583.947 130.445 583.118 130.639 582.389 131.029C581.668 131.41 581.097 131.94 580.674 132.62C580.26 133.291 580.052 134.057 580.052 134.919V147H577.119ZM595.76 147.447C594.55 147.447 593.452 147.22 592.466 146.764C591.48 146.3 590.697 145.633 590.117 144.763C589.537 143.884 589.247 142.824 589.247 141.581C589.247 140.487 589.462 139.601 589.893 138.921C590.324 138.233 590.9 137.695 591.621 137.305C592.342 136.916 593.137 136.626 594.007 136.435C594.885 136.237 595.768 136.079 596.654 135.963C597.815 135.814 598.755 135.702 599.476 135.627C600.205 135.545 600.735 135.408 601.067 135.217C601.406 135.027 601.576 134.695 601.576 134.223V134.124C601.576 132.897 601.241 131.944 600.57 131.265C599.907 130.585 598.9 130.246 597.549 130.246C596.149 130.246 595.051 130.552 594.256 131.165C593.46 131.779 592.901 132.433 592.578 133.129L589.794 132.135C590.291 130.975 590.954 130.072 591.782 129.425C592.619 128.771 593.531 128.315 594.517 128.058C595.511 127.793 596.489 127.661 597.45 127.661C598.063 127.661 598.767 127.735 599.563 127.884C600.367 128.025 601.141 128.319 601.887 128.767C602.641 129.214 603.267 129.889 603.764 130.793C604.261 131.696 604.51 132.906 604.51 134.422V147H601.576V144.415H601.427C601.228 144.829 600.897 145.272 600.433 145.745C599.969 146.217 599.352 146.619 598.581 146.95C597.81 147.282 596.87 147.447 595.76 147.447ZM596.207 144.812C597.367 144.812 598.345 144.585 599.14 144.129C599.944 143.673 600.549 143.085 600.955 142.364C601.369 141.643 601.576 140.885 601.576 140.089V137.405C601.452 137.554 601.179 137.691 600.756 137.815C600.342 137.931 599.861 138.035 599.314 138.126C598.776 138.209 598.25 138.283 597.736 138.349C597.23 138.407 596.82 138.457 596.505 138.499C595.743 138.598 595.03 138.76 594.368 138.983C593.713 139.199 593.183 139.526 592.777 139.965C592.379 140.396 592.18 140.984 592.18 141.73C592.18 142.749 592.557 143.52 593.311 144.042C594.073 144.556 595.039 144.812 596.207 144.812ZM618.166 127.909V130.395H608.272V127.909H618.166ZM611.156 123.335H614.089V141.531C614.089 142.36 614.209 142.981 614.45 143.396C614.698 143.802 615.013 144.075 615.394 144.216C615.784 144.348 616.194 144.415 616.625 144.415C616.948 144.415 617.213 144.398 617.42 144.365C617.627 144.324 617.793 144.29 617.917 144.266L618.514 146.901C618.315 146.975 618.037 147.05 617.681 147.124C617.325 147.207 616.873 147.249 616.326 147.249C615.498 147.249 614.686 147.07 613.89 146.714C613.103 146.358 612.449 145.815 611.927 145.086C611.413 144.357 611.156 143.437 611.156 142.327V123.335ZM622.578 147V127.909H625.511V147H622.578ZM624.07 124.727C623.498 124.727 623.005 124.533 622.591 124.143C622.185 123.754 621.982 123.286 621.982 122.739C621.982 122.192 622.185 121.724 622.591 121.334C623.005 120.945 623.498 120.75 624.07 120.75C624.641 120.75 625.13 120.945 625.536 121.334C625.951 121.724 626.158 122.192 626.158 122.739C626.158 123.286 625.951 123.754 625.536 124.143C625.13 124.533 624.641 124.727 624.07 124.727ZM633.817 135.516V147H630.884V127.909H633.718V130.892H633.966C634.414 129.923 635.093 129.144 636.005 128.555C636.916 127.959 638.093 127.661 639.534 127.661C640.827 127.661 641.958 127.926 642.928 128.456C643.897 128.978 644.651 129.773 645.19 130.842C645.728 131.903 645.998 133.245 645.998 134.869V147H643.064V135.068C643.064 133.568 642.675 132.4 641.896 131.563C641.117 130.718 640.048 130.295 638.689 130.295C637.753 130.295 636.916 130.498 636.179 130.904C635.449 131.31 634.874 131.903 634.451 132.682C634.028 133.461 633.817 134.405 633.817 135.516ZM659.063 154.557C657.647 154.557 656.429 154.375 655.409 154.01C654.39 153.654 653.541 153.181 652.861 152.593C652.19 152.013 651.656 151.392 651.258 150.729L653.595 149.088C653.86 149.436 654.195 149.834 654.601 150.281C655.007 150.737 655.563 151.131 656.267 151.462C656.98 151.802 657.912 151.972 659.063 151.972C660.605 151.972 661.877 151.599 662.879 150.853C663.882 150.107 664.383 148.939 664.383 147.348V143.47H664.134C663.919 143.818 663.612 144.249 663.215 144.763C662.825 145.268 662.262 145.72 661.524 146.118C660.795 146.507 659.809 146.702 658.566 146.702C657.025 146.702 655.641 146.337 654.415 145.608C653.197 144.879 652.232 143.818 651.519 142.426C650.815 141.034 650.463 139.344 650.463 137.355C650.463 135.4 650.806 133.697 651.494 132.247C652.182 130.788 653.139 129.662 654.365 128.866C655.592 128.062 657.009 127.661 658.616 127.661C659.859 127.661 660.845 127.868 661.574 128.282C662.312 128.688 662.875 129.152 663.264 129.674C663.662 130.188 663.969 130.61 664.184 130.942H664.483V127.909H667.316V147.547C667.316 149.188 666.943 150.522 666.198 151.549C665.46 152.585 664.466 153.343 663.215 153.824C661.972 154.312 660.588 154.557 659.063 154.557ZM658.964 144.067C660.141 144.067 661.135 143.797 661.947 143.259C662.759 142.72 663.376 141.946 663.799 140.935C664.222 139.924 664.433 138.714 664.433 137.305C664.433 135.93 664.226 134.716 663.811 133.664C663.397 132.611 662.784 131.787 661.972 131.19C661.16 130.594 660.157 130.295 658.964 130.295C657.721 130.295 656.685 130.61 655.857 131.24C655.036 131.87 654.419 132.715 654.005 133.776C653.599 134.836 653.396 136.013 653.396 137.305C653.396 138.631 653.603 139.804 654.017 140.823C654.44 141.834 655.061 142.629 655.882 143.209C656.71 143.781 657.738 144.067 658.964 144.067ZM683.971 147H680.74L690.086 121.545H693.268L702.615 147H699.383L691.777 125.572H691.578L683.971 147ZM685.164 137.057H698.19V139.791H685.164V137.057ZM706.182 147V127.909H709.016V130.793H709.214C709.562 129.848 710.192 129.082 711.104 128.493C712.015 127.905 713.043 127.611 714.186 127.611C714.401 127.611 714.671 127.615 714.994 127.623C715.317 127.632 715.561 127.644 715.727 127.661V130.643C715.628 130.619 715.4 130.581 715.044 130.532C714.696 130.474 714.327 130.445 713.937 130.445C713.009 130.445 712.181 130.639 711.452 131.029C710.731 131.41 710.159 131.94 709.736 132.62C709.322 133.291 709.115 134.057 709.115 134.919V147H706.182ZM726.627 147.398C724.788 147.398 723.201 146.992 721.867 146.18C720.541 145.359 719.518 144.216 718.797 142.749C718.085 141.274 717.728 139.559 717.728 137.604C717.728 135.648 718.085 133.925 718.797 132.433C719.518 130.933 720.521 129.765 721.805 128.928C723.098 128.083 724.606 127.661 726.329 127.661C727.323 127.661 728.305 127.826 729.275 128.158C730.244 128.489 731.127 129.028 731.922 129.773C732.718 130.511 733.351 131.489 733.824 132.707C734.296 133.925 734.532 135.424 734.532 137.206V138.449H719.816V135.913H731.549C731.549 134.836 731.334 133.875 730.903 133.03C730.48 132.185 729.876 131.518 729.088 131.029C728.309 130.54 727.39 130.295 726.329 130.295C725.161 130.295 724.15 130.585 723.296 131.165C722.451 131.737 721.801 132.483 721.345 133.403C720.889 134.322 720.661 135.308 720.661 136.361V138.051C720.661 139.493 720.91 140.715 721.407 141.718C721.913 142.712 722.613 143.47 723.508 143.992C724.403 144.506 725.443 144.763 726.627 144.763C727.398 144.763 728.094 144.655 728.715 144.44C729.345 144.216 729.888 143.884 730.344 143.445C730.799 142.998 731.152 142.443 731.4 141.78L734.234 142.575C733.936 143.536 733.434 144.382 732.73 145.111C732.026 145.832 731.156 146.395 730.12 146.801C729.084 147.199 727.92 147.398 726.627 147.398ZM741.927 135.516V147H738.994V127.909H741.828V130.892H742.077C742.524 129.923 743.204 129.144 744.115 128.555C745.026 127.959 746.203 127.661 747.645 127.661C748.937 127.661 750.068 127.926 751.038 128.456C752.007 128.978 752.761 129.773 753.3 130.842C753.839 131.903 754.108 133.245 754.108 134.869V147H751.175V135.068C751.175 133.568 750.785 132.4 750.006 131.563C749.227 130.718 748.159 130.295 746.8 130.295C745.863 130.295 745.026 130.498 744.289 130.904C743.56 131.31 742.984 131.903 742.561 132.682C742.139 133.461 741.927 134.405 741.927 135.516ZM765.086 147.447C763.876 147.447 762.778 147.22 761.792 146.764C760.806 146.3 760.023 145.633 759.443 144.763C758.863 143.884 758.573 142.824 758.573 141.581C758.573 140.487 758.788 139.601 759.219 138.921C759.65 138.233 760.226 137.695 760.947 137.305C761.668 136.916 762.463 136.626 763.333 136.435C764.212 136.237 765.094 136.079 765.981 135.963C767.141 135.814 768.081 135.702 768.802 135.627C769.531 135.545 770.061 135.408 770.393 135.217C770.733 135.027 770.903 134.695 770.903 134.223V134.124C770.903 132.897 770.567 131.944 769.896 131.265C769.233 130.585 768.226 130.246 766.876 130.246C765.475 130.246 764.377 130.552 763.582 131.165C762.786 131.779 762.227 132.433 761.904 133.129L759.12 132.135C759.617 130.975 760.28 130.072 761.108 129.425C761.945 128.771 762.857 128.315 763.843 128.058C764.837 127.793 765.815 127.661 766.776 127.661C767.389 127.661 768.094 127.735 768.889 127.884C769.693 128.025 770.468 128.319 771.213 128.767C771.967 129.214 772.593 129.889 773.09 130.793C773.587 131.696 773.836 132.906 773.836 134.422V147H770.903V144.415H770.753C770.555 144.829 770.223 145.272 769.759 145.745C769.295 146.217 768.678 146.619 767.907 146.95C767.137 147.282 766.196 147.447 765.086 147.447ZM765.533 144.812C766.693 144.812 767.671 144.585 768.466 144.129C769.27 143.673 769.875 143.085 770.281 142.364C770.695 141.643 770.903 140.885 770.903 140.089V137.405C770.778 137.554 770.505 137.691 770.082 137.815C769.668 137.931 769.187 138.035 768.64 138.126C768.102 138.209 767.576 138.283 767.062 138.349C766.557 138.407 766.146 138.457 765.831 138.499C765.069 138.598 764.357 138.76 763.694 138.983C763.039 139.199 762.509 139.526 762.103 139.965C761.705 140.396 761.506 140.984 761.506 141.73C761.506 142.749 761.883 143.52 762.637 144.042C763.4 144.556 764.365 144.812 765.533 144.812Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <g id=\"Arrows\" onClick={ClickHandler(\"Arrows\")}>\r\n <path\r\n id=\"Vector 5\"\r\n d=\"M2418.77 660.232C2417.79 659.256 2416.21 659.256 2415.23 660.232L2399.32 676.142C2398.35 677.118 2398.35 678.701 2399.32 679.678C2400.3 680.654 2401.88 680.654 2402.86 679.678L2417 665.536L2431.14 679.678C2432.12 680.654 2433.7 680.654 2434.68 679.678C2435.65 678.701 2435.65 677.118 2434.68 676.142L2418.77 660.232ZM1953.77 660.232C1952.79 659.256 1951.21 659.256 1950.23 660.232L1934.32 676.142C1933.35 677.118 1933.35 678.701 1934.32 679.678C1935.3 680.654 1936.88 680.654 1937.86 679.678L1952 665.536L1966.14 679.678C1967.12 680.654 1968.7 680.654 1969.68 679.678C1970.65 678.701 1970.65 677.118 1969.68 676.142L1953.77 660.232ZM2188.5 756C2188.5 747.043 2191.79 740.827 2197.47 736.35C2203.3 731.763 2211.83 728.861 2222.5 727.118C2243.88 723.627 2272.41 724.976 2301.48 725.199C2330.3 725.42 2359.63 724.527 2381.78 716.239C2392.92 712.074 2402.39 705.988 2409.07 697.104C2415.77 688.199 2419.5 676.696 2419.5 662H2414.5C2414.5 675.813 2411.01 686.208 2405.08 694.099C2399.13 702.011 2390.55 707.619 2380.03 711.556C2358.87 719.474 2330.45 720.421 2301.52 720.199C2272.84 719.979 2243.62 718.602 2221.69 722.184C2210.7 723.978 2201.19 727.062 2194.38 732.421C2187.43 737.89 2183.5 745.581 2183.5 756H2188.5ZM2188.5 756C2188.5 745.568 2184.51 737.875 2177.48 732.412C2170.59 727.058 2160.96 723.976 2149.84 722.183C2127.63 718.603 2098.03 719.979 2068.98 720.199C2039.68 720.421 2010.88 719.475 1989.43 711.553C1978.76 707.612 1970.07 702 1964.04 694.086C1958.03 686.196 1954.5 675.806 1954.5 662H1949.5C1949.5 676.703 1953.28 688.211 1960.07 697.117C1966.83 705.998 1976.43 712.081 1987.7 716.243C2010.12 724.527 2039.82 725.42 2069.02 725.199C2098.47 724.976 2127.37 723.627 2149.04 727.119C2159.85 728.862 2168.5 731.767 2174.41 736.359C2180.18 740.842 2183.5 747.055 2183.5 756H2188.5Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Vector 6\"\r\n d=\"M2270.77 423.268C2271.74 422.291 2271.74 420.709 2270.77 419.732L2254.86 403.822C2253.88 402.846 2252.3 402.846 2251.32 403.822C2250.35 404.799 2250.35 406.382 2251.32 407.358L2265.46 421.5L2251.32 435.642C2250.35 436.618 2250.35 438.201 2251.32 439.178C2252.3 440.154 2253.88 440.154 2254.86 439.178L2270.77 423.268ZM2097.73 419.732C2096.76 420.709 2096.76 422.291 2097.73 423.268L2113.64 439.178C2114.62 440.154 2116.2 440.154 2117.18 439.178C2118.15 438.201 2118.15 436.618 2117.18 435.642L2103.04 421.5L2117.18 407.358C2118.15 406.382 2118.15 404.799 2117.18 403.822C2116.2 402.846 2114.62 402.846 2113.64 403.822L2097.73 419.732ZM2188.5 756C2188.5 685.233 2188.41 628.993 2189.59 584.41C2190.77 539.799 2193.22 507.027 2198.26 483.142C2203.31 459.248 2210.87 444.651 2221.93 435.933C2233.01 427.208 2248.06 424 2269 424V419C2247.69 419 2231.25 422.23 2218.84 432.005C2206.42 441.787 2198.51 457.752 2193.37 482.108C2188.22 506.473 2185.77 539.638 2184.59 584.278C2183.41 628.944 2183.5 685.267 2183.5 756H2188.5ZM2188.5 756C2188.5 685.637 2188.41 629.498 2186.94 584.894C2185.47 540.317 2182.62 507.1 2177.07 482.634C2171.51 458.17 2163.17 442.084 2150.41 432.203C2137.66 422.329 2120.95 419 2099.5 419V424C2120.55 424 2135.91 427.296 2147.35 436.156C2158.78 445.009 2166.75 459.768 2172.19 483.741C2177.63 507.713 2180.47 540.526 2181.94 585.059C2183.41 629.564 2183.5 685.613 2183.5 756H2188.5Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Vector 1\"\r\n d=\"M1100.23 1167.27C1101.21 1168.24 1102.79 1168.24 1103.77 1167.27L1119.68 1151.36C1120.65 1150.38 1120.65 1148.8 1119.68 1147.82C1118.7 1146.85 1117.12 1146.85 1116.14 1147.82L1102 1161.96L1087.86 1147.82C1086.88 1146.85 1085.3 1146.85 1084.32 1147.82C1083.35 1148.8 1083.35 1150.38 1084.32 1151.36L1100.23 1167.27ZM1578.23 1167.77C1579.21 1168.74 1580.79 1168.74 1581.77 1167.77L1597.68 1151.86C1598.65 1150.88 1598.65 1149.3 1597.68 1148.32C1596.7 1147.35 1595.12 1147.35 1594.14 1148.32L1580 1162.46L1565.86 1148.32C1564.88 1147.35 1563.3 1147.35 1562.32 1148.32C1561.35 1149.3 1561.35 1150.88 1562.32 1151.86L1578.23 1167.77ZM1342.49 1090C1342.49 1098.9 1339.07 1104.77 1333.16 1108.74C1327.05 1112.85 1318.08 1115.08 1306.83 1115.97C1284.31 1117.75 1254.27 1114.11 1223.7 1111.56C1193.39 1109.03 1162.57 1107.58 1139.29 1114.08C1127.6 1117.35 1117.6 1122.69 1110.53 1131.08C1103.43 1139.51 1099.5 1150.78 1099.5 1165.5H1104.5C1104.5 1151.71 1108.16 1141.66 1114.35 1134.3C1120.57 1126.92 1129.56 1122 1140.64 1118.9C1162.92 1112.67 1192.85 1114 1223.29 1116.54C1253.47 1119.06 1284.17 1122.77 1307.22 1120.95C1318.75 1120.04 1328.76 1117.72 1335.95 1112.89C1343.32 1107.94 1347.49 1100.48 1347.49 1090H1342.49ZM1342.49 1090C1342.49 1100.44 1346.51 1107.91 1353.66 1112.89C1360.63 1117.75 1370.34 1120.09 1381.5 1121.03C1403.81 1122.9 1433.53 1119.25 1462.71 1116.79C1492.14 1114.32 1521.06 1113.05 1542.58 1119.31C1553.28 1122.43 1561.95 1127.36 1567.96 1134.75C1573.95 1142.12 1577.5 1152.19 1577.5 1166H1582.5C1582.5 1151.3 1578.7 1140.04 1571.84 1131.6C1565 1123.18 1555.31 1117.81 1543.98 1114.51C1521.43 1107.95 1491.6 1109.34 1462.29 1111.81C1432.71 1114.3 1403.68 1117.87 1381.92 1116.05C1371.05 1115.13 1362.4 1112.89 1356.52 1108.79C1350.82 1104.81 1347.49 1098.94 1347.49 1090H1342.49Z\"\r\n fill=\"#AAAAAA\"\r\n />\r\n <path\r\n id=\"Arrow 7\"\r\n d=\"M498.232 755.768C499.209 756.744 500.791 756.744 501.768 755.768L517.678 739.858C518.654 738.882 518.654 737.299 517.678 736.322C516.701 735.346 515.118 735.346 514.142 736.322L500 750.464L485.858 736.322C484.882 735.346 483.299 735.346 482.322 736.322C481.346 737.299 481.346 738.882 482.322 739.858L498.232 755.768ZM497.5 645V754H502.5V645H497.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 9\"\r\n d=\"M497.232 1200.77C498.209 1201.74 499.791 1201.74 500.768 1200.77L516.678 1184.86C517.654 1183.88 517.654 1182.3 516.678 1181.32C515.701 1180.35 514.118 1180.35 513.142 1181.32L499 1195.46L484.858 1181.32C483.882 1180.35 482.299 1180.35 481.322 1181.32C480.346 1182.3 480.346 1183.88 481.322 1184.86L497.232 1200.77ZM496.5 1090V1199H501.5V1090H496.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 10\"\r\n d=\"M698.751 1538.75C700.131 1538.75 701.251 1537.63 701.251 1536.25V1513.75C701.251 1512.37 700.131 1511.25 698.751 1511.25C697.37 1511.25 696.251 1512.37 696.251 1513.75V1533.75H676.251C674.87 1533.75 673.751 1534.87 673.751 1536.25C673.751 1537.63 674.87 1538.75 676.251 1538.75H698.751ZM610.482 1451.52L696.983 1538.02L700.518 1534.48L614.017 1447.98L610.482 1451.52Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 12\"\r\n d=\"M597.5 1835.5C597.5 1836.88 598.619 1838 600 1838H622.5C623.881 1838 625 1836.88 625 1835.5C625 1834.12 623.881 1833 622.5 1833H602.5V1813C602.5 1811.62 601.381 1810.5 600 1810.5C598.619 1810.5 597.5 1811.62 597.5 1813V1835.5ZM684.734 1747.23L598.232 1833.73L601.768 1837.27L688.269 1750.77L684.734 1747.23Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 13\"\r\n d=\"M297.5 1535.5C297.5 1536.88 298.619 1538 300 1538H322.5C323.881 1538 325 1536.88 325 1535.5C325 1534.12 323.881 1533 322.5 1533H302.5V1513C302.5 1511.62 301.381 1510.5 300 1510.5C298.619 1510.5 297.5 1511.62 297.5 1513V1535.5ZM384.734 1447.23L298.232 1533.73L301.768 1537.27L388.269 1450.77L384.734 1447.23Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 11\"\r\n d=\"M998.751 1838.75C1000.13 1838.75 1001.25 1837.63 1001.25 1836.25V1813.75C1001.25 1812.37 1000.13 1811.25 998.751 1811.25C997.37 1811.25 996.251 1812.37 996.251 1813.75V1833.75H976.251C974.87 1833.75 973.751 1834.87 973.751 1836.25C973.751 1837.63 974.87 1838.75 976.251 1838.75H998.751ZM910.482 1751.52L996.983 1838.02L1000.52 1834.48L914.017 1747.98L910.482 1751.52Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 8\"\r\n d=\"M498.232 310.768C499.209 311.744 500.791 311.744 501.768 310.768L517.678 294.858C518.654 293.882 518.654 292.299 517.678 291.322C516.701 290.346 515.118 290.346 514.142 291.322L500 305.464L485.858 291.322C484.882 290.346 483.299 290.346 482.322 291.322C481.346 292.299 481.346 293.882 482.322 294.858L498.232 310.768ZM497.5 200V309H502.5V200H497.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 2\"\r\n d=\"M2182.23 1356.77C2183.21 1357.74 2184.79 1357.74 2185.77 1356.77L2201.68 1340.86C2202.65 1339.88 2202.65 1338.3 2201.68 1337.32C2200.7 1336.35 2199.12 1336.35 2198.14 1337.32L2184 1351.46L2169.86 1337.32C2168.88 1336.35 2167.3 1336.35 2166.32 1337.32C2165.35 1338.3 2165.35 1339.88 2166.32 1340.86L2182.23 1356.77ZM2181.5 1090V1355H2186.5V1090H2181.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 3\"\r\n d=\"M1059.77 925.768C1060.74 924.791 1060.74 923.209 1059.77 922.232L1043.86 906.322C1042.88 905.346 1041.3 905.346 1040.32 906.322C1039.35 907.299 1039.35 908.882 1040.32 909.858L1054.46 924L1040.32 938.142C1039.35 939.118 1039.35 940.701 1040.32 941.678C1041.3 942.654 1042.88 942.654 1043.86 941.678L1059.77 925.768ZM793 926.5H1058V921.5H793V926.5Z\"\r\n fill=\"black\"\r\n />\r\n <path\r\n id=\"Arrow 6\"\r\n d=\"M1895.77 925.768C1896.74 924.791 1896.74 923.209 1895.77 922.232L1879.86 906.322C1878.88 905.346 1877.3 905.346 1876.32 906.322C1875.35 907.299 1875.35 908.882 1876.32 909.858L1890.46 924L1876.32 938.142C1875.35 939.118 1875.35 940.701 1876.32 941.678C1877.3 942.654 1878.88 942.654 1879.86 941.678L1895.77 925.768ZM1629 926.5H1894V921.5H1629V926.5Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g\r\n id=\"JobsToBeDoneGraphic\"\r\n className=\"map-btn\"\r\n onClick={ClickHandler(\"JobsToBeDoneGraphic\")}\r\n >\r\n <circle id=\"Ellipse 1\" cx=\"499\" cy=\"1352\" r=\"150\" fill=\"#D9D9D9\" />\r\n <path\r\n id=\"Jobs-to-be-done\"\r\n d=\"M410.471 1318.55H413.554V1336.74C413.554 1338.37 413.255 1339.75 412.659 1340.88C412.062 1342.02 411.221 1342.88 410.136 1343.47C409.05 1344.05 407.77 1344.35 406.295 1344.35C404.903 1344.35 403.664 1344.1 402.579 1343.59C401.493 1343.08 400.64 1342.35 400.018 1341.4C399.397 1340.46 399.086 1339.33 399.086 1338.03H402.119C402.119 1338.75 402.297 1339.38 402.653 1339.92C403.018 1340.45 403.515 1340.87 404.145 1341.17C404.775 1341.46 405.491 1341.61 406.295 1341.61C407.182 1341.61 407.936 1341.43 408.557 1341.05C409.179 1340.68 409.651 1340.13 409.974 1339.41C410.306 1338.68 410.471 1337.79 410.471 1336.74V1318.55ZM427.089 1344.4C425.365 1344.4 423.853 1343.99 422.552 1343.17C421.26 1342.35 420.249 1341.2 419.52 1339.72C418.799 1338.25 418.438 1336.53 418.438 1334.55C418.438 1332.57 418.799 1330.83 419.52 1329.35C420.249 1327.86 421.26 1326.71 422.552 1325.89C423.853 1325.07 425.365 1324.66 427.089 1324.66C428.812 1324.66 430.32 1325.07 431.613 1325.89C432.914 1326.71 433.925 1327.86 434.646 1329.35C435.375 1330.83 435.739 1332.57 435.739 1334.55C435.739 1336.53 435.375 1338.25 434.646 1339.72C433.925 1341.2 432.914 1342.35 431.613 1343.17C430.32 1343.99 428.812 1344.4 427.089 1344.4ZM427.089 1341.76C428.398 1341.76 429.475 1341.43 430.32 1340.76C431.165 1340.08 431.791 1339.2 432.197 1338.11C432.603 1337.01 432.806 1335.83 432.806 1334.55C432.806 1333.28 432.603 1332.09 432.197 1330.99C431.791 1329.88 431.165 1328.99 430.32 1328.31C429.475 1327.64 428.398 1327.3 427.089 1327.3C425.78 1327.3 424.702 1327.64 423.857 1328.31C423.012 1328.99 422.386 1329.88 421.98 1330.99C421.574 1332.09 421.371 1333.28 421.371 1334.55C421.371 1335.83 421.574 1337.01 421.98 1338.11C422.386 1339.2 423.012 1340.08 423.857 1340.76C424.702 1341.43 425.78 1341.76 427.089 1341.76ZM440.615 1344V1318.55H443.548V1327.94H443.796C444.012 1327.61 444.31 1327.19 444.691 1326.67C445.081 1326.15 445.636 1325.69 446.357 1325.28C447.086 1324.87 448.072 1324.66 449.315 1324.66C450.922 1324.66 452.339 1325.06 453.566 1325.87C454.792 1326.67 455.749 1327.81 456.437 1329.28C457.124 1330.76 457.468 1332.5 457.468 1334.5C457.468 1336.53 457.124 1338.28 456.437 1339.76C455.749 1341.24 454.796 1342.38 453.578 1343.19C452.36 1344 450.956 1344.4 449.365 1344.4C448.138 1344.4 447.156 1344.19 446.419 1343.79C445.681 1343.37 445.114 1342.91 444.716 1342.38C444.318 1341.85 444.012 1341.41 443.796 1341.07H443.448V1344H440.615ZM443.498 1334.45C443.498 1335.9 443.709 1337.17 444.132 1338.27C444.555 1339.36 445.172 1340.22 445.984 1340.84C446.796 1341.46 447.79 1341.76 448.967 1341.76C450.193 1341.76 451.217 1341.44 452.037 1340.79C452.865 1340.14 453.487 1339.26 453.901 1338.16C454.324 1337.05 454.535 1335.81 454.535 1334.45C454.535 1333.11 454.328 1331.9 453.914 1330.83C453.508 1329.74 452.89 1328.88 452.062 1328.25C451.241 1327.61 450.21 1327.3 448.967 1327.3C447.774 1327.3 446.771 1327.6 445.959 1328.2C445.147 1328.8 444.534 1329.64 444.12 1330.71C443.705 1331.78 443.498 1333.03 443.498 1334.45ZM475.478 1329.18L472.843 1329.93C472.677 1329.49 472.433 1329.06 472.11 1328.65C471.795 1328.23 471.364 1327.88 470.817 1327.61C470.27 1327.33 469.57 1327.2 468.717 1327.2C467.548 1327.2 466.575 1327.47 465.796 1328C465.025 1328.53 464.64 1329.21 464.64 1330.03C464.64 1330.76 464.905 1331.33 465.435 1331.76C465.966 1332.18 466.794 1332.53 467.921 1332.81L470.755 1333.51C472.462 1333.92 473.734 1334.56 474.571 1335.41C475.407 1336.26 475.826 1337.35 475.826 1338.68C475.826 1339.77 475.511 1340.75 474.881 1341.61C474.26 1342.48 473.39 1343.15 472.271 1343.65C471.153 1344.15 469.852 1344.4 468.369 1344.4C466.421 1344.4 464.81 1343.98 463.534 1343.13C462.258 1342.28 461.45 1341.05 461.11 1339.43L463.894 1338.73C464.159 1339.76 464.661 1340.53 465.398 1341.04C466.144 1341.56 467.117 1341.81 468.319 1341.81C469.686 1341.81 470.771 1341.52 471.575 1340.94C472.387 1340.35 472.793 1339.65 472.793 1338.83C472.793 1338.17 472.561 1337.61 472.097 1337.16C471.633 1336.71 470.921 1336.37 469.959 1336.14L466.778 1335.4C465.029 1334.98 463.745 1334.34 462.925 1333.47C462.113 1332.59 461.707 1331.5 461.707 1330.18C461.707 1329.1 462.009 1328.15 462.614 1327.32C463.227 1326.49 464.06 1325.84 465.112 1325.37C466.173 1324.9 467.374 1324.66 468.717 1324.66C470.606 1324.66 472.089 1325.07 473.166 1325.9C474.252 1326.73 475.022 1327.83 475.478 1329.18ZM491.179 1331.72V1334.45H480.042V1331.72H491.179ZM504.642 1324.91V1327.39H494.749V1324.91H504.642ZM497.633 1320.34H500.566V1338.53C500.566 1339.36 500.686 1339.98 500.926 1340.4C501.175 1340.8 501.49 1341.08 501.871 1341.22C502.26 1341.35 502.67 1341.41 503.101 1341.41C503.424 1341.41 503.69 1341.4 503.897 1341.37C504.104 1341.32 504.27 1341.29 504.394 1341.27L504.991 1343.9C504.792 1343.98 504.514 1344.05 504.158 1344.12C503.801 1344.21 503.35 1344.25 502.803 1344.25C501.974 1344.25 501.162 1344.07 500.367 1343.71C499.58 1343.36 498.925 1342.82 498.403 1342.09C497.889 1341.36 497.633 1340.44 497.633 1339.33V1320.34ZM516.605 1344.4C514.882 1344.4 513.37 1343.99 512.069 1343.17C510.776 1342.35 509.765 1341.2 509.036 1339.72C508.315 1338.25 507.955 1336.53 507.955 1334.55C507.955 1332.57 508.315 1330.83 509.036 1329.35C509.765 1327.86 510.776 1326.71 512.069 1325.89C513.37 1325.07 514.882 1324.66 516.605 1324.66C518.329 1324.66 519.837 1325.07 521.13 1325.89C522.43 1326.71 523.441 1327.86 524.162 1329.35C524.891 1330.83 525.256 1332.57 525.256 1334.55C525.256 1336.53 524.891 1338.25 524.162 1339.72C523.441 1341.2 522.43 1342.35 521.13 1343.17C519.837 1343.99 518.329 1344.4 516.605 1344.4ZM516.605 1341.76C517.915 1341.76 518.992 1341.43 519.837 1340.76C520.682 1340.08 521.308 1339.2 521.714 1338.11C522.12 1337.01 522.323 1335.83 522.323 1334.55C522.323 1333.28 522.12 1332.09 521.714 1330.99C521.308 1329.88 520.682 1328.99 519.837 1328.31C518.992 1327.64 517.915 1327.3 516.605 1327.3C515.296 1327.3 514.219 1327.64 513.374 1328.31C512.529 1328.99 511.903 1329.88 511.497 1330.99C511.091 1332.09 510.888 1333.28 510.888 1334.55C510.888 1335.83 511.091 1337.01 511.497 1338.11C511.903 1339.2 512.529 1340.08 513.374 1340.76C514.219 1341.43 515.296 1341.76 516.605 1341.76ZM540.671 1331.72V1334.45H529.535V1331.72H540.671ZM546.23 1344V1318.55H549.163V1327.94H549.412C549.627 1327.61 549.925 1327.19 550.307 1326.67C550.696 1326.15 551.251 1325.69 551.972 1325.28C552.701 1324.87 553.687 1324.66 554.93 1324.66C556.538 1324.66 557.955 1325.06 559.181 1325.87C560.407 1326.67 561.364 1327.81 562.052 1329.28C562.74 1330.76 563.084 1332.5 563.084 1334.5C563.084 1336.53 562.74 1338.28 562.052 1339.76C561.364 1341.24 560.411 1342.38 559.193 1343.19C557.975 1344 556.571 1344.4 554.98 1344.4C553.754 1344.4 552.772 1344.19 552.034 1343.79C551.297 1343.37 550.729 1342.91 550.331 1342.38C549.934 1341.85 549.627 1341.41 549.412 1341.07H549.064V1344H546.23ZM549.113 1334.45C549.113 1335.9 549.325 1337.17 549.747 1338.27C550.17 1339.36 550.787 1340.22 551.599 1340.84C552.411 1341.46 553.406 1341.76 554.582 1341.76C555.808 1341.76 556.832 1341.44 557.652 1340.79C558.481 1340.14 559.102 1339.26 559.516 1338.16C559.939 1337.05 560.15 1335.81 560.15 1334.45C560.15 1333.11 559.943 1331.9 559.529 1330.83C559.123 1329.74 558.506 1328.88 557.677 1328.25C556.857 1327.61 555.825 1327.3 554.582 1327.3C553.389 1327.3 552.386 1327.6 551.574 1328.2C550.762 1328.8 550.149 1329.64 549.735 1330.71C549.321 1331.78 549.113 1333.03 549.113 1334.45ZM575.575 1344.4C573.735 1344.4 572.148 1343.99 570.814 1343.18C569.489 1342.36 568.465 1341.22 567.744 1339.75C567.032 1338.27 566.676 1336.56 566.676 1334.6C566.676 1332.65 567.032 1330.92 567.744 1329.43C568.465 1327.93 569.468 1326.77 570.752 1325.93C572.045 1325.08 573.553 1324.66 575.276 1324.66C576.271 1324.66 577.253 1324.83 578.222 1325.16C579.191 1325.49 580.074 1326.03 580.869 1326.77C581.665 1327.51 582.299 1328.49 582.771 1329.71C583.243 1330.92 583.479 1332.42 583.479 1334.21V1335.45H568.764V1332.91H580.497C580.497 1331.84 580.281 1330.87 579.85 1330.03C579.428 1329.18 578.823 1328.52 578.036 1328.03C577.257 1327.54 576.337 1327.3 575.276 1327.3C574.108 1327.3 573.097 1327.59 572.244 1328.17C571.399 1328.74 570.748 1329.48 570.292 1330.4C569.837 1331.32 569.609 1332.31 569.609 1333.36V1335.05C569.609 1336.49 569.857 1337.72 570.354 1338.72C570.86 1339.71 571.56 1340.47 572.455 1340.99C573.35 1341.51 574.39 1341.76 575.575 1341.76C576.345 1341.76 577.041 1341.66 577.663 1341.44C578.292 1341.22 578.835 1340.88 579.291 1340.45C579.747 1340 580.099 1339.44 580.347 1338.78L583.181 1339.58C582.883 1340.54 582.382 1341.38 581.677 1342.11C580.973 1342.83 580.103 1343.4 579.067 1343.8C578.031 1344.2 576.867 1344.4 575.575 1344.4ZM598.879 1331.72V1334.45H587.743V1331.72H598.879ZM467.66 1386.4C466.069 1386.4 464.665 1386 463.447 1385.19C462.229 1384.38 461.276 1383.24 460.588 1381.76C459.9 1380.28 459.556 1378.53 459.556 1376.5C459.556 1374.5 459.9 1372.76 460.588 1371.28C461.276 1369.81 462.233 1368.67 463.459 1367.87C464.685 1367.06 466.102 1366.66 467.71 1366.66C468.953 1366.66 469.935 1366.87 470.655 1367.28C471.385 1367.69 471.94 1368.15 472.321 1368.67C472.71 1369.19 473.013 1369.61 473.228 1369.94H473.477V1360.55H476.41V1386H473.576V1383.07H473.228C473.013 1383.41 472.706 1383.85 472.309 1384.38C471.911 1384.91 471.343 1385.37 470.606 1385.79C469.868 1386.19 468.886 1386.4 467.66 1386.4ZM468.058 1383.76C469.234 1383.76 470.229 1383.46 471.041 1382.84C471.853 1382.22 472.47 1381.36 472.893 1380.27C473.315 1379.17 473.527 1377.9 473.527 1376.45C473.527 1375.03 473.319 1373.78 472.905 1372.71C472.491 1371.64 471.878 1370.8 471.066 1370.2C470.254 1369.6 469.251 1369.3 468.058 1369.3C466.815 1369.3 465.779 1369.61 464.951 1370.25C464.13 1370.88 463.513 1371.74 463.099 1372.83C462.693 1373.9 462.49 1375.11 462.49 1376.45C462.49 1377.81 462.697 1379.05 463.111 1380.16C463.534 1381.26 464.155 1382.14 464.975 1382.79C465.804 1383.44 466.831 1383.76 468.058 1383.76ZM489.945 1386.4C488.222 1386.4 486.71 1385.99 485.409 1385.17C484.116 1384.35 483.105 1383.2 482.376 1381.72C481.655 1380.25 481.295 1378.53 481.295 1376.55C481.295 1374.57 481.655 1372.83 482.376 1371.35C483.105 1369.86 484.116 1368.71 485.409 1367.89C486.71 1367.07 488.222 1366.66 489.945 1366.66C491.669 1366.66 493.177 1367.07 494.469 1367.89C495.77 1368.71 496.781 1369.86 497.502 1371.35C498.231 1372.83 498.596 1374.57 498.596 1376.55C498.596 1378.53 498.231 1380.25 497.502 1381.72C496.781 1383.2 495.77 1384.35 494.469 1385.17C493.177 1385.99 491.669 1386.4 489.945 1386.4ZM489.945 1383.76C491.254 1383.76 492.332 1383.43 493.177 1382.76C494.022 1382.08 494.648 1381.2 495.054 1380.11C495.46 1379.01 495.663 1377.83 495.663 1376.55C495.663 1375.28 495.46 1374.09 495.054 1372.99C494.648 1371.88 494.022 1370.99 493.177 1370.31C492.332 1369.64 491.254 1369.3 489.945 1369.3C488.636 1369.3 487.559 1369.64 486.714 1370.31C485.869 1370.99 485.243 1371.88 484.837 1372.99C484.431 1374.09 484.228 1375.28 484.228 1376.55C484.228 1377.83 484.431 1379.01 484.837 1380.11C485.243 1381.2 485.869 1382.08 486.714 1382.76C487.559 1383.43 488.636 1383.76 489.945 1383.76ZM506.007 1374.52V1386H503.073V1366.91H505.907V1369.89H506.156C506.603 1368.92 507.283 1368.14 508.194 1367.56C509.106 1366.96 510.282 1366.66 511.724 1366.66C513.017 1366.66 514.148 1366.93 515.117 1367.46C516.086 1367.98 516.84 1368.77 517.379 1369.84C517.918 1370.9 518.187 1372.25 518.187 1373.87V1386H515.254V1374.07C515.254 1372.57 514.864 1371.4 514.085 1370.56C513.307 1369.72 512.238 1369.3 510.879 1369.3C509.942 1369.3 509.106 1369.5 508.368 1369.9C507.639 1370.31 507.063 1370.9 506.64 1371.68C506.218 1372.46 506.007 1373.41 506.007 1374.52ZM531.551 1386.4C529.712 1386.4 528.125 1385.99 526.791 1385.18C525.465 1384.36 524.442 1383.22 523.721 1381.75C523.008 1380.27 522.652 1378.56 522.652 1376.6C522.652 1374.65 523.008 1372.92 523.721 1371.43C524.442 1369.93 525.444 1368.77 526.729 1367.93C528.021 1367.08 529.529 1366.66 531.253 1366.66C532.247 1366.66 533.229 1366.83 534.199 1367.16C535.168 1367.49 536.051 1368.03 536.846 1368.77C537.641 1369.51 538.275 1370.49 538.748 1371.71C539.22 1372.92 539.456 1374.42 539.456 1376.21V1377.45H524.74V1374.91H536.473C536.473 1373.84 536.258 1372.87 535.827 1372.03C535.404 1371.18 534.799 1370.52 534.012 1370.03C533.233 1369.54 532.314 1369.3 531.253 1369.3C530.085 1369.3 529.074 1369.59 528.22 1370.17C527.375 1370.74 526.725 1371.48 526.269 1372.4C525.813 1373.32 525.585 1374.31 525.585 1375.36V1377.05C525.585 1378.49 525.834 1379.72 526.331 1380.72C526.836 1381.71 527.537 1382.47 528.432 1382.99C529.326 1383.51 530.366 1383.76 531.551 1383.76C532.322 1383.76 533.018 1383.66 533.639 1383.44C534.269 1383.22 534.812 1382.88 535.267 1382.45C535.723 1382 536.075 1381.44 536.324 1380.78L539.158 1381.58C538.859 1382.54 538.358 1383.38 537.654 1384.11C536.95 1384.83 536.08 1385.4 535.044 1385.8C534.008 1386.2 532.844 1386.4 531.551 1386.4Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"FunctionalAspects\" className=\"map-btn\" onClick={ClickHandler(\"FunctionalAspects\")}>\r\n <circle id=\"Ellipse 1_2\" cx=\"199\" cy=\"1652\" r=\"150\" fill=\"#D9D9D9\" />\r\n <path\r\n id=\"1) Functional Aspects\"\r\n d=\"M196.609 1597.55V1623H193.526V1600.78H193.377L187.163 1604.9V1601.77L193.526 1597.55H196.609ZM210.243 1610.27C210.243 1613.4 209.833 1616.29 209.013 1618.92C208.201 1621.55 207.037 1623.97 205.52 1626.18H202.935C203.532 1625.36 204.087 1624.35 204.601 1623.15C205.123 1621.96 205.578 1620.65 205.968 1619.22C206.357 1617.79 206.66 1616.31 206.875 1614.78C207.099 1613.25 207.211 1611.75 207.211 1610.27C207.211 1608.3 207.02 1606.3 206.639 1604.27C206.258 1602.24 205.744 1600.35 205.098 1598.61C204.451 1596.87 203.731 1595.46 202.935 1594.36H205.52C207.037 1596.58 208.201 1599 209.013 1601.63C209.833 1604.26 210.243 1607.14 210.243 1610.27ZM117.526 1665V1639.55H132.789V1642.28H120.609V1650.88H131.646V1653.62H120.609V1665H117.526ZM148.505 1657.19V1645.91H151.439V1665H148.505V1661.77H148.307C147.859 1662.74 147.163 1663.56 146.219 1664.24C145.274 1664.91 144.081 1665.25 142.639 1665.25C141.446 1665.25 140.385 1664.99 139.457 1664.47C138.529 1663.94 137.8 1663.14 137.27 1662.08C136.739 1661.01 136.474 1659.66 136.474 1658.04V1645.91H139.407V1657.84C139.407 1659.23 139.797 1660.34 140.576 1661.17C141.363 1662 142.366 1662.41 143.584 1662.41C144.313 1662.41 145.054 1662.23 145.808 1661.86C146.571 1661.48 147.209 1660.91 147.722 1660.14C148.244 1659.37 148.505 1658.39 148.505 1657.19ZM159.744 1653.52V1665H156.811V1645.91H159.645V1648.89H159.894C160.341 1647.92 161.02 1647.14 161.932 1646.56C162.843 1645.96 164.02 1645.66 165.462 1645.66C166.754 1645.66 167.885 1645.93 168.855 1646.46C169.824 1646.98 170.578 1647.77 171.117 1648.84C171.655 1649.9 171.925 1651.25 171.925 1652.87V1665H168.992V1653.07C168.992 1651.57 168.602 1650.4 167.823 1649.56C167.044 1648.72 165.975 1648.3 164.617 1648.3C163.68 1648.3 162.843 1648.5 162.106 1648.9C161.377 1649.31 160.801 1649.9 160.378 1650.68C159.956 1651.46 159.744 1652.41 159.744 1653.52ZM185.04 1665.4C183.251 1665.4 181.709 1664.98 180.417 1664.13C179.124 1663.28 178.13 1662.12 177.434 1660.64C176.738 1659.15 176.39 1657.46 176.39 1655.55C176.39 1653.62 176.746 1651.9 177.459 1650.42C178.18 1648.93 179.182 1647.77 180.467 1646.93C181.759 1646.08 183.267 1645.66 184.991 1645.66C186.333 1645.66 187.543 1645.91 188.62 1646.41C189.697 1646.9 190.58 1647.6 191.267 1648.49C191.955 1649.39 192.382 1650.43 192.548 1651.63H189.614C189.391 1650.76 188.893 1649.99 188.123 1649.31C187.361 1648.64 186.333 1648.3 185.04 1648.3C183.897 1648.3 182.894 1648.59 182.033 1649.19C181.179 1649.78 180.512 1650.61 180.032 1651.69C179.559 1652.76 179.323 1654.01 179.323 1655.45C179.323 1656.93 179.555 1658.21 180.019 1659.31C180.491 1660.4 181.154 1661.25 182.008 1661.86C182.87 1662.46 183.88 1662.76 185.04 1662.76C185.803 1662.76 186.495 1662.63 187.116 1662.37C187.738 1662.1 188.264 1661.72 188.695 1661.22C189.125 1660.72 189.432 1660.13 189.614 1659.43H192.548C192.382 1660.56 191.972 1661.57 191.317 1662.48C190.671 1663.37 189.813 1664.08 188.744 1664.61C187.684 1665.14 186.449 1665.4 185.04 1665.4ZM205.138 1645.91V1648.39H195.245V1645.91H205.138ZM198.128 1641.34H201.061V1659.53C201.061 1660.36 201.182 1660.98 201.422 1661.4C201.67 1661.8 201.985 1662.08 202.366 1662.22C202.756 1662.35 203.166 1662.41 203.597 1662.41C203.92 1662.41 204.185 1662.4 204.392 1662.37C204.6 1662.32 204.765 1662.29 204.89 1662.27L205.486 1664.9C205.287 1664.98 205.01 1665.05 204.653 1665.12C204.297 1665.21 203.845 1665.25 203.299 1665.25C202.47 1665.25 201.658 1665.07 200.863 1664.71C200.075 1664.36 199.421 1663.82 198.899 1663.09C198.385 1662.36 198.128 1661.44 198.128 1660.33V1641.34ZM209.55 1665V1645.91H212.484V1665H209.55ZM211.042 1642.73C210.47 1642.73 209.977 1642.53 209.563 1642.14C209.157 1641.75 208.954 1641.29 208.954 1640.74C208.954 1640.19 209.157 1639.72 209.563 1639.33C209.977 1638.94 210.47 1638.75 211.042 1638.75C211.614 1638.75 212.102 1638.94 212.508 1639.33C212.923 1639.72 213.13 1640.19 213.13 1640.74C213.13 1641.29 212.923 1641.75 212.508 1642.14C212.102 1642.53 211.614 1642.73 211.042 1642.73ZM225.612 1665.4C223.888 1665.4 222.376 1664.99 221.075 1664.17C219.783 1663.35 218.772 1662.2 218.042 1660.72C217.322 1659.25 216.961 1657.53 216.961 1655.55C216.961 1653.57 217.322 1651.83 218.042 1650.35C218.772 1648.86 219.783 1647.71 221.075 1646.89C222.376 1646.07 223.888 1645.66 225.612 1645.66C227.335 1645.66 228.843 1646.07 230.136 1646.89C231.437 1647.71 232.448 1648.86 233.169 1650.35C233.898 1651.83 234.262 1653.57 234.262 1655.55C234.262 1657.53 233.898 1659.25 233.169 1660.72C232.448 1662.2 231.437 1663.35 230.136 1664.17C228.843 1664.99 227.335 1665.4 225.612 1665.4ZM225.612 1662.76C226.921 1662.76 227.998 1662.43 228.843 1661.76C229.688 1661.08 230.314 1660.2 230.72 1659.11C231.126 1658.01 231.329 1656.83 231.329 1655.55C231.329 1654.28 231.126 1653.09 230.72 1651.99C230.314 1650.88 229.688 1649.99 228.843 1649.31C227.998 1648.64 226.921 1648.3 225.612 1648.3C224.303 1648.3 223.225 1648.64 222.38 1649.31C221.535 1649.99 220.909 1650.88 220.503 1651.99C220.097 1653.09 219.894 1654.28 219.894 1655.55C219.894 1656.83 220.097 1658.01 220.503 1659.11C220.909 1660.2 221.535 1661.08 222.38 1661.76C223.225 1662.43 224.303 1662.76 225.612 1662.76ZM241.673 1653.52V1665H238.74V1645.91H241.574V1648.89H241.822C242.27 1647.92 242.949 1647.14 243.861 1646.56C244.772 1645.96 245.949 1645.66 247.39 1645.66C248.683 1645.66 249.814 1645.93 250.784 1646.46C251.753 1646.98 252.507 1647.77 253.046 1648.84C253.584 1649.9 253.853 1651.25 253.853 1652.87V1665H250.92V1653.07C250.92 1651.57 250.531 1650.4 249.752 1649.56C248.973 1648.72 247.904 1648.3 246.545 1648.3C245.609 1648.3 244.772 1648.5 244.035 1648.9C243.305 1649.31 242.73 1649.9 242.307 1650.68C241.884 1651.46 241.673 1652.41 241.673 1653.52ZM264.831 1665.45C263.622 1665.45 262.524 1665.22 261.538 1664.76C260.552 1664.3 259.769 1663.63 259.189 1662.76C258.609 1661.88 258.319 1660.82 258.319 1659.58C258.319 1658.49 258.534 1657.6 258.965 1656.92C259.396 1656.23 259.972 1655.69 260.693 1655.31C261.413 1654.92 262.209 1654.63 263.079 1654.44C263.957 1654.24 264.84 1654.08 265.726 1653.96C266.886 1653.81 267.827 1653.7 268.548 1653.63C269.277 1653.54 269.807 1653.41 270.139 1653.22C270.478 1653.03 270.648 1652.7 270.648 1652.22V1652.12C270.648 1650.9 270.313 1649.94 269.641 1649.26C268.979 1648.59 267.972 1648.25 266.621 1648.25C265.221 1648.25 264.123 1648.55 263.327 1649.17C262.532 1649.78 261.973 1650.43 261.65 1651.13L258.865 1650.13C259.363 1648.97 260.025 1648.07 260.854 1647.43C261.691 1646.77 262.602 1646.32 263.588 1646.06C264.583 1645.79 265.561 1645.66 266.522 1645.66C267.135 1645.66 267.839 1645.74 268.635 1645.88C269.438 1646.03 270.213 1646.32 270.959 1646.77C271.713 1647.21 272.338 1647.89 272.836 1648.79C273.333 1649.7 273.581 1650.91 273.581 1652.42V1665H270.648V1662.41H270.499C270.3 1662.83 269.969 1663.27 269.505 1663.74C269.041 1664.22 268.423 1664.62 267.653 1664.95C266.882 1665.28 265.942 1665.45 264.831 1665.45ZM265.279 1662.81C266.439 1662.81 267.417 1662.58 268.212 1662.13C269.016 1661.67 269.621 1661.08 270.027 1660.36C270.441 1659.64 270.648 1658.88 270.648 1658.09V1655.4C270.524 1655.55 270.25 1655.69 269.828 1655.81C269.414 1655.93 268.933 1656.03 268.386 1656.13C267.847 1656.21 267.321 1656.28 266.808 1656.35C266.302 1656.41 265.892 1656.46 265.577 1656.5C264.815 1656.6 264.102 1656.76 263.439 1656.98C262.785 1657.2 262.254 1657.53 261.848 1657.97C261.451 1658.4 261.252 1658.98 261.252 1659.73C261.252 1660.75 261.629 1661.52 262.383 1662.04C263.145 1662.56 264.11 1662.81 265.279 1662.81ZM281.868 1639.55V1665H278.935V1639.55H281.868ZM136.703 1707H133.471L142.818 1681.55H145.999L155.346 1707H152.115L144.508 1685.57H144.309L136.703 1707ZM137.896 1697.06H150.921V1699.79H137.896V1697.06ZM172.436 1692.18L169.801 1692.93C169.635 1692.49 169.391 1692.06 169.068 1691.65C168.753 1691.23 168.322 1690.88 167.775 1690.61C167.228 1690.33 166.528 1690.2 165.675 1690.2C164.506 1690.2 163.533 1690.47 162.754 1691C161.983 1691.53 161.598 1692.21 161.598 1693.03C161.598 1693.76 161.863 1694.33 162.393 1694.76C162.924 1695.18 163.752 1695.53 164.879 1695.81L167.713 1696.51C169.42 1696.92 170.692 1697.56 171.529 1698.41C172.365 1699.26 172.784 1700.35 172.784 1701.68C172.784 1702.77 172.469 1703.75 171.839 1704.61C171.218 1705.48 170.348 1706.15 169.229 1706.65C168.111 1707.15 166.81 1707.4 165.327 1707.4C163.379 1707.4 161.768 1706.98 160.492 1706.13C159.216 1705.28 158.408 1704.05 158.068 1702.43L160.852 1701.73C161.117 1702.76 161.619 1703.53 162.356 1704.04C163.102 1704.56 164.075 1704.81 165.277 1704.81C166.644 1704.81 167.729 1704.52 168.533 1703.94C169.345 1703.35 169.751 1702.65 169.751 1701.83C169.751 1701.17 169.519 1700.61 169.055 1700.16C168.591 1699.71 167.879 1699.37 166.917 1699.14L163.736 1698.4C161.987 1697.98 160.703 1697.34 159.883 1696.47C159.071 1695.59 158.665 1694.5 158.665 1693.18C158.665 1692.1 158.967 1691.15 159.572 1690.32C160.185 1689.49 161.018 1688.84 162.07 1688.37C163.131 1687.9 164.332 1687.66 165.675 1687.66C167.564 1687.66 169.047 1688.07 170.124 1688.9C171.21 1689.73 171.98 1690.83 172.436 1692.18ZM177.199 1714.16V1687.91H180.033V1690.94H180.381C180.597 1690.61 180.895 1690.19 181.276 1689.67C181.665 1689.15 182.221 1688.69 182.941 1688.28C183.671 1687.87 184.657 1687.66 185.9 1687.66C187.507 1687.66 188.924 1688.06 190.15 1688.87C191.377 1689.67 192.334 1690.81 193.021 1692.28C193.709 1693.76 194.053 1695.5 194.053 1697.5C194.053 1699.53 193.709 1701.28 193.021 1702.76C192.334 1704.24 191.381 1705.38 190.163 1706.19C188.945 1707 187.54 1707.4 185.949 1707.4C184.723 1707.4 183.741 1707.19 183.004 1706.79C182.266 1706.37 181.699 1705.91 181.301 1705.38C180.903 1704.85 180.597 1704.41 180.381 1704.07H180.133V1714.16H177.199ZM180.083 1697.45C180.083 1698.9 180.294 1700.17 180.717 1701.27C181.139 1702.36 181.757 1703.22 182.569 1703.84C183.381 1704.46 184.375 1704.76 185.552 1704.76C186.778 1704.76 187.801 1704.44 188.622 1703.79C189.45 1703.14 190.072 1702.26 190.486 1701.16C190.908 1700.05 191.12 1698.81 191.12 1697.45C191.12 1696.11 190.913 1694.9 190.498 1693.83C190.092 1692.74 189.475 1691.88 188.646 1691.25C187.826 1690.61 186.794 1690.3 185.552 1690.3C184.358 1690.3 183.356 1690.6 182.544 1691.2C181.732 1691.8 181.119 1692.64 180.704 1693.71C180.29 1694.78 180.083 1696.03 180.083 1697.45ZM206.532 1707.4C204.692 1707.4 203.105 1706.99 201.771 1706.18C200.446 1705.36 199.422 1704.22 198.701 1702.75C197.989 1701.27 197.633 1699.56 197.633 1697.6C197.633 1695.65 197.989 1693.92 198.701 1692.43C199.422 1690.93 200.425 1689.77 201.709 1688.93C203.002 1688.08 204.51 1687.66 206.233 1687.66C207.228 1687.66 208.21 1687.83 209.179 1688.16C210.149 1688.49 211.031 1689.03 211.826 1689.77C212.622 1690.51 213.256 1691.49 213.728 1692.71C214.2 1693.92 214.437 1695.42 214.437 1697.21V1698.45H199.721V1695.91H211.454C211.454 1694.84 211.238 1693.87 210.807 1693.03C210.385 1692.18 209.78 1691.52 208.993 1691.03C208.214 1690.54 207.294 1690.3 206.233 1690.3C205.065 1690.3 204.054 1690.59 203.201 1691.17C202.356 1691.74 201.705 1692.48 201.249 1693.4C200.794 1694.32 200.566 1695.31 200.566 1696.36V1698.05C200.566 1699.49 200.814 1700.72 201.312 1701.72C201.817 1702.71 202.517 1703.47 203.412 1703.99C204.307 1704.51 205.347 1704.76 206.532 1704.76C207.302 1704.76 207.998 1704.66 208.62 1704.44C209.249 1704.22 209.792 1703.88 210.248 1703.45C210.704 1703 211.056 1702.44 211.304 1701.78L214.138 1702.58C213.84 1703.54 213.339 1704.38 212.634 1705.11C211.93 1705.83 211.06 1706.4 210.024 1706.8C208.988 1707.2 207.824 1707.4 206.532 1707.4ZM226.654 1707.4C224.864 1707.4 223.323 1706.98 222.031 1706.13C220.738 1705.28 219.744 1704.12 219.048 1702.64C218.352 1701.15 218.004 1699.46 218.004 1697.55C218.004 1695.62 218.36 1693.9 219.073 1692.42C219.793 1690.93 220.796 1689.77 222.08 1688.93C223.373 1688.08 224.881 1687.66 226.604 1687.66C227.947 1687.66 229.157 1687.91 230.234 1688.41C231.311 1688.9 232.193 1689.6 232.881 1690.49C233.569 1691.39 233.996 1692.43 234.161 1693.63H231.228C231.004 1692.76 230.507 1691.99 229.737 1691.31C228.974 1690.64 227.947 1690.3 226.654 1690.3C225.511 1690.3 224.508 1690.59 223.646 1691.19C222.793 1691.78 222.126 1692.61 221.645 1693.69C221.173 1694.76 220.937 1696.01 220.937 1697.45C220.937 1698.93 221.169 1700.21 221.633 1701.31C222.105 1702.4 222.768 1703.25 223.622 1703.86C224.483 1704.46 225.494 1704.76 226.654 1704.76C227.417 1704.76 228.108 1704.63 228.73 1704.37C229.351 1704.1 229.877 1703.72 230.308 1703.22C230.739 1702.72 231.046 1702.13 231.228 1701.43H234.161C233.996 1702.56 233.585 1703.57 232.931 1704.48C232.285 1705.37 231.427 1706.08 230.358 1706.61C229.297 1707.14 228.063 1707.4 226.654 1707.4ZM246.752 1687.91V1690.39H236.858V1687.91H246.752ZM239.742 1683.34H242.675V1701.53C242.675 1702.36 242.795 1702.98 243.036 1703.4C243.284 1703.8 243.599 1704.08 243.98 1704.22C244.37 1704.35 244.78 1704.41 245.211 1704.41C245.534 1704.41 245.799 1704.4 246.006 1704.37C246.213 1704.32 246.379 1704.29 246.503 1704.27L247.1 1706.9C246.901 1706.98 246.623 1707.05 246.267 1707.12C245.911 1707.21 245.459 1707.25 244.912 1707.25C244.084 1707.25 243.272 1707.07 242.476 1706.71C241.689 1706.36 241.035 1705.82 240.513 1705.09C239.999 1704.36 239.742 1703.44 239.742 1702.33V1683.34ZM264.345 1692.18L261.71 1692.93C261.544 1692.49 261.3 1692.06 260.977 1691.65C260.662 1691.23 260.231 1690.88 259.684 1690.61C259.137 1690.33 258.437 1690.2 257.584 1690.2C256.415 1690.2 255.442 1690.47 254.663 1691C253.892 1691.53 253.507 1692.21 253.507 1693.03C253.507 1693.76 253.772 1694.33 254.302 1694.76C254.833 1695.18 255.661 1695.53 256.788 1695.81L259.622 1696.51C261.329 1696.92 262.601 1697.56 263.438 1698.41C264.275 1699.26 264.693 1700.35 264.693 1701.68C264.693 1702.77 264.378 1703.75 263.748 1704.61C263.127 1705.48 262.257 1706.15 261.138 1706.65C260.02 1707.15 258.719 1707.4 257.236 1707.4C255.289 1707.4 253.677 1706.98 252.401 1706.13C251.125 1705.28 250.317 1704.05 249.977 1702.43L252.761 1701.73C253.026 1702.76 253.528 1703.53 254.265 1704.04C255.011 1704.56 255.985 1704.81 257.186 1704.81C258.553 1704.81 259.639 1704.52 260.442 1703.94C261.254 1703.35 261.66 1702.65 261.66 1701.83C261.66 1701.17 261.428 1700.61 260.964 1700.16C260.5 1699.71 259.788 1699.37 258.827 1699.14L255.645 1698.4C253.896 1697.98 252.612 1697.34 251.792 1696.47C250.98 1695.59 250.574 1694.5 250.574 1693.18C250.574 1692.1 250.876 1691.15 251.481 1690.32C252.094 1689.49 252.927 1688.84 253.979 1688.37C255.04 1687.9 256.241 1687.66 257.584 1687.66C259.473 1687.66 260.956 1688.07 262.033 1688.9C263.119 1689.73 263.889 1690.83 264.345 1692.18Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"EmotionalAspects\" className=\"map-btn\" onClick={ClickHandler(\"EmotionalAspects\")}>\r\n <circle id=\"Ellipse 1_3\" cx=\"799\" cy=\"1652\" r=\"150\" fill=\"#D9D9D9\" />\r\n <path\r\n id=\"Emotional Aspects\"\r\n d=\"M721.269 1644V1618.55H736.631V1621.28H724.351V1629.88H735.836V1632.62H724.351V1641.27H736.83V1644H721.269ZM741.789 1644V1624.91H744.623V1627.89H744.872C745.269 1626.87 745.911 1626.08 746.798 1625.52C747.685 1624.95 748.749 1624.66 749.992 1624.66C751.252 1624.66 752.3 1624.95 753.137 1625.52C753.982 1626.08 754.641 1626.87 755.113 1627.89H755.312C755.801 1626.91 756.534 1626.12 757.512 1625.54C758.49 1624.95 759.662 1624.66 761.029 1624.66C762.736 1624.66 764.132 1625.19 765.218 1626.26C766.303 1627.32 766.846 1628.98 766.846 1631.22V1644H763.913V1631.22C763.913 1629.81 763.527 1628.81 762.757 1628.2C761.986 1627.6 761.079 1627.3 760.035 1627.3C758.693 1627.3 757.653 1627.7 756.915 1628.51C756.178 1629.32 755.809 1630.34 755.809 1631.57V1644H752.826V1630.92C752.826 1629.84 752.474 1628.97 751.77 1628.3C751.065 1627.63 750.158 1627.3 749.048 1627.3C748.285 1627.3 747.573 1627.5 746.91 1627.9C746.255 1628.31 745.725 1628.87 745.319 1629.59C744.921 1630.31 744.722 1631.13 744.722 1632.07V1644H741.789ZM779.965 1644.4C778.241 1644.4 776.729 1643.99 775.428 1643.17C774.136 1642.35 773.125 1641.2 772.396 1639.72C771.675 1638.25 771.314 1636.53 771.314 1634.55C771.314 1632.57 771.675 1630.83 772.396 1629.35C773.125 1627.86 774.136 1626.71 775.428 1625.89C776.729 1625.07 778.241 1624.66 779.965 1624.66C781.688 1624.66 783.196 1625.07 784.489 1625.89C785.79 1626.71 786.801 1627.86 787.522 1629.35C788.251 1630.83 788.615 1632.57 788.615 1634.55C788.615 1636.53 788.251 1638.25 787.522 1639.72C786.801 1641.2 785.79 1642.35 784.489 1643.17C783.196 1643.99 781.688 1644.4 779.965 1644.4ZM779.965 1641.76C781.274 1641.76 782.351 1641.43 783.196 1640.76C784.041 1640.08 784.667 1639.2 785.073 1638.11C785.479 1637.01 785.682 1635.83 785.682 1634.55C785.682 1633.28 785.479 1632.09 785.073 1630.99C784.667 1629.88 784.041 1628.99 783.196 1628.31C782.351 1627.64 781.274 1627.3 779.965 1627.3C778.656 1627.3 777.578 1627.64 776.733 1628.31C775.888 1628.99 775.262 1629.88 774.856 1630.99C774.45 1632.09 774.247 1633.28 774.247 1634.55C774.247 1635.83 774.45 1637.01 774.856 1638.11C775.262 1639.2 775.888 1640.08 776.733 1640.76C777.578 1641.43 778.656 1641.76 779.965 1641.76ZM801.395 1624.91V1627.39H791.502V1624.91H801.395ZM794.385 1620.34H797.319V1638.53C797.319 1639.36 797.439 1639.98 797.679 1640.4C797.928 1640.8 798.243 1641.08 798.624 1641.22C799.013 1641.35 799.423 1641.41 799.854 1641.41C800.177 1641.41 800.443 1641.4 800.65 1641.37C800.857 1641.32 801.023 1641.29 801.147 1641.27L801.743 1643.9C801.545 1643.98 801.267 1644.05 800.911 1644.12C800.554 1644.21 800.103 1644.25 799.556 1644.25C798.727 1644.25 797.915 1644.07 797.12 1643.71C796.333 1643.36 795.678 1642.82 795.156 1642.09C794.642 1641.36 794.385 1640.44 794.385 1639.33V1620.34ZM805.808 1644V1624.91H808.741V1644H805.808ZM807.299 1621.73C806.727 1621.73 806.234 1621.53 805.82 1621.14C805.414 1620.75 805.211 1620.29 805.211 1619.74C805.211 1619.19 805.414 1618.72 805.82 1618.33C806.234 1617.94 806.727 1617.75 807.299 1617.75C807.871 1617.75 808.36 1617.94 808.766 1618.33C809.18 1618.72 809.387 1619.19 809.387 1619.74C809.387 1620.29 809.18 1620.75 808.766 1621.14C808.36 1621.53 807.871 1621.73 807.299 1621.73ZM821.869 1644.4C820.146 1644.4 818.633 1643.99 817.332 1643.17C816.04 1642.35 815.029 1641.2 814.3 1639.72C813.579 1638.25 813.218 1636.53 813.218 1634.55C813.218 1632.57 813.579 1630.83 814.3 1629.35C815.029 1627.86 816.04 1626.71 817.332 1625.89C818.633 1625.07 820.146 1624.66 821.869 1624.66C823.593 1624.66 825.101 1625.07 826.393 1625.89C827.694 1626.71 828.705 1627.86 829.426 1629.35C830.155 1630.83 830.52 1632.57 830.52 1634.55C830.52 1636.53 830.155 1638.25 829.426 1639.72C828.705 1641.2 827.694 1642.35 826.393 1643.17C825.101 1643.99 823.593 1644.4 821.869 1644.4ZM821.869 1641.76C823.178 1641.76 824.255 1641.43 825.101 1640.76C825.946 1640.08 826.571 1639.2 826.977 1638.11C827.383 1637.01 827.586 1635.83 827.586 1634.55C827.586 1633.28 827.383 1632.09 826.977 1630.99C826.571 1629.88 825.946 1628.99 825.101 1628.31C824.255 1627.64 823.178 1627.3 821.869 1627.3C820.56 1627.3 819.483 1627.64 818.638 1628.31C817.792 1628.99 817.167 1629.88 816.761 1630.99C816.355 1632.09 816.152 1633.28 816.152 1634.55C816.152 1635.83 816.355 1637.01 816.761 1638.11C817.167 1639.2 817.792 1640.08 818.638 1640.76C819.483 1641.43 820.56 1641.76 821.869 1641.76ZM837.93 1632.52V1644H834.997V1624.91H837.831V1627.89H838.08C838.527 1626.92 839.206 1626.14 840.118 1625.56C841.029 1624.96 842.206 1624.66 843.648 1624.66C844.94 1624.66 846.071 1624.93 847.041 1625.46C848.01 1625.98 848.764 1626.77 849.303 1627.84C849.842 1628.9 850.111 1630.25 850.111 1631.87V1644H847.178V1632.07C847.178 1630.57 846.788 1629.4 846.009 1628.56C845.23 1627.72 844.161 1627.3 842.803 1627.3C841.866 1627.3 841.029 1627.5 840.292 1627.9C839.563 1628.31 838.987 1628.9 838.564 1629.68C838.142 1630.46 837.93 1631.41 837.93 1632.52ZM861.089 1644.45C859.879 1644.45 858.781 1644.22 857.795 1643.76C856.809 1643.3 856.026 1642.63 855.446 1641.76C854.866 1640.88 854.576 1639.82 854.576 1638.58C854.576 1637.49 854.791 1636.6 855.222 1635.92C855.653 1635.23 856.229 1634.69 856.95 1634.31C857.671 1633.92 858.466 1633.63 859.336 1633.44C860.215 1633.24 861.097 1633.08 861.984 1632.96C863.144 1632.81 864.084 1632.7 864.805 1632.63C865.534 1632.54 866.064 1632.41 866.396 1632.22C866.736 1632.03 866.905 1631.7 866.905 1631.22V1631.12C866.905 1629.9 866.57 1628.94 865.899 1628.26C865.236 1627.59 864.229 1627.25 862.878 1627.25C861.478 1627.25 860.38 1627.55 859.585 1628.17C858.789 1628.78 858.23 1629.43 857.907 1630.13L855.123 1629.13C855.62 1627.97 856.283 1627.07 857.111 1626.43C857.948 1625.77 858.86 1625.32 859.846 1625.06C860.84 1624.79 861.818 1624.66 862.779 1624.66C863.392 1624.66 864.097 1624.74 864.892 1624.88C865.696 1625.03 866.47 1625.32 867.216 1625.77C867.97 1626.21 868.596 1626.89 869.093 1627.79C869.59 1628.7 869.839 1629.91 869.839 1631.42V1644H866.905V1641.41H866.756C866.557 1641.83 866.226 1642.27 865.762 1642.74C865.298 1643.22 864.681 1643.62 863.91 1643.95C863.139 1644.28 862.199 1644.45 861.089 1644.45ZM861.536 1641.81C862.696 1641.81 863.674 1641.58 864.469 1641.13C865.273 1640.67 865.878 1640.08 866.284 1639.36C866.698 1638.64 866.905 1637.88 866.905 1637.09V1634.4C866.781 1634.55 866.508 1634.69 866.085 1634.81C865.671 1634.93 865.19 1635.03 864.643 1635.13C864.105 1635.21 863.579 1635.28 863.065 1635.35C862.559 1635.41 862.149 1635.46 861.834 1635.5C861.072 1635.6 860.36 1635.76 859.697 1635.98C859.042 1636.2 858.512 1636.53 858.106 1636.97C857.708 1637.4 857.509 1637.98 857.509 1638.73C857.509 1639.75 857.886 1640.52 858.64 1641.04C859.402 1641.56 860.368 1641.81 861.536 1641.81ZM878.126 1618.55V1644H875.192V1618.55H878.126ZM736.703 1686H733.471L742.818 1660.55H745.999L755.346 1686H752.115L744.508 1664.57H744.309L736.703 1686ZM737.896 1676.06H750.921V1678.79H737.896V1676.06ZM772.436 1671.18L769.801 1671.93C769.635 1671.49 769.391 1671.06 769.068 1670.65C768.753 1670.23 768.322 1669.88 767.775 1669.61C767.228 1669.33 766.528 1669.2 765.675 1669.2C764.506 1669.2 763.533 1669.47 762.754 1670C761.983 1670.53 761.598 1671.21 761.598 1672.03C761.598 1672.76 761.863 1673.33 762.393 1673.76C762.924 1674.18 763.752 1674.53 764.879 1674.81L767.713 1675.51C769.42 1675.92 770.692 1676.56 771.529 1677.41C772.365 1678.26 772.784 1679.35 772.784 1680.68C772.784 1681.77 772.469 1682.75 771.839 1683.61C771.218 1684.48 770.348 1685.15 769.229 1685.65C768.111 1686.15 766.81 1686.4 765.327 1686.4C763.379 1686.4 761.768 1685.98 760.492 1685.13C759.216 1684.28 758.408 1683.05 758.068 1681.43L760.852 1680.73C761.117 1681.76 761.619 1682.53 762.356 1683.04C763.102 1683.56 764.075 1683.81 765.277 1683.81C766.644 1683.81 767.729 1683.52 768.533 1682.94C769.345 1682.35 769.751 1681.65 769.751 1680.83C769.751 1680.17 769.519 1679.61 769.055 1679.16C768.591 1678.71 767.879 1678.37 766.917 1678.14L763.736 1677.4C761.987 1676.98 760.703 1676.34 759.883 1675.47C759.071 1674.59 758.665 1673.5 758.665 1672.18C758.665 1671.1 758.967 1670.15 759.572 1669.32C760.185 1668.49 761.018 1667.84 762.07 1667.37C763.131 1666.9 764.332 1666.66 765.675 1666.66C767.564 1666.66 769.047 1667.07 770.124 1667.9C771.21 1668.73 771.98 1669.83 772.436 1671.18ZM777.199 1693.16V1666.91H780.033V1669.94H780.381C780.597 1669.61 780.895 1669.19 781.276 1668.67C781.665 1668.15 782.221 1667.69 782.941 1667.28C783.671 1666.87 784.657 1666.66 785.9 1666.66C787.507 1666.66 788.924 1667.06 790.15 1667.87C791.377 1668.67 792.334 1669.81 793.021 1671.28C793.709 1672.76 794.053 1674.5 794.053 1676.5C794.053 1678.53 793.709 1680.28 793.021 1681.76C792.334 1683.24 791.381 1684.38 790.163 1685.19C788.945 1686 787.54 1686.4 785.949 1686.4C784.723 1686.4 783.741 1686.19 783.004 1685.79C782.266 1685.37 781.699 1684.91 781.301 1684.38C780.903 1683.85 780.597 1683.41 780.381 1683.07H780.133V1693.16H777.199ZM780.083 1676.45C780.083 1677.9 780.294 1679.17 780.717 1680.27C781.139 1681.36 781.757 1682.22 782.569 1682.84C783.381 1683.46 784.375 1683.76 785.552 1683.76C786.778 1683.76 787.801 1683.44 788.622 1682.79C789.45 1682.14 790.072 1681.26 790.486 1680.16C790.908 1679.05 791.12 1677.81 791.12 1676.45C791.12 1675.11 790.913 1673.9 790.498 1672.83C790.092 1671.74 789.475 1670.88 788.646 1670.25C787.826 1669.61 786.794 1669.3 785.552 1669.3C784.358 1669.3 783.356 1669.6 782.544 1670.2C781.732 1670.8 781.119 1671.64 780.704 1672.71C780.29 1673.78 780.083 1675.03 780.083 1676.45ZM806.532 1686.4C804.692 1686.4 803.105 1685.99 801.771 1685.18C800.446 1684.36 799.422 1683.22 798.701 1681.75C797.989 1680.27 797.633 1678.56 797.633 1676.6C797.633 1674.65 797.989 1672.92 798.701 1671.43C799.422 1669.93 800.425 1668.77 801.709 1667.93C803.002 1667.08 804.51 1666.66 806.233 1666.66C807.228 1666.66 808.21 1666.83 809.179 1667.16C810.149 1667.49 811.031 1668.03 811.826 1668.77C812.622 1669.51 813.256 1670.49 813.728 1671.71C814.2 1672.92 814.437 1674.42 814.437 1676.21V1677.45H799.721V1674.91H811.454C811.454 1673.84 811.238 1672.87 810.807 1672.03C810.385 1671.18 809.78 1670.52 808.993 1670.03C808.214 1669.54 807.294 1669.3 806.233 1669.3C805.065 1669.3 804.054 1669.59 803.201 1670.17C802.356 1670.74 801.705 1671.48 801.249 1672.4C800.794 1673.32 800.566 1674.31 800.566 1675.36V1677.05C800.566 1678.49 800.814 1679.72 801.312 1680.72C801.817 1681.71 802.517 1682.47 803.412 1682.99C804.307 1683.51 805.347 1683.76 806.532 1683.76C807.302 1683.76 807.998 1683.66 808.62 1683.44C809.249 1683.22 809.792 1682.88 810.248 1682.45C810.704 1682 811.056 1681.44 811.304 1680.78L814.138 1681.58C813.84 1682.54 813.339 1683.38 812.634 1684.11C811.93 1684.83 811.06 1685.4 810.024 1685.8C808.988 1686.2 807.824 1686.4 806.532 1686.4ZM826.654 1686.4C824.864 1686.4 823.323 1685.98 822.031 1685.13C820.738 1684.28 819.744 1683.12 819.048 1681.64C818.352 1680.15 818.004 1678.46 818.004 1676.55C818.004 1674.62 818.36 1672.9 819.073 1671.42C819.793 1669.93 820.796 1668.77 822.08 1667.93C823.373 1667.08 824.881 1666.66 826.604 1666.66C827.947 1666.66 829.157 1666.91 830.234 1667.41C831.311 1667.9 832.193 1668.6 832.881 1669.49C833.569 1670.39 833.996 1671.43 834.161 1672.63H831.228C831.004 1671.76 830.507 1670.99 829.737 1670.31C828.974 1669.64 827.947 1669.3 826.654 1669.3C825.511 1669.3 824.508 1669.59 823.646 1670.19C822.793 1670.78 822.126 1671.61 821.645 1672.69C821.173 1673.76 820.937 1675.01 820.937 1676.45C820.937 1677.93 821.169 1679.21 821.633 1680.31C822.105 1681.4 822.768 1682.25 823.622 1682.86C824.483 1683.46 825.494 1683.76 826.654 1683.76C827.417 1683.76 828.108 1683.63 828.73 1683.37C829.351 1683.1 829.877 1682.72 830.308 1682.22C830.739 1681.72 831.046 1681.13 831.228 1680.43H834.161C833.996 1681.56 833.585 1682.57 832.931 1683.48C832.285 1684.37 831.427 1685.08 830.358 1685.61C829.297 1686.14 828.063 1686.4 826.654 1686.4ZM846.752 1666.91V1669.39H836.858V1666.91H846.752ZM839.742 1662.34H842.675V1680.53C842.675 1681.36 842.795 1681.98 843.036 1682.4C843.284 1682.8 843.599 1683.08 843.98 1683.22C844.37 1683.35 844.78 1683.41 845.211 1683.41C845.534 1683.41 845.799 1683.4 846.006 1683.37C846.213 1683.32 846.379 1683.29 846.503 1683.27L847.1 1685.9C846.901 1685.98 846.623 1686.05 846.267 1686.12C845.911 1686.21 845.459 1686.25 844.912 1686.25C844.084 1686.25 843.272 1686.07 842.476 1685.71C841.689 1685.36 841.035 1684.82 840.513 1684.09C839.999 1683.36 839.742 1682.44 839.742 1681.33V1662.34ZM864.345 1671.18L861.71 1671.93C861.544 1671.49 861.3 1671.06 860.977 1670.65C860.662 1670.23 860.231 1669.88 859.684 1669.61C859.137 1669.33 858.437 1669.2 857.584 1669.2C856.415 1669.2 855.442 1669.47 854.663 1670C853.892 1670.53 853.507 1671.21 853.507 1672.03C853.507 1672.76 853.772 1673.33 854.302 1673.76C854.833 1674.18 855.661 1674.53 856.788 1674.81L859.622 1675.51C861.329 1675.92 862.601 1676.56 863.438 1677.41C864.275 1678.26 864.693 1679.35 864.693 1680.68C864.693 1681.77 864.378 1682.75 863.748 1683.61C863.127 1684.48 862.257 1685.15 861.138 1685.65C860.02 1686.15 858.719 1686.4 857.236 1686.4C855.289 1686.4 853.677 1685.98 852.401 1685.13C851.125 1684.28 850.317 1683.05 849.977 1681.43L852.761 1680.73C853.026 1681.76 853.528 1682.53 854.265 1683.04C855.011 1683.56 855.985 1683.81 857.186 1683.81C858.553 1683.81 859.639 1683.52 860.442 1682.94C861.254 1682.35 861.66 1681.65 861.66 1680.83C861.66 1680.17 861.428 1679.61 860.964 1679.16C860.5 1678.71 859.788 1678.37 858.827 1678.14L855.645 1677.4C853.896 1676.98 852.612 1676.34 851.792 1675.47C850.98 1674.59 850.574 1673.5 850.574 1672.18C850.574 1671.1 850.876 1670.15 851.481 1669.32C852.094 1668.49 852.927 1667.84 853.979 1667.37C855.04 1666.9 856.241 1666.66 857.584 1666.66C859.473 1666.66 860.956 1667.07 862.033 1667.9C863.119 1668.73 863.889 1669.83 864.345 1671.18Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"PersonalDimention\" className=\"map-btn\" onClick={ClickHandler(\"PersonalDimention\")}>\r\n <circle id=\"Ellipse 1_4\" cx=\"499\" cy=\"1952\" r=\"150\" fill=\"#D9D9D9\" />\r\n <path\r\n id=\"2) Personal Dimention\"\r\n d=\"M485.199 1923V1920.76L493.601 1911.57C494.587 1910.49 495.399 1909.55 496.037 1908.76C496.675 1907.95 497.147 1907.2 497.454 1906.49C497.769 1905.78 497.926 1905.04 497.926 1904.26C497.926 1903.36 497.711 1902.59 497.28 1901.93C496.857 1901.28 496.277 1900.77 495.54 1900.42C494.802 1900.06 493.974 1899.88 493.054 1899.88C492.076 1899.88 491.223 1900.09 490.494 1900.49C489.773 1900.89 489.213 1901.45 488.816 1902.17C488.426 1902.89 488.232 1903.74 488.232 1904.7H485.298C485.298 1903.21 485.642 1901.9 486.33 1900.78C487.018 1899.65 487.954 1898.77 489.139 1898.14C490.332 1897.51 491.67 1897.2 493.153 1897.2C494.645 1897.2 495.967 1897.51 497.118 1898.14C498.27 1898.77 499.173 1899.62 499.828 1900.69C500.482 1901.76 500.81 1902.95 500.81 1904.26C500.81 1905.19 500.64 1906.11 500.3 1907C499.969 1907.89 499.389 1908.88 498.56 1909.97C497.74 1911.06 496.6 1912.39 495.142 1913.95L489.425 1920.07V1920.27H501.257V1923H485.199ZM512.704 1910.27C512.704 1913.4 512.294 1916.29 511.474 1918.92C510.662 1921.55 509.498 1923.97 507.981 1926.18H505.396C505.993 1925.36 506.548 1924.35 507.061 1923.15C507.583 1921.96 508.039 1920.65 508.429 1919.22C508.818 1917.79 509.121 1916.31 509.336 1914.78C509.56 1913.25 509.672 1911.75 509.672 1910.27C509.672 1908.3 509.481 1906.3 509.1 1904.27C508.719 1902.24 508.205 1900.35 507.559 1898.61C506.912 1896.87 506.191 1895.46 505.396 1894.36H507.981C509.498 1896.58 510.662 1899 511.474 1901.63C512.294 1904.26 512.704 1907.14 512.704 1910.27ZM431.044 1965V1939.55H439.645C441.642 1939.55 443.274 1939.91 444.542 1940.63C445.818 1941.34 446.763 1942.3 447.376 1943.52C447.989 1944.74 448.296 1946.1 448.296 1947.6C448.296 1949.1 447.989 1950.46 447.376 1951.69C446.771 1952.91 445.835 1953.89 444.567 1954.62C443.299 1955.34 441.675 1955.7 439.695 1955.7H433.53V1952.97H439.595C440.963 1952.97 442.061 1952.73 442.889 1952.26C443.718 1951.79 444.318 1951.15 444.691 1950.35C445.072 1949.53 445.263 1948.62 445.263 1947.6C445.263 1946.58 445.072 1945.67 444.691 1944.87C444.318 1944.06 443.714 1943.43 442.877 1942.98C442.04 1942.51 440.929 1942.28 439.546 1942.28H434.127V1965H431.044ZM460.663 1965.4C458.823 1965.4 457.236 1964.99 455.902 1964.18C454.576 1963.36 453.553 1962.22 452.832 1960.75C452.12 1959.27 451.763 1957.56 451.763 1955.6C451.763 1953.65 452.12 1951.92 452.832 1950.43C453.553 1948.93 454.556 1947.77 455.84 1946.93C457.133 1946.08 458.641 1945.66 460.364 1945.66C461.359 1945.66 462.34 1945.83 463.31 1946.16C464.279 1946.49 465.162 1947.03 465.957 1947.77C466.753 1948.51 467.387 1949.49 467.859 1950.71C468.331 1951.92 468.567 1953.42 468.567 1955.21V1956.45H453.851V1953.91H465.584C465.584 1952.84 465.369 1951.87 464.938 1951.03C464.516 1950.18 463.911 1949.52 463.123 1949.03C462.345 1948.54 461.425 1948.3 460.364 1948.3C459.196 1948.3 458.185 1948.59 457.332 1949.17C456.486 1949.74 455.836 1950.48 455.38 1951.4C454.925 1952.32 454.697 1953.31 454.697 1954.36V1956.05C454.697 1957.49 454.945 1958.72 455.442 1959.72C455.948 1960.71 456.648 1961.47 457.543 1961.99C458.438 1962.51 459.478 1962.76 460.663 1962.76C461.433 1962.76 462.129 1962.66 462.751 1962.44C463.38 1962.22 463.923 1961.88 464.379 1961.45C464.835 1961 465.187 1960.44 465.435 1959.78L468.269 1960.58C467.971 1961.54 467.469 1962.38 466.765 1963.11C466.061 1963.83 465.191 1964.4 464.155 1964.8C463.119 1965.2 461.955 1965.4 460.663 1965.4ZM473.029 1965V1945.91H475.863V1948.79H476.062C476.41 1947.85 477.04 1947.08 477.951 1946.49C478.863 1945.9 479.89 1945.61 481.034 1945.61C481.249 1945.61 481.518 1945.61 481.842 1945.62C482.165 1945.63 482.409 1945.64 482.575 1945.66V1948.64C482.475 1948.62 482.248 1948.58 481.891 1948.53C481.543 1948.47 481.175 1948.44 480.785 1948.44C479.857 1948.44 479.028 1948.64 478.299 1949.03C477.578 1949.41 477.007 1949.94 476.584 1950.62C476.17 1951.29 475.963 1952.06 475.963 1952.92V1965H473.029ZM499.575 1950.18L496.94 1950.93C496.774 1950.49 496.529 1950.06 496.206 1949.65C495.891 1949.23 495.461 1948.88 494.914 1948.61C494.367 1948.33 493.667 1948.2 492.813 1948.2C491.645 1948.2 490.671 1948.47 489.892 1949C489.122 1949.53 488.737 1950.21 488.737 1951.03C488.737 1951.76 489.002 1952.33 489.532 1952.76C490.062 1953.18 490.891 1953.53 492.018 1953.81L494.852 1954.51C496.558 1954.92 497.83 1955.56 498.667 1956.41C499.504 1957.26 499.923 1958.35 499.923 1959.68C499.923 1960.77 499.608 1961.75 498.978 1962.61C498.357 1963.48 497.487 1964.15 496.368 1964.65C495.249 1965.15 493.948 1965.4 492.465 1965.4C490.518 1965.4 488.906 1964.98 487.63 1964.13C486.354 1963.28 485.546 1962.05 485.207 1960.43L487.991 1959.73C488.256 1960.76 488.757 1961.53 489.495 1962.04C490.24 1962.56 491.214 1962.81 492.415 1962.81C493.783 1962.81 494.868 1962.52 495.672 1961.94C496.484 1961.35 496.89 1960.65 496.89 1959.83C496.89 1959.17 496.658 1958.61 496.194 1958.16C495.73 1957.71 495.017 1957.37 494.056 1957.14L490.874 1956.4C489.126 1955.98 487.842 1955.34 487.021 1954.47C486.209 1953.59 485.803 1952.5 485.803 1951.18C485.803 1950.1 486.106 1949.15 486.711 1948.32C487.324 1947.49 488.156 1946.84 489.209 1946.37C490.269 1945.9 491.471 1945.66 492.813 1945.66C494.702 1945.66 496.186 1946.07 497.263 1946.9C498.348 1947.73 499.119 1948.83 499.575 1950.18ZM512.094 1965.4C510.37 1965.4 508.858 1964.99 507.557 1964.17C506.264 1963.35 505.254 1962.2 504.524 1960.72C503.804 1959.25 503.443 1957.53 503.443 1955.55C503.443 1953.57 503.804 1951.83 504.524 1950.35C505.254 1948.86 506.264 1947.71 507.557 1946.89C508.858 1946.07 510.37 1945.66 512.094 1945.66C513.817 1945.66 515.325 1946.07 516.618 1946.89C517.919 1947.71 518.93 1948.86 519.65 1950.35C520.38 1951.83 520.744 1953.57 520.744 1955.55C520.744 1957.53 520.38 1959.25 519.65 1960.72C518.93 1962.2 517.919 1963.35 516.618 1964.17C515.325 1964.99 513.817 1965.4 512.094 1965.4ZM512.094 1962.76C513.403 1962.76 514.48 1962.43 515.325 1961.76C516.17 1961.08 516.796 1960.2 517.202 1959.11C517.608 1958.01 517.811 1956.83 517.811 1955.55C517.811 1954.28 517.608 1953.09 517.202 1951.99C516.796 1950.88 516.17 1949.99 515.325 1949.31C514.48 1948.64 513.403 1948.3 512.094 1948.3C510.784 1948.3 509.707 1948.64 508.862 1949.31C508.017 1949.99 507.391 1950.88 506.985 1951.99C506.579 1953.09 506.376 1954.28 506.376 1955.55C506.376 1956.83 506.579 1958.01 506.985 1959.11C507.391 1960.2 508.017 1961.08 508.862 1961.76C509.707 1962.43 510.784 1962.76 512.094 1962.76ZM528.155 1953.52V1965H525.222V1945.91H528.056V1948.89H528.304C528.752 1947.92 529.431 1947.14 530.343 1946.56C531.254 1945.96 532.431 1945.66 533.872 1945.66C535.165 1945.66 536.296 1945.93 537.265 1946.46C538.235 1946.98 538.989 1947.77 539.528 1948.84C540.066 1949.9 540.335 1951.25 540.335 1952.87V1965H537.402V1953.07C537.402 1951.57 537.013 1950.4 536.234 1949.56C535.455 1948.72 534.386 1948.3 533.027 1948.3C532.091 1948.3 531.254 1948.5 530.517 1948.9C529.787 1949.31 529.211 1949.9 528.789 1950.68C528.366 1951.46 528.155 1952.41 528.155 1953.52ZM551.313 1965.45C550.104 1965.45 549.006 1965.22 548.02 1964.76C547.034 1964.3 546.251 1963.63 545.671 1962.76C545.091 1961.88 544.801 1960.82 544.801 1959.58C544.801 1958.49 545.016 1957.6 545.447 1956.92C545.878 1956.23 546.454 1955.69 547.174 1955.31C547.895 1954.92 548.691 1954.63 549.561 1954.44C550.439 1954.24 551.322 1954.08 552.208 1953.96C553.368 1953.81 554.309 1953.7 555.03 1953.63C555.759 1953.54 556.289 1953.41 556.62 1953.22C556.96 1953.03 557.13 1952.7 557.13 1952.22V1952.12C557.13 1950.9 556.794 1949.94 556.123 1949.26C555.46 1948.59 554.454 1948.25 553.103 1948.25C551.703 1948.25 550.605 1948.55 549.809 1949.17C549.014 1949.78 548.455 1950.43 548.131 1951.13L545.347 1950.13C545.845 1948.97 546.507 1948.07 547.336 1947.43C548.173 1946.77 549.084 1946.32 550.07 1946.06C551.065 1945.79 552.042 1945.66 553.004 1945.66C553.617 1945.66 554.321 1945.74 555.117 1945.88C555.92 1946.03 556.695 1946.32 557.441 1946.77C558.195 1947.21 558.82 1947.89 559.318 1948.79C559.815 1949.7 560.063 1950.91 560.063 1952.42V1965H557.13V1962.41H556.981C556.782 1962.83 556.451 1963.27 555.987 1963.74C555.523 1964.22 554.905 1964.62 554.135 1964.95C553.364 1965.28 552.424 1965.45 551.313 1965.45ZM551.761 1962.81C552.921 1962.81 553.899 1962.58 554.694 1962.13C555.498 1961.67 556.103 1961.08 556.509 1960.36C556.923 1959.64 557.13 1958.88 557.13 1958.09V1955.4C557.006 1955.55 556.732 1955.69 556.31 1955.81C555.895 1955.93 555.415 1956.03 554.868 1956.13C554.329 1956.21 553.803 1956.28 553.29 1956.35C552.784 1956.41 552.374 1956.46 552.059 1956.5C551.297 1956.6 550.584 1956.76 549.921 1956.98C549.267 1957.2 548.736 1957.53 548.33 1957.97C547.933 1958.4 547.734 1958.98 547.734 1959.73C547.734 1960.75 548.111 1961.52 548.865 1962.04C549.627 1962.56 550.592 1962.81 551.761 1962.81ZM568.35 1939.55V1965H565.417V1939.55H568.35ZM426.885 2007H419.03V1981.55H427.233C429.702 1981.55 431.815 1982.06 433.572 1983.07C435.329 1984.09 436.675 1985.54 437.611 1987.44C438.548 1989.33 439.016 1991.59 439.016 1994.22C439.016 1996.87 438.544 1999.16 437.599 2001.07C436.654 2002.98 435.279 2004.44 433.473 2005.47C431.666 2006.49 429.47 2007 426.885 2007ZM422.113 2004.27H426.686C428.791 2004.27 430.535 2003.86 431.919 2003.05C433.303 2002.24 434.334 2001.08 435.014 1999.58C435.693 1998.08 436.033 1996.29 436.033 1994.22C436.033 1992.17 435.697 1990.4 435.026 1988.92C434.355 1987.42 433.352 1986.28 432.018 1985.49C430.684 1984.68 429.023 1984.28 427.034 1984.28H422.113V2004.27ZM443.789 2007V1987.91H446.722V2007H443.789ZM445.28 1984.73C444.708 1984.73 444.215 1984.53 443.801 1984.14C443.395 1983.75 443.192 1983.29 443.192 1982.74C443.192 1982.19 443.395 1981.72 443.801 1981.33C444.215 1980.94 444.708 1980.75 445.28 1980.75C445.852 1980.75 446.341 1980.94 446.747 1981.33C447.161 1981.72 447.368 1982.19 447.368 1982.74C447.368 1983.29 447.161 1983.75 446.747 1984.14C446.341 1984.53 445.852 1984.73 445.28 1984.73ZM452.094 2007V1987.91H454.928V1990.89H455.177C455.574 1989.87 456.217 1989.08 457.103 1988.52C457.99 1987.95 459.055 1987.66 460.297 1987.66C461.557 1987.66 462.605 1987.95 463.442 1988.52C464.287 1989.08 464.946 1989.87 465.418 1990.89H465.617C466.106 1989.91 466.839 1989.12 467.817 1988.54C468.795 1987.95 469.967 1987.66 471.334 1987.66C473.041 1987.66 474.437 1988.19 475.523 1989.26C476.608 1990.32 477.151 1991.98 477.151 1994.22V2007H474.218V1994.22C474.218 1992.81 473.833 1991.81 473.062 1991.2C472.291 1990.6 471.384 1990.3 470.34 1990.3C468.998 1990.3 467.958 1990.7 467.22 1991.51C466.483 1992.32 466.114 1993.34 466.114 1994.57V2007H463.131V1993.92C463.131 1992.84 462.779 1991.97 462.075 1991.3C461.37 1990.63 460.463 1990.3 459.353 1990.3C458.591 1990.3 457.878 1990.5 457.215 1990.9C456.56 1991.31 456.03 1991.87 455.624 1992.59C455.226 1993.31 455.028 1994.13 455.028 1995.07V2007H452.094ZM490.519 2007.4C488.679 2007.4 487.092 2006.99 485.758 2006.18C484.432 2005.36 483.409 2004.22 482.688 2002.75C481.976 2001.27 481.619 1999.56 481.619 1997.6C481.619 1995.65 481.976 1993.92 482.688 1992.43C483.409 1990.93 484.412 1989.77 485.696 1988.93C486.989 1988.08 488.497 1987.66 490.22 1987.66C491.215 1987.66 492.196 1987.83 493.166 1988.16C494.135 1988.49 495.018 1989.03 495.813 1989.77C496.609 1990.51 497.243 1991.49 497.715 1992.71C498.187 1993.92 498.423 1995.42 498.423 1997.21V1998.45H483.707V1995.91H495.44C495.44 1994.84 495.225 1993.87 494.794 1993.03C494.371 1992.18 493.767 1991.52 492.979 1991.03C492.201 1990.54 491.281 1990.3 490.22 1990.3C489.052 1990.3 488.041 1990.59 487.188 1991.17C486.342 1991.74 485.692 1992.48 485.236 1993.4C484.78 1994.32 484.553 1995.31 484.553 1996.36V1998.05C484.553 1999.49 484.801 2000.72 485.298 2001.72C485.804 2002.71 486.504 2003.47 487.399 2003.99C488.294 2004.51 489.334 2004.76 490.519 2004.76C491.289 2004.76 491.985 2004.66 492.607 2004.44C493.236 2004.22 493.779 2003.88 494.235 2003.45C494.691 2003 495.043 2002.44 495.291 2001.78L498.125 2002.58C497.827 2003.54 497.325 2004.38 496.621 2005.11C495.917 2005.83 495.047 2006.4 494.011 2006.8C492.975 2007.2 491.811 2007.4 490.519 2007.4ZM505.819 1995.52V2007H502.885V1987.91H505.719V1990.89H505.968C506.415 1989.92 507.095 1989.14 508.006 1988.56C508.918 1987.96 510.094 1987.66 511.536 1987.66C512.829 1987.66 513.96 1987.93 514.929 1988.46C515.898 1988.98 516.653 1989.77 517.191 1990.84C517.73 1991.9 517.999 1993.25 517.999 1994.87V2007H515.066V1995.07C515.066 1993.57 514.676 1992.4 513.897 1991.56C513.119 1990.72 512.05 1990.3 510.691 1990.3C509.754 1990.3 508.918 1990.5 508.18 1990.9C507.451 1991.31 506.875 1991.9 506.452 1992.68C506.03 1993.46 505.819 1994.41 505.819 1995.52ZM531.662 1987.91V1990.39H521.768V1987.91H531.662ZM524.652 1983.34H527.585V2001.53C527.585 2002.36 527.705 2002.98 527.945 2003.4C528.194 2003.8 528.509 2004.08 528.89 2004.22C529.279 2004.35 529.689 2004.41 530.12 2004.41C530.443 2004.41 530.709 2004.4 530.916 2004.37C531.123 2004.32 531.289 2004.29 531.413 2004.27L532.01 2006.9C531.811 2006.98 531.533 2007.05 531.177 2007.12C530.821 2007.21 530.369 2007.25 529.822 2007.25C528.993 2007.25 528.181 2007.07 527.386 2006.71C526.599 2006.36 525.944 2005.82 525.422 2005.09C524.908 2004.36 524.652 2003.44 524.652 2002.33V1983.34ZM536.074 2007V1987.91H539.007V2007H536.074ZM537.565 1984.73C536.994 1984.73 536.501 1984.53 536.086 1984.14C535.68 1983.75 535.477 1983.29 535.477 1982.74C535.477 1982.19 535.68 1981.72 536.086 1981.33C536.501 1980.94 536.994 1980.75 537.565 1980.75C538.137 1980.75 538.626 1980.94 539.032 1981.33C539.446 1981.72 539.653 1982.19 539.653 1982.74C539.653 1983.29 539.446 1983.75 539.032 1984.14C538.626 1984.53 538.137 1984.73 537.565 1984.73ZM552.135 2007.4C550.412 2007.4 548.899 2006.99 547.599 2006.17C546.306 2005.35 545.295 2004.2 544.566 2002.72C543.845 2001.25 543.485 1999.53 543.485 1997.55C543.485 1995.57 543.845 1993.83 544.566 1992.35C545.295 1990.86 546.306 1989.71 547.599 1988.89C548.899 1988.07 550.412 1987.66 552.135 1987.66C553.859 1987.66 555.367 1988.07 556.659 1988.89C557.96 1989.71 558.971 1990.86 559.692 1992.35C560.421 1993.83 560.786 1995.57 560.786 1997.55C560.786 1999.53 560.421 2001.25 559.692 2002.72C558.971 2004.2 557.96 2005.35 556.659 2006.17C555.367 2006.99 553.859 2007.4 552.135 2007.4ZM552.135 2004.76C553.444 2004.76 554.522 2004.43 555.367 2003.76C556.212 2003.08 556.837 2002.2 557.243 2001.11C557.649 2000.01 557.852 1998.83 557.852 1997.55C557.852 1996.28 557.649 1995.09 557.243 1993.99C556.837 1992.88 556.212 1991.99 555.367 1991.31C554.522 1990.64 553.444 1990.3 552.135 1990.3C550.826 1990.3 549.749 1990.64 548.904 1991.31C548.058 1991.99 547.433 1992.88 547.027 1993.99C546.621 1995.09 546.418 1996.28 546.418 1997.55C546.418 1998.83 546.621 2000.01 547.027 2001.11C547.433 2002.2 548.058 2003.08 548.904 2003.76C549.749 2004.43 550.826 2004.76 552.135 2004.76ZM568.197 1995.52V2007H565.263V1987.91H568.097V1990.89H568.346C568.793 1989.92 569.473 1989.14 570.384 1988.56C571.295 1987.96 572.472 1987.66 573.914 1987.66C575.206 1987.66 576.337 1987.93 577.307 1988.46C578.276 1988.98 579.03 1989.77 579.569 1990.84C580.108 1991.9 580.377 1993.25 580.377 1994.87V2007H577.444V1995.07C577.444 1993.57 577.054 1992.4 576.275 1991.56C575.496 1990.72 574.428 1990.3 573.069 1990.3C572.132 1990.3 571.295 1990.5 570.558 1990.9C569.829 1991.31 569.253 1991.9 568.83 1992.68C568.408 1993.46 568.197 1994.41 568.197 1995.52Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n <g id=\"SocialDimention\" className=\"map-btn\" onClick={ClickHandler(\"SocialDimention\")}>\r\n <circle id=\"Ellipse 1_5\" cx=\"1099\" cy=\"1952\" r=\"150\" fill=\"#D9D9D9\" />\r\n <path\r\n id=\"3) Social Dimention\"\r\n d=\"M1093.25 1923.35C1091.61 1923.35 1090.15 1923.07 1088.87 1922.5C1087.59 1921.94 1086.57 1921.16 1085.82 1920.15C1085.07 1919.14 1084.67 1917.97 1084.6 1916.64H1087.73C1087.8 1917.46 1088.08 1918.17 1088.58 1918.76C1089.08 1919.35 1089.73 1919.81 1090.53 1920.13C1091.33 1920.45 1092.23 1920.61 1093.2 1920.61C1094.3 1920.61 1095.27 1920.42 1096.11 1920.04C1096.96 1919.66 1097.62 1919.13 1098.1 1918.45C1098.58 1917.77 1098.82 1916.98 1098.82 1916.09C1098.82 1915.15 1098.59 1914.33 1098.13 1913.62C1097.66 1912.9 1096.98 1912.33 1096.09 1911.93C1095.19 1911.52 1094.1 1911.32 1092.81 1911.32H1090.77V1908.58H1092.81C1093.82 1908.58 1094.7 1908.4 1095.47 1908.04C1096.24 1907.67 1096.84 1907.16 1097.27 1906.49C1097.71 1905.83 1097.93 1905.05 1097.93 1904.16C1097.93 1903.3 1097.74 1902.55 1097.35 1901.91C1096.97 1901.27 1096.43 1900.77 1095.74 1900.42C1095.05 1900.06 1094.24 1899.88 1093.3 1899.88C1092.42 1899.88 1091.6 1900.04 1090.82 1900.37C1090.05 1900.68 1089.42 1901.14 1088.93 1901.75C1088.44 1902.34 1088.17 1903.06 1088.13 1903.91H1085.15C1085.2 1902.58 1085.6 1901.41 1086.35 1900.4C1087.11 1899.39 1088.09 1898.61 1089.31 1898.04C1090.54 1897.48 1091.89 1897.2 1093.35 1897.2C1094.93 1897.2 1096.28 1897.52 1097.4 1898.15C1098.53 1898.78 1099.4 1899.62 1100 1900.65C1100.61 1901.69 1100.91 1902.81 1100.91 1904.01C1100.91 1905.44 1100.53 1906.66 1099.78 1907.68C1099.03 1908.69 1098.02 1909.39 1096.73 1909.78V1909.97C1098.34 1910.24 1099.6 1910.92 1100.5 1912.03C1101.4 1913.12 1101.85 1914.47 1101.85 1916.09C1101.85 1917.47 1101.48 1918.72 1100.72 1919.82C1099.98 1920.91 1098.96 1921.77 1097.67 1922.4C1096.37 1923.03 1094.9 1923.35 1093.25 1923.35ZM1113.25 1910.27C1113.25 1913.4 1112.84 1916.29 1112.02 1918.92C1111.21 1921.55 1110.04 1923.97 1108.53 1926.18H1105.94C1106.54 1925.36 1107.09 1924.35 1107.61 1923.15C1108.13 1921.96 1108.59 1920.65 1108.98 1919.22C1109.36 1917.79 1109.67 1916.31 1109.88 1914.78C1110.11 1913.25 1110.22 1911.75 1110.22 1910.27C1110.22 1908.3 1110.03 1906.3 1109.65 1904.27C1109.27 1902.24 1108.75 1900.35 1108.11 1898.61C1107.46 1896.87 1106.74 1895.46 1105.94 1894.36H1108.53C1110.04 1896.58 1111.21 1899 1112.02 1901.63C1112.84 1904.26 1113.25 1907.14 1113.25 1910.27ZM1066.96 1945.91C1066.81 1944.65 1066.21 1943.67 1065.14 1942.98C1064.08 1942.28 1062.78 1941.93 1061.24 1941.93C1060.12 1941.93 1059.13 1942.11 1058.28 1942.48C1057.45 1942.84 1056.79 1943.34 1056.32 1943.98C1055.86 1944.62 1055.62 1945.35 1055.62 1946.16C1055.62 1946.84 1055.79 1947.42 1056.11 1947.91C1056.44 1948.39 1056.86 1948.79 1057.38 1949.12C1057.89 1949.43 1058.43 1949.69 1058.99 1949.9C1059.56 1950.1 1060.07 1950.26 1060.55 1950.38L1063.13 1951.08C1063.79 1951.25 1064.53 1951.49 1065.34 1951.8C1066.16 1952.11 1066.95 1952.53 1067.69 1953.06C1068.45 1953.58 1069.07 1954.25 1069.56 1955.07C1070.05 1955.89 1070.29 1956.9 1070.29 1958.09C1070.29 1959.46 1069.93 1960.71 1069.21 1961.82C1068.5 1962.93 1067.45 1963.81 1066.08 1964.47C1064.71 1965.12 1063.05 1965.45 1061.09 1965.45C1059.27 1965.45 1057.69 1965.15 1056.36 1964.56C1055.03 1963.98 1053.99 1963.16 1053.23 1962.1C1052.47 1961.05 1052.04 1959.83 1051.95 1958.44H1055.13C1055.21 1959.4 1055.53 1960.19 1056.1 1960.82C1056.67 1961.45 1057.39 1961.91 1058.26 1962.22C1059.14 1962.51 1060.08 1962.66 1061.09 1962.66C1062.27 1962.66 1063.33 1962.47 1064.26 1962.09C1065.2 1961.7 1065.94 1961.16 1066.49 1960.48C1067.03 1959.78 1067.31 1958.97 1067.31 1958.04C1067.31 1957.19 1067.07 1956.51 1066.6 1955.98C1066.13 1955.45 1065.51 1955.02 1064.73 1954.68C1063.96 1954.35 1063.13 1954.06 1062.24 1953.81L1059.1 1952.92C1057.12 1952.35 1055.54 1951.53 1054.38 1950.47C1053.22 1949.41 1052.64 1948.02 1052.64 1946.31C1052.64 1944.88 1053.03 1943.64 1053.8 1942.58C1054.58 1941.51 1055.62 1940.68 1056.93 1940.09C1058.25 1939.5 1059.72 1939.2 1061.34 1939.2C1062.98 1939.2 1064.44 1939.49 1065.72 1940.08C1066.99 1940.66 1068 1941.46 1068.75 1942.47C1069.5 1943.48 1069.9 1944.62 1069.94 1945.91H1066.96ZM1082.72 1965.4C1080.99 1965.4 1079.48 1964.99 1078.18 1964.17C1076.89 1963.35 1075.88 1962.2 1075.15 1960.72C1074.43 1959.25 1074.07 1957.53 1074.07 1955.55C1074.07 1953.57 1074.43 1951.83 1075.15 1950.35C1075.88 1948.86 1076.89 1947.71 1078.18 1946.89C1079.48 1946.07 1080.99 1945.66 1082.72 1945.66C1084.44 1945.66 1085.95 1946.07 1087.24 1946.89C1088.54 1947.71 1089.55 1948.86 1090.27 1950.35C1091 1951.83 1091.37 1953.57 1091.37 1955.55C1091.37 1957.53 1091 1959.25 1090.27 1960.72C1089.55 1962.2 1088.54 1963.35 1087.24 1964.17C1085.95 1964.99 1084.44 1965.4 1082.72 1965.4ZM1082.72 1962.76C1084.03 1962.76 1085.1 1962.43 1085.95 1961.76C1086.79 1961.08 1087.42 1960.2 1087.82 1959.11C1088.23 1958.01 1088.43 1956.83 1088.43 1955.55C1088.43 1954.28 1088.23 1953.09 1087.82 1951.99C1087.42 1950.88 1086.79 1949.99 1085.95 1949.31C1085.1 1948.64 1084.03 1948.3 1082.72 1948.3C1081.41 1948.3 1080.33 1948.64 1079.48 1949.31C1078.64 1949.99 1078.01 1950.88 1077.61 1951.99C1077.2 1953.09 1077 1954.28 1077 1955.55C1077 1956.83 1077.2 1958.01 1077.61 1959.11C1078.01 1960.2 1078.64 1961.08 1079.48 1961.76C1080.33 1962.43 1081.41 1962.76 1082.72 1962.76ZM1103.6 1965.4C1101.81 1965.4 1100.27 1964.98 1098.98 1964.13C1097.68 1963.28 1096.69 1962.12 1095.99 1960.64C1095.3 1959.15 1094.95 1957.46 1094.95 1955.55C1094.95 1953.62 1095.31 1951.9 1096.02 1950.42C1096.74 1948.93 1097.74 1947.77 1099.03 1946.93C1100.32 1946.08 1101.83 1945.66 1103.55 1945.66C1104.89 1945.66 1106.1 1945.91 1107.18 1946.41C1108.26 1946.9 1109.14 1947.6 1109.83 1948.49C1110.51 1949.39 1110.94 1950.43 1111.11 1951.63H1108.17C1107.95 1950.76 1107.45 1949.99 1106.68 1949.31C1105.92 1948.64 1104.89 1948.3 1103.6 1948.3C1102.46 1948.3 1101.45 1948.59 1100.59 1949.19C1099.74 1949.78 1099.07 1950.61 1098.59 1951.69C1098.12 1952.76 1097.88 1954.01 1097.88 1955.45C1097.88 1956.93 1098.11 1958.21 1098.58 1959.31C1099.05 1960.4 1099.71 1961.25 1100.57 1961.86C1101.43 1962.46 1102.44 1962.76 1103.6 1962.76C1104.36 1962.76 1105.05 1962.63 1105.68 1962.37C1106.3 1962.1 1106.82 1961.72 1107.25 1961.22C1107.68 1960.72 1107.99 1960.13 1108.17 1959.43H1111.11C1110.94 1960.56 1110.53 1961.57 1109.88 1962.48C1109.23 1963.37 1108.37 1964.08 1107.3 1964.61C1106.24 1965.14 1105.01 1965.4 1103.6 1965.4ZM1115.4 1965V1945.91H1118.33V1965H1115.4ZM1116.89 1942.73C1116.31 1942.73 1115.82 1942.53 1115.41 1942.14C1115 1941.75 1114.8 1941.29 1114.8 1940.74C1114.8 1940.19 1115 1939.72 1115.41 1939.33C1115.82 1938.94 1116.31 1938.75 1116.89 1938.75C1117.46 1938.75 1117.95 1938.94 1118.35 1939.33C1118.77 1939.72 1118.97 1940.19 1118.97 1940.74C1118.97 1941.29 1118.77 1941.75 1118.35 1942.14C1117.95 1942.53 1117.46 1942.73 1116.89 1942.73ZM1129.32 1965.45C1128.11 1965.45 1127.01 1965.22 1126.02 1964.76C1125.04 1964.3 1124.26 1963.63 1123.68 1962.76C1123.1 1961.88 1122.81 1960.82 1122.81 1959.58C1122.81 1958.49 1123.02 1957.6 1123.45 1956.92C1123.88 1956.23 1124.46 1955.69 1125.18 1955.31C1125.9 1954.92 1126.7 1954.63 1127.57 1954.44C1128.44 1954.24 1129.33 1954.08 1130.21 1953.96C1131.37 1953.81 1132.31 1953.7 1133.03 1953.63C1133.76 1953.54 1134.29 1953.41 1134.63 1953.22C1134.97 1953.03 1135.14 1952.7 1135.14 1952.22V1952.12C1135.14 1950.9 1134.8 1949.94 1134.13 1949.26C1133.47 1948.59 1132.46 1948.25 1131.11 1948.25C1129.71 1948.25 1128.61 1948.55 1127.81 1949.17C1127.02 1949.78 1126.46 1950.43 1126.14 1951.13L1123.35 1950.13C1123.85 1948.97 1124.51 1948.07 1125.34 1947.43C1126.18 1946.77 1127.09 1946.32 1128.08 1946.06C1129.07 1945.79 1130.05 1945.66 1131.01 1945.66C1131.62 1945.66 1132.33 1945.74 1133.12 1945.88C1133.93 1946.03 1134.7 1946.32 1135.45 1946.77C1136.2 1947.21 1136.83 1947.89 1137.32 1948.79C1137.82 1949.7 1138.07 1950.91 1138.07 1952.42V1965H1135.14V1962.41H1134.99C1134.79 1962.83 1134.46 1963.27 1133.99 1963.74C1133.53 1964.22 1132.91 1964.62 1132.14 1964.95C1131.37 1965.28 1130.43 1965.45 1129.32 1965.45ZM1129.77 1962.81C1130.93 1962.81 1131.9 1962.58 1132.7 1962.13C1133.5 1961.67 1134.11 1961.08 1134.51 1960.36C1134.93 1959.64 1135.14 1958.88 1135.14 1958.09V1955.4C1135.01 1955.55 1134.74 1955.69 1134.32 1955.81C1133.9 1955.93 1133.42 1956.03 1132.87 1956.13C1132.33 1956.21 1131.81 1956.28 1131.29 1956.35C1130.79 1956.41 1130.38 1956.46 1130.06 1956.5C1129.3 1956.6 1128.59 1956.76 1127.93 1956.98C1127.27 1957.2 1126.74 1957.53 1126.34 1957.97C1125.94 1958.4 1125.74 1958.98 1125.74 1959.73C1125.74 1960.75 1126.12 1961.52 1126.87 1962.04C1127.63 1962.56 1128.6 1962.81 1129.77 1962.81ZM1146.36 1939.55V1965H1143.42V1939.55H1146.36ZM1026.89 2007H1019.03V1981.55H1027.23C1029.7 1981.55 1031.82 1982.06 1033.57 1983.07C1035.33 1984.09 1036.68 1985.54 1037.61 1987.44C1038.55 1989.33 1039.02 1991.59 1039.02 1994.22C1039.02 1996.87 1038.54 1999.16 1037.6 2001.07C1036.65 2002.98 1035.28 2004.44 1033.47 2005.47C1031.67 2006.49 1029.47 2007 1026.89 2007ZM1022.11 2004.27H1026.69C1028.79 2004.27 1030.54 2003.86 1031.92 2003.05C1033.3 2002.24 1034.33 2001.08 1035.01 1999.58C1035.69 1998.08 1036.03 1996.29 1036.03 1994.22C1036.03 1992.17 1035.7 1990.4 1035.03 1988.92C1034.36 1987.42 1033.35 1986.28 1032.02 1985.49C1030.68 1984.68 1029.02 1984.28 1027.03 1984.28H1022.11V2004.27ZM1043.79 2007V1987.91H1046.72V2007H1043.79ZM1045.28 1984.73C1044.71 1984.73 1044.22 1984.53 1043.8 1984.14C1043.4 1983.75 1043.19 1983.29 1043.19 1982.74C1043.19 1982.19 1043.4 1981.72 1043.8 1981.33C1044.22 1980.94 1044.71 1980.75 1045.28 1980.75C1045.85 1980.75 1046.34 1980.94 1046.75 1981.33C1047.16 1981.72 1047.37 1982.19 1047.37 1982.74C1047.37 1983.29 1047.16 1983.75 1046.75 1984.14C1046.34 1984.53 1045.85 1984.73 1045.28 1984.73ZM1052.09 2007V1987.91H1054.93V1990.89H1055.18C1055.57 1989.87 1056.22 1989.08 1057.1 1988.52C1057.99 1987.95 1059.05 1987.66 1060.3 1987.66C1061.56 1987.66 1062.61 1987.95 1063.44 1988.52C1064.29 1989.08 1064.95 1989.87 1065.42 1990.89H1065.62C1066.11 1989.91 1066.84 1989.12 1067.82 1988.54C1068.79 1987.95 1069.97 1987.66 1071.33 1987.66C1073.04 1987.66 1074.44 1988.19 1075.52 1989.26C1076.61 1990.32 1077.15 1991.98 1077.15 1994.22V2007H1074.22V1994.22C1074.22 1992.81 1073.83 1991.81 1073.06 1991.2C1072.29 1990.6 1071.38 1990.3 1070.34 1990.3C1069 1990.3 1067.96 1990.7 1067.22 1991.51C1066.48 1992.32 1066.11 1993.34 1066.11 1994.57V2007H1063.13V1993.92C1063.13 1992.84 1062.78 1991.97 1062.07 1991.3C1061.37 1990.63 1060.46 1990.3 1059.35 1990.3C1058.59 1990.3 1057.88 1990.5 1057.22 1990.9C1056.56 1991.31 1056.03 1991.87 1055.62 1992.59C1055.23 1993.31 1055.03 1994.13 1055.03 1995.07V2007H1052.09ZM1090.52 2007.4C1088.68 2007.4 1087.09 2006.99 1085.76 2006.18C1084.43 2005.36 1083.41 2004.22 1082.69 2002.75C1081.98 2001.27 1081.62 1999.56 1081.62 1997.6C1081.62 1995.65 1081.98 1993.92 1082.69 1992.43C1083.41 1990.93 1084.41 1989.77 1085.7 1988.93C1086.99 1988.08 1088.5 1987.66 1090.22 1987.66C1091.21 1987.66 1092.2 1987.83 1093.17 1988.16C1094.14 1988.49 1095.02 1989.03 1095.81 1989.77C1096.61 1990.51 1097.24 1991.49 1097.71 1992.71C1098.19 1993.92 1098.42 1995.42 1098.42 1997.21V1998.45H1083.71V1995.91H1095.44C1095.44 1994.84 1095.22 1993.87 1094.79 1993.03C1094.37 1992.18 1093.77 1991.52 1092.98 1991.03C1092.2 1990.54 1091.28 1990.3 1090.22 1990.3C1089.05 1990.3 1088.04 1990.59 1087.19 1991.17C1086.34 1991.74 1085.69 1992.48 1085.24 1993.4C1084.78 1994.32 1084.55 1995.31 1084.55 1996.36V1998.05C1084.55 1999.49 1084.8 2000.72 1085.3 2001.72C1085.8 2002.71 1086.5 2003.47 1087.4 2003.99C1088.29 2004.51 1089.33 2004.76 1090.52 2004.76C1091.29 2004.76 1091.99 2004.66 1092.61 2004.44C1093.24 2004.22 1093.78 2003.88 1094.23 2003.45C1094.69 2003 1095.04 2002.44 1095.29 2001.78L1098.13 2002.58C1097.83 2003.54 1097.33 2004.38 1096.62 2005.11C1095.92 2005.83 1095.05 2006.4 1094.01 2006.8C1092.98 2007.2 1091.81 2007.4 1090.52 2007.4ZM1105.82 1995.52V2007H1102.89V1987.91H1105.72V1990.89H1105.97C1106.42 1989.92 1107.09 1989.14 1108.01 1988.56C1108.92 1987.96 1110.09 1987.66 1111.54 1987.66C1112.83 1987.66 1113.96 1987.93 1114.93 1988.46C1115.9 1988.98 1116.65 1989.77 1117.19 1990.84C1117.73 1991.9 1118 1993.25 1118 1994.87V2007H1115.07V1995.07C1115.07 1993.57 1114.68 1992.4 1113.9 1991.56C1113.12 1990.72 1112.05 1990.3 1110.69 1990.3C1109.75 1990.3 1108.92 1990.5 1108.18 1990.9C1107.45 1991.31 1106.88 1991.9 1106.45 1992.68C1106.03 1993.46 1105.82 1994.41 1105.82 1995.52ZM1131.66 1987.91V1990.39H1121.77V1987.91H1131.66ZM1124.65 1983.34H1127.58V2001.53C1127.58 2002.36 1127.7 2002.98 1127.95 2003.4C1128.19 2003.8 1128.51 2004.08 1128.89 2004.22C1129.28 2004.35 1129.69 2004.41 1130.12 2004.41C1130.44 2004.41 1130.71 2004.4 1130.92 2004.37C1131.12 2004.32 1131.29 2004.29 1131.41 2004.27L1132.01 2006.9C1131.81 2006.98 1131.53 2007.05 1131.18 2007.12C1130.82 2007.21 1130.37 2007.25 1129.82 2007.25C1128.99 2007.25 1128.18 2007.07 1127.39 2006.71C1126.6 2006.36 1125.94 2005.82 1125.42 2005.09C1124.91 2004.36 1124.65 2003.44 1124.65 2002.33V1983.34ZM1136.07 2007V1987.91H1139.01V2007H1136.07ZM1137.57 1984.73C1136.99 1984.73 1136.5 1984.53 1136.09 1984.14C1135.68 1983.75 1135.48 1983.29 1135.48 1982.74C1135.48 1982.19 1135.68 1981.72 1136.09 1981.33C1136.5 1980.94 1136.99 1980.75 1137.57 1980.75C1138.14 1980.75 1138.63 1980.94 1139.03 1981.33C1139.45 1981.72 1139.65 1982.19 1139.65 1982.74C1139.65 1983.29 1139.45 1983.75 1139.03 1984.14C1138.63 1984.53 1138.14 1984.73 1137.57 1984.73ZM1152.14 2007.4C1150.41 2007.4 1148.9 2006.99 1147.6 2006.17C1146.31 2005.35 1145.3 2004.2 1144.57 2002.72C1143.85 2001.25 1143.48 1999.53 1143.48 1997.55C1143.48 1995.57 1143.85 1993.83 1144.57 1992.35C1145.3 1990.86 1146.31 1989.71 1147.6 1988.89C1148.9 1988.07 1150.41 1987.66 1152.14 1987.66C1153.86 1987.66 1155.37 1988.07 1156.66 1988.89C1157.96 1989.71 1158.97 1990.86 1159.69 1992.35C1160.42 1993.83 1160.79 1995.57 1160.79 1997.55C1160.79 1999.53 1160.42 2001.25 1159.69 2002.72C1158.97 2004.2 1157.96 2005.35 1156.66 2006.17C1155.37 2006.99 1153.86 2007.4 1152.14 2007.4ZM1152.14 2004.76C1153.44 2004.76 1154.52 2004.43 1155.37 2003.76C1156.21 2003.08 1156.84 2002.2 1157.24 2001.11C1157.65 2000.01 1157.85 1998.83 1157.85 1997.55C1157.85 1996.28 1157.65 1995.09 1157.24 1993.99C1156.84 1992.88 1156.21 1991.99 1155.37 1991.31C1154.52 1990.64 1153.44 1990.3 1152.14 1990.3C1150.83 1990.3 1149.75 1990.64 1148.9 1991.31C1148.06 1991.99 1147.43 1992.88 1147.03 1993.99C1146.62 1995.09 1146.42 1996.28 1146.42 1997.55C1146.42 1998.83 1146.62 2000.01 1147.03 2001.11C1147.43 2002.2 1148.06 2003.08 1148.9 2003.76C1149.75 2004.43 1150.83 2004.76 1152.14 2004.76ZM1168.2 1995.52V2007H1165.26V1987.91H1168.1V1990.89H1168.35C1168.79 1989.92 1169.47 1989.14 1170.38 1988.56C1171.3 1987.96 1172.47 1987.66 1173.91 1987.66C1175.21 1987.66 1176.34 1987.93 1177.31 1988.46C1178.28 1988.98 1179.03 1989.77 1179.57 1990.84C1180.11 1991.9 1180.38 1993.25 1180.38 1994.87V2007H1177.44V1995.07C1177.44 1993.57 1177.05 1992.4 1176.28 1991.56C1175.5 1990.72 1174.43 1990.3 1173.07 1990.3C1172.13 1990.3 1171.3 1990.5 1170.56 1990.9C1169.83 1991.31 1169.25 1991.9 1168.83 1992.68C1168.41 1993.46 1168.2 1994.41 1168.2 1995.52Z\"\r\n fill=\"black\"\r\n />\r\n </g>\r\n </svg>\r\n </div>\r\n );\r\n}\r\n","import UniqueValueMap from \"../maps/UniqueValueMap\";\r\n\r\nexport default function UniqueValue() {\r\n return (\r\n <div>\r\n <p>\r\n Which of your customers' needs are currently unaddressed or only poorly addressed?\r\n Businesses that stand out from the competition understand what their customers are trying to\r\n accomplish, what about existing solutions frustrates customers, and how they can offer\r\n unique products and services to better meet these needs.\r\n </p>\r\n <UniqueValueMap />\r\n </div>\r\n );\r\n}\r\n","export default function Purpose() {\r\n return (\r\n <div>\r\n <p>\r\n In the story, Alice in Wonderland, Alice asks the Cheshire Cat \"which road do I take?\" The\r\n cat responds, \"Where do you want to go?\" Alice replies, \"I don't know,\" and the cat says,\r\n \"Then it doesn't matter which way you go.\"\r\n </p>\r\n <p>\r\n The word strategy is defined as \"a plan of action or policy designed to achieve a major or\r\n overall purpose or intention; a desired outcome.\" (Oxford English Dictionary). Without\r\n knowing what the desired outcome is there can be no plan of action to achieve it. Good\r\n examples of purpose are Apple, Nike, and Patagonia. They are clear in what they will do and\r\n not do.\r\n </p>\r\n <p>\r\n This section is to give direction and guidance to make a company mission, vision, and values\r\n that will define what a company will pursue and what it will not pursue, financially and\r\n ethically. Unfortunately, its not as cut and dry as filling out the boxes of mission,\r\n vision, and values, and its done.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function Where() {\r\n return (\r\n <div>\r\n <p>\r\n The \"Operating Arena\" defines the strategic scope where businesses identify and engage\r\n target customers, while shaping a unique market position. It begins with identifying\r\n customer demographics and preferences, followed by understanding the specific outcomes they\r\n seek through the \"Jobs to be Done\" framework. Market segmentation then categorizes consumers\r\n with similar needs for targeted marketing. This is supplemented by evaluating broader\r\n industry trends and competitive dynamics. Finally, companies determine their market position\r\n to align their value proposition and strategic direction effectively.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function Moat() {\r\n return (\r\n <div>\r\n <p>\r\n Safeguards are to protect the business after it is setup and running. A good CEO knows that\r\n nothing in business is status quo, and that what works today may not (or will not) work\r\n tomorrow. They must (1) understand what their current competitive advantage is, (2) ensure\r\n that the company can protect or maintain that advantage, and (3) what will the company do if\r\n that competitive advantage dissapears.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","import CapabilitiesMap from \"../maps/CapabilitiesMap\";\r\n\r\nexport default function Capabilities() {\r\n return (\r\n <div>\r\n <p>\r\n The structure of your business model determines how operational processes and activities\r\n support your overarching strategy and lead to a competitive advantage. It proposes how to\r\n deliver value to your customers. By examining these components, you can ensure alignment\r\n between your strategic objectives and your day-to-day operations.\r\n </p>\r\n\r\n <CapabilitiesMap />\r\n </div>\r\n );\r\n}\r\n","import lottie from \"lottie-web\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { animation as animationData } from \"lib/data/AnimationData\";\r\n\r\nexport default function AnimationTest() {\r\n const animationContainerType1 = useRef(null);\r\n // const animationContainerType2 = useRef(null);\r\n\r\n const [replay1, setReplay1] = useState(false);\r\n\r\n useEffect(() => {\r\n const container = animationContainerType1.current;\r\n\r\n let cleanup = () => {};\r\n if (container) {\r\n const anim = lottie.loadAnimation({\r\n container,\r\n animationData,\r\n renderer: \"svg\",\r\n loop: false,\r\n });\r\n cleanup = () => anim.destroy();\r\n }\r\n return () => cleanup();\r\n }, [replay1]);\r\n\r\n // const [replay2, setReplay2] = useState(false);\r\n\r\n // useEffect(() => {\r\n // const container = animationContainerType2.current;\r\n\r\n // let cleanup = () => {};\r\n // if (container) {\r\n // const anim = lottie.loadAnimation({\r\n // container,\r\n // animationData,\r\n // renderer: \"svg\",\r\n // loop: false,\r\n // });\r\n // cleanup = () => anim.destroy();\r\n // }\r\n // return () => cleanup();\r\n // }, [replay2]);\r\n\r\n return (\r\n <div className=\"d-flex align-items-center flex-column p-4\">\r\n <div className=\"display-3\">Animation Test</div>\r\n <button className=\"btn btn-primary\" onClick={() => setReplay1((replay1) => !replay1)}>\r\n Replay Animation\r\n </button>\r\n <div\r\n ref={animationContainerType1}\r\n className=\"w-100 h-100 \"\r\n style={{ maxWidth: window.innerWidth, maxHeight: window.innerHeight - 200 }}\r\n ></div>\r\n {/* <button className=\"btn btn-primary\" onClick={() => setReplay2((replay2) => !replay2)}>\r\n Replay Animation\r\n </button>\r\n <div\r\n ref={animationContainerType2}\r\n className=\"w-100 h-100 \"\r\n style={{ maxWidth: window.innerWidth, maxHeight: window.innerHeight - 200 }}\r\n ></div> */}\r\n </div>\r\n );\r\n}\r\n","import { useContext } from \"react\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport RawConcepts from \"lib/data/Concepts\";\r\nimport Categories from \"lib/data/Categories\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useState } from \"react\";\r\nimport { TConcepts } from \"types/JsonType\";\r\nimport BootstrapMenuIcon from \"components/bootstrap_icons/Menu\";\r\nimport {\r\n GetCodexCategories,\r\n GetCodexPathways,\r\n GetCodexFocuses,\r\n TCodexView,\r\n TConceptView,\r\n} from \"lib/data/CodexViews\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport constants from \"Constants\";\r\nimport SidebarPage, { SidebarContext } from \"../templates/SidebarPage\";\r\n\r\nlet Concepts = RawConcepts;\r\n\r\ntype TCodexSortBy = \"category\" | \"pathway\" | \"focus\";\r\n\r\nexport type TSummaryCard = {\r\n concept: string;\r\n category: string;\r\n summary: string;\r\n};\r\n\r\nfunction GetCoords(degrees: number, radius: number) {\r\n const x = radius * Math.cos((degrees * Math.PI) / 180);\r\n const y = radius * Math.sin((degrees * Math.PI) / 180);\r\n return { x, y };\r\n}\r\n\r\ntype TConceptProps = {\r\n degrees: number;\r\n transform: string;\r\n concept: TConceptView;\r\n setSummaryCard: (summaryCard: TSummaryCard) => void;\r\n backgroundRingRadius: number;\r\n conceptRingRadius: number;\r\n handlePointerDown: (e: any) => void;\r\n slice: TCodexView;\r\n};\r\nfunction Concept({\r\n slice,\r\n concept,\r\n backgroundRingRadius,\r\n conceptRingRadius,\r\n degrees,\r\n transform,\r\n setSummaryCard,\r\n handlePointerDown,\r\n}: TConceptProps) {\r\n const flip = degrees > 90 && degrees < 270;\r\n\r\n const mouseEnterHandler = () => {\r\n const summaryCircle = document.getElementById(\"summary-circle\");\r\n if (summaryCircle) {\r\n summaryCircle.style.opacity = \"1\";\r\n }\r\n setSummaryCard({\r\n concept: concept.name,\r\n category: slice.name,\r\n summary: concept.summary,\r\n });\r\n };\r\n\r\n // .94 is arbitrary. It makes the foreignObject look good. The foreignObject is used to make the text clickable.\r\n const foreignObjectWidth = (backgroundRingRadius - conceptRingRadius) * 0.94;\r\n\r\n const pathwayPath = concept.pathwayId ? \"/\" + concept.pathwayId : \"\";\r\n\r\n return (\r\n <g transform={transform} fill=\"black\">\r\n <foreignObject\r\n x={0}\r\n y={0}\r\n width={foreignObjectWidth}\r\n height={1}\r\n style={{ cursor: \"pointer\", overflow: \"visible\" }}\r\n transform={`rotate(${flip ? 180 : 0} ${foreignObjectWidth / 2} 0)`}\r\n >\r\n <div\r\n className={\"d-flex align-items-center\" + (flip ? \" justify-content-end text-end\" : \"\")}\r\n style={{ height: 1, lineHeight: 1, overflow: \"visible\" }}\r\n onPointerDown={handlePointerDown}\r\n >\r\n <Link className=\"no-underline \" to={concept.url + pathwayPath}>\r\n <span\r\n className=\"text-body fw-bold emphasize-on-hover open-sans\"\r\n onMouseEnter={mouseEnterHandler}\r\n >\r\n {concept.name}\r\n </span>\r\n </Link>\r\n </div>\r\n </foreignObject>\r\n </g>\r\n );\r\n}\r\n\r\ntype TTitleProps = {\r\n rotation: number;\r\n titleTransform: string;\r\n slice: TCodexView;\r\n circleTransform: string;\r\n titleCircleRadius: number;\r\n mainBg: string;\r\n};\r\nfunction Title({\r\n rotation,\r\n titleTransform,\r\n slice,\r\n circleTransform,\r\n titleCircleRadius: circleRadius,\r\n}: TTitleProps) {\r\n let textAnchor;\r\n\r\n if ((rotation > 85 && rotation < 95) || (rotation > 265 && rotation < 275)) {\r\n textAnchor = \"middle\";\r\n } else if (rotation >= 275 || rotation <= 85) {\r\n textAnchor = \"start\";\r\n } else {\r\n textAnchor = \"end\";\r\n }\r\n\r\n return (\r\n <>\r\n <g>\r\n <g transform={circleTransform}>\r\n <circle r={circleRadius} fill={constants.colors.tan3} strokeWidth={\".5px\"} />\r\n </g>\r\n <g transform={titleTransform} fontWeight=\"bold\">\r\n <g\r\n textAnchor={textAnchor}\r\n dominantBaseline={\"middle\"}\r\n transform={\"rotate(\" + -rotation + \")\"}\r\n fill={\"black\"}\r\n >\r\n {slice.url ? (\r\n <Link to={slice.url} className=\"no-underline \">\r\n <text fill={\"black\"} className=\"underline-on-hover\">\r\n {slice.name}\r\n </text>\r\n </Link>\r\n ) : (\r\n <text>{slice.name}</text>\r\n )}\r\n </g>\r\n </g>\r\n </g>\r\n </>\r\n );\r\n}\r\n\r\ntype TCodexSvgProps = {\r\n codexHeightProp?: number;\r\n codexWidthProp?: number;\r\n codexSortBy?: TCodexSortBy;\r\n};\r\nexport function CodexSvg({\r\n codexHeightProp,\r\n codexWidthProp,\r\n codexSortBy = \"category\",\r\n}: TCodexSvgProps) {\r\n const [summaryCard, setSummaryCard] = useState<TSummaryCard>();\r\n\r\n const codexAspectRatio = 1.4;\r\n let codexWidthFromHeight;\r\n if (codexHeightProp) {\r\n codexWidthFromHeight = codexHeightProp * codexAspectRatio;\r\n }\r\n\r\n const codexWidth = codexWidthProp ?? codexWidthFromHeight ?? window.innerWidth * 0.95;\r\n const codexHeight = codexHeightProp ?? codexWidth / codexAspectRatio;\r\n\r\n // sizing constants\r\n // all of these are arbitrary and were chosen to make the codex feel proportional\r\n const mainBg = constants.colors.tan2;\r\n const titleFontSize = codexHeight / 50;\r\n const backgroundRingRadius = codexHeight / 2.15;\r\n // const outerSliceRadius = codexHeight / 1.85;\r\n const conceptRingRadius = codexHeight / 4;\r\n const summaryRingRadius = codexHeight / 4.1;\r\n const summaryConceptFontSize = codexHeight / 47.5;\r\n const summaryCategoryFontSize = codexHeight / 53.5;\r\n const titleRingRadius = codexHeight / 2.05;\r\n const titleCircleRadius = codexHeight / 100;\r\n const LogoSize = codexHeight / 2.5;\r\n const viewboxMultiplier = 1.1;\r\n\r\n const codexViewbox = `${-codexWidth * 0.5 * viewboxMultiplier} ${\r\n -codexHeight * 0.5 * viewboxMultiplier\r\n } ${codexWidth * viewboxMultiplier} ${codexHeight * viewboxMultiplier}`;\r\n\r\n let Slices: TCodexView[];\r\n let conceptCount = 0;\r\n\r\n if (codexSortBy === \"category\") {\r\n Slices = GetCodexCategories(Categories, Concepts);\r\n } else if (codexSortBy === \"pathway\") {\r\n Slices = GetCodexPathways(Pathways, Concepts);\r\n } else {\r\n Slices = GetCodexFocuses(Focuses, Pathways, Concepts);\r\n }\r\n const totalConcepts = Slices.reduce((acc, slice) => acc + slice.concepts.length + 1, 0);\r\n const degreesPerConcept = 360 / totalConcepts;\r\n // this proportion makes the font size look good whether there are lots of concepts or few. The formula is arbitrary.\r\n const codexDensity = Math.pow(totalConcepts, 1 / 3) * 18;\r\n const conceptFontSize = codexHeight / codexDensity;\r\n\r\n // this default value is arbitrary. Just pick something that looks good.\r\n const [startAngle, setStartAngle] = useState(-90);\r\n\r\n let angleDiff = 0;\r\n let rotationActive = false;\r\n\r\n const handlePointerDown = (e: any) => {\r\n const bgCircle = document.getElementById(\"background-ring\");\r\n if (!bgCircle) return;\r\n const bbox = bgCircle.getBoundingClientRect();\r\n const x = e.clientX - bbox.left - backgroundRingRadius;\r\n const y = e.clientY - bbox.top - backgroundRingRadius;\r\n const clientAngle = ((Math.atan2(y, x) * 180) / Math.PI + 360) % 360;\r\n angleDiff = startAngle - clientAngle;\r\n rotationActive = true;\r\n };\r\n\r\n const handlePointerMove = (e: any) => {\r\n const bgCircle = document.getElementById(\"background-ring\");\r\n if (!bgCircle) return;\r\n const bbox = bgCircle.getBoundingClientRect();\r\n const x = e.clientX - bbox.left - backgroundRingRadius;\r\n const y = e.clientY - bbox.top - backgroundRingRadius;\r\n const clientAngle = ((Math.atan2(y, x) * 180) / Math.PI + 360) % 360;\r\n\r\n if (rotationActive && !isMobile) {\r\n setStartAngle((clientAngle + angleDiff + 360) % 360);\r\n }\r\n };\r\n\r\n const handlePointerUp = () => {\r\n if (rotationActive === true) {\r\n rotationActive = false;\r\n }\r\n };\r\n\r\n window.addEventListener(\"pointermove\", handlePointerMove);\r\n window.addEventListener(\"pointerup\", handlePointerUp);\r\n window.addEventListener(\"dragend\", handlePointerUp);\r\n\r\n return (\r\n <div className=\"d-flex\" style={{ userSelect: \"none\" }}>\r\n <div className=\"mx-auto\">\r\n <svg viewBox={codexViewbox} width={codexWidth} height={codexHeight}>\r\n {/* mainBg background circle */}\r\n <circle\r\n r={backgroundRingRadius}\r\n fill={mainBg}\r\n id=\"background-ring\"\r\n onPointerDown={handlePointerDown}\r\n style={{ cursor: \"pointer\" }}\r\n />\r\n\r\n {Slices.map((slice) => {\r\n conceptCount += 1;\r\n\r\n const degrees = (conceptCount * degreesPerConcept + startAngle + 360) % 360;\r\n const lineEndpoint = GetCoords(degrees, backgroundRingRadius);\r\n\r\n const sliceArcLength = ((slice.concepts.length + 1) * degreesPerConcept) % 360;\r\n const titleRotation = degrees + sliceArcLength / 2;\r\n\r\n const titleTransform =\r\n \"rotate(\" + titleRotation + \") translate(\" + titleRingRadius + \")\";\r\n const circleTransform =\r\n \"rotate(\" + titleRotation + \") translate(\" + backgroundRingRadius + \")\";\r\n\r\n return (\r\n <g key={slice.id}>\r\n <line\r\n x1={0}\r\n y1={0}\r\n x2={lineEndpoint.x}\r\n y2={lineEndpoint.y}\r\n stroke={constants.colors.tan3}\r\n strokeWidth=\"1\"\r\n onPointerMove={handlePointerMove}\r\n />\r\n {slice.concepts.map((concept, j) => {\r\n conceptCount += 1;\r\n const degrees = (conceptCount * degreesPerConcept + startAngle) % 360;\r\n const transform = \"rotate(\" + degrees + \") translate(\" + conceptRingRadius + \")\";\r\n\r\n return (\r\n <g fontSize={conceptFontSize} key={j}>\r\n <Concept\r\n degrees={degrees}\r\n transform={transform}\r\n concept={concept}\r\n setSummaryCard={setSummaryCard}\r\n backgroundRingRadius={backgroundRingRadius}\r\n conceptRingRadius={conceptRingRadius}\r\n handlePointerDown={handlePointerDown}\r\n slice={slice}\r\n />\r\n </g>\r\n );\r\n })}\r\n <g fill=\"white\" fontSize={titleFontSize}>\r\n <Title\r\n mainBg={mainBg}\r\n rotation={titleRotation}\r\n titleTransform={titleTransform}\r\n slice={slice}\r\n circleTransform={circleTransform}\r\n titleCircleRadius={titleCircleRadius}\r\n />\r\n </g>\r\n </g>\r\n );\r\n })}\r\n\r\n {/* Center Logo */}\r\n <circle r={LogoSize / 2} fill={mainBg} />\r\n <image\r\n x={-LogoSize / 2}\r\n y={-LogoSize / 2}\r\n width={LogoSize}\r\n height={LogoSize}\r\n href={require(\"lib/img/Logo.svg\").default}\r\n filter={constants.colors.greyRedCssFilter}\r\n className=\"codex-logo-spin\"\r\n />\r\n\r\n {/* summary circle */}\r\n {summaryCard && (\r\n <g id=\"summary-circle\" style={{ opacity: 0, transition: \"all 0.5s\" }}>\r\n <circle r={summaryRingRadius} fill=\"white\" />\r\n <text\r\n textAnchor=\"middle\"\r\n y={-summaryRingRadius * 0.5}\r\n fontSize={summaryConceptFontSize}\r\n fontWeight={\"bold\"}\r\n fill={\"black\"}\r\n >\r\n {summaryCard.concept}\r\n </text>\r\n <text\r\n textAnchor=\"middle\"\r\n y={-summaryRingRadius * 0.35}\r\n fill={\"black\"}\r\n fontSize={summaryCategoryFontSize}\r\n >\r\n {Categories[summaryCard.category]?.name ?? summaryCard.category}\r\n </text>\r\n <line\r\n x1={-summaryRingRadius * 0.6}\r\n y1={-summaryRingRadius * 0.25}\r\n x2={summaryRingRadius * 0.6}\r\n y2={-summaryRingRadius * 0.25}\r\n stroke={\"black\"}\r\n />\r\n <foreignObject\r\n x={-summaryRingRadius * 0.75}\r\n y={-summaryRingRadius * 0.2}\r\n width={summaryRingRadius * 1.5}\r\n height={summaryRingRadius * 0.9}\r\n >\r\n <p className=\"text-center text-body\" style={{ fontSize: summaryCategoryFontSize }}>\r\n {summaryCard.summary}\r\n </p>\r\n </foreignObject>\r\n </g>\r\n )}\r\n {/* <g stroke=\"black\">\r\n <line y1={-codexHeight} y2={codexHeight} x={0} />\r\n <line x1={-codexWidth} x2={codexWidth} y={0} />\r\n </g> */}\r\n </svg>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype TKeyProps = {\r\n codexSortBy: TCodexSortBy;\r\n setCodexSortBy: (sortBy: TCodexSortBy) => void;\r\n setShowOnlyEssentials: (finished: boolean) => void;\r\n showOnlyEssentials: boolean;\r\n setCodexWidth: (width: number) => void;\r\n codexWidth: number;\r\n defaultCodexWidth: number;\r\n};\r\n\r\nfunction Key({\r\n codexSortBy,\r\n setCodexSortBy,\r\n setShowOnlyEssentials,\r\n showOnlyEssentials,\r\n setCodexWidth,\r\n codexWidth,\r\n defaultCodexWidth,\r\n}: TKeyProps) {\r\n const { sidebarCollapsed } = useContext(SidebarContext);\r\n const btnClass = \"btn btn-secondary border rounded-0 px-1 fs-7 \";\r\n const focusClass = \"btn btn-info border rounded-0 px-1 \";\r\n\r\n const ZoomInMouseDownHandler = () => {\r\n let count = 0;\r\n const interval = setInterval(() => {\r\n count++;\r\n setCodexWidth(codexWidth * Math.pow(1.05, count));\r\n }, 100);\r\n\r\n window.addEventListener(\"mouseup\", () => {\r\n clearInterval(interval);\r\n });\r\n };\r\n\r\n const ZoomOutMouseDownHandler = () => {\r\n let count = 0;\r\n const interval = setInterval(() => {\r\n count++;\r\n setCodexWidth(codexWidth * Math.pow(0.9, count));\r\n }, 100);\r\n\r\n window.addEventListener(\"mouseup\", () => {\r\n clearInterval(interval);\r\n });\r\n };\r\n\r\n function ZoomIn() {\r\n setCodexWidth(codexWidth * 1.05);\r\n }\r\n\r\n function ZoomOut() {\r\n setCodexWidth(codexWidth * 0.9);\r\n }\r\n\r\n function ResetZoom() {\r\n setCodexWidth(defaultCodexWidth);\r\n }\r\n\r\n if (sidebarCollapsed) {\r\n return (\r\n <div\r\n className=\"d-flex justify-content-center\"\r\n style={{ width: constants.sidebarCollapsedWidth + \"em\" }}\r\n >\r\n <div className=\"mt-2\" style={{ width: constants.sidebarCollapsedWidth / 2 + \"em\" }}>\r\n <BootstrapMenuIcon />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"d-flex justify-content-between flex-wrap p-4 mt-3\">\r\n <h3 className=\"text-center w-100\">Options</h3>\r\n <button\r\n className=\"btn btn-info w-100 rounded-0\"\r\n onClick={() => setShowOnlyEssentials(!showOnlyEssentials)}\r\n >\r\n {showOnlyEssentials ? \"See All Concepts\" : \"Show Only the Essentials\"}\r\n </button>\r\n <div className=\"w-100 text-center mt-2\">Sort By</div>\r\n <hr className=\"w-100 mt-0\" />\r\n <button\r\n className={codexSortBy === \"category\" ? focusClass : btnClass}\r\n style={{ width: \"30%\" }}\r\n onClick={() => setCodexSortBy(\"category\")}\r\n >\r\n Category\r\n </button>\r\n <button\r\n className={codexSortBy === \"focus\" ? focusClass : btnClass}\r\n style={{ width: \"30%\" }}\r\n onClick={() => setCodexSortBy(\"focus\")}\r\n >\r\n Focus\r\n </button>\r\n <button\r\n className={codexSortBy === \"pathway\" ? focusClass : btnClass}\r\n style={{ width: \"30%\" }}\r\n onClick={() => setCodexSortBy(\"pathway\")}\r\n >\r\n Pathway\r\n </button>\r\n <div className=\"w-100 text-center mt-2\"> Zoom</div>\r\n <hr className=\"w-100 mt-0\" />\r\n <button\r\n className={btnClass}\r\n style={{ width: \"30%\" }}\r\n onClick={() => ZoomIn()}\r\n onMouseDown={ZoomInMouseDownHandler}\r\n >\r\n Zoom In\r\n </button>\r\n <button\r\n className={btnClass}\r\n style={{ width: \"30%\" }}\r\n onClick={() => ZoomOut()}\r\n onMouseDown={ZoomOutMouseDownHandler}\r\n >\r\n Zoom Out\r\n </button>\r\n <button className={btnClass} style={{ width: \"30%\" }} onClick={() => ResetZoom()}>\r\n Reset\r\n </button>\r\n <div className=\"w-100 fs-6 mt-3 lead\">\r\n Tip: Spin the codex by clicking and dragging the background circle.\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction filteredConcepts(): TConcepts {\r\n let filteredConcepts: TConcepts = {};\r\n for (let conceptId in Concepts) {\r\n if (Concepts[conceptId].essential) {\r\n filteredConcepts[conceptId] = Concepts[conceptId];\r\n }\r\n }\r\n return filteredConcepts;\r\n}\r\n\r\nexport default function Codex() {\r\n SetDocumentTitle(\"Codex\");\r\n\r\n const availableWidth = window.innerWidth * 0.95;\r\n const defaultCodexWidth = availableWidth < 1000 ? availableWidth : 1000;\r\n const [codexWidth, setCodexWidth] = useState(defaultCodexWidth);\r\n const [codexSortBy, setCodexSortBy] = useState<TCodexSortBy>(\"category\");\r\n const [showOnlyEssentials, setShowOnlyEssentials] = useState(false);\r\n\r\n Concepts = showOnlyEssentials ? filteredConcepts() : RawConcepts;\r\n\r\n return (\r\n <SidebarPage.Page sidebarDefaultCollapsed={true}>\r\n <SidebarPage.Sidebar>\r\n <Key\r\n codexSortBy={codexSortBy}\r\n setCodexSortBy={setCodexSortBy}\r\n showOnlyEssentials={showOnlyEssentials}\r\n setShowOnlyEssentials={setShowOnlyEssentials}\r\n codexWidth={codexWidth}\r\n setCodexWidth={setCodexWidth}\r\n defaultCodexWidth={defaultCodexWidth}\r\n />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n <div className=\"overflow-auto py-5\">\r\n <PageHeader />\r\n <CodexSvg codexWidthProp={codexWidth} codexSortBy={codexSortBy} />\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n );\r\n}\r\nfunction PageHeader() {\r\n return (\r\n <div className=\"text-center mx-auto mb-3\" style={{ maxWidth: constants.contentWidth }}>\r\n <div className=\"display-4 noto-serif fw-semibold\">The Strategy Codex</div>\r\n <div className=\"lead\">\r\n Welcome to the Strategy Codex! Hover over a concept to learn more about it, or click on it\r\n to explore in detail.\r\n </div>\r\n <div className=\"text-grey-red\">Click and drag the Codex to spin it</div>\r\n </div>\r\n );\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport constants from \"Constants\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport MasterSidebar from \"components/navigation/MasterSidebar\";\r\nimport SidebarPage from \"../templates/SidebarPage\";\r\nimport Accordion from \"react-bootstrap/Accordion\";\r\nimport { Commandments } from \"lib/data/Commandments\";\r\n\r\ninterface IAccordionItem {\r\n id: string;\r\n url: string;\r\n summary: string;\r\n name: string;\r\n subTitle: string;\r\n}\r\n\r\nfunction VerticalAccordion({ items }: { items: IAccordionItem[] }) {\r\n return (\r\n <Accordion defaultActiveKey={Object.keys(items)[0]}>\r\n {Object.values(items).map((item, i) => {\r\n return (\r\n <Accordion.Item eventKey={item.id} key={item.id}>\r\n <Accordion.Header>\r\n <div className=\"w-100 py-4 px-4\">\r\n <h5 className=\"text-left w-100\">\r\n <Link to={item.url} className=\"text-body no-underline underline-on-hover\">\r\n {item.name}\r\n </Link>\r\n </h5>\r\n <h3 className=\"lead text-end fs-5 pe-5 w-100\">{item.subTitle}</h3>\r\n </div>\r\n </Accordion.Header>\r\n <Accordion.Body>\r\n <div className=\"px-4 py-4\">\r\n <div>{item.summary}</div>\r\n\r\n <div className=\"text-end\">\r\n <Link to={item.url}>\r\n <button className=\"btn btn-primary\">Check out Commandment #{i + 1}</button>\r\n </Link>\r\n </div>\r\n </div>\r\n </Accordion.Body>\r\n </Accordion.Item>\r\n );\r\n })}\r\n </Accordion>\r\n );\r\n}\r\n\r\nexport default function CommandmentsHome() {\r\n SetDocumentTitle(\"Commandments Home\");\r\n\r\n return (\r\n <SidebarPage.Page>\r\n <SidebarPage.Sidebar>\r\n <MasterSidebar />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n <div className=\"w-100 px-3\">\r\n <div className=\"container mb-5\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <div className=\" my-4\">\r\n <div className=\"text-center mb-4\">\r\n <h1 className=\"my-5\">The 10 Commandments of Business Strategy</h1>\r\n </div>\r\n </div>\r\n\r\n <div className=\"w-content mx-auto\">\r\n <VerticalAccordion items={Object.values(Commandments)} />\r\n </div>\r\n </div>\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n );\r\n}\r\n","/*\r\nCanvasJS React Chart - https://canvasjs.com/\r\nCopyright 2024 fenopix\r\n\r\n--------------------- License Information --------------------\r\nThe software in CanvasJS React Chart is free and open-source. But, CanvasJS React Chart relies on CanvasJS Chart which requires a valid CanvasJS Chart license for commercial use. Please refer to the following link for further details https://canvasjs.com/license/\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n*/\r\n\r\n/*tslint:disable*/\r\n/*eslint-disable*/\r\n/*jshint ignore:start*/\r\nvar React = require('react');\r\nvar CanvasJS = require('@canvasjs/charts');\r\nCanvasJS = CanvasJS.Chart ? CanvasJS : window.CanvasJS;\r\n\r\nclass CanvasJSChart extends React.Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\t\tthis.options = props.options ? props.options : {};\r\n\t\tthis.containerProps = props.containerProps ? { ...props.containerProps } : { width: \"100%\", position: \"relative\" };\r\n\t\tthis.containerProps.height = props.containerProps && props.containerProps.height ? props.containerProps.height : this.options.height ? this.options.height + \"px\" : \"400px\";\r\n\t\tthis.containerRef = React.createRef();\r\n\t}\r\n\tcomponentDidMount() {\r\n\t\t//Create Chart and Render\r\n\t\tthis.chart = new CanvasJS.Chart(this.containerRef.current, this.options);\r\n\t\tthis.chart.render();\r\n\r\n\t\tif (this.props.onRef)\r\n\t\t\tthis.props.onRef(this.chart);\r\n\t}\r\n\tshouldComponentUpdate(nextProps, nextState) {\r\n\t\t//Check if Chart-options has changed and determine if component has to be updated\r\n\t\treturn !(nextProps.options === this.options);\r\n\t}\r\n\tcomponentDidUpdate() {\r\n\t\t//Update Chart Options & Render\r\n\t\tthis.chart.options = this.props.options;\r\n\t\tthis.chart.render();\r\n\t}\r\n\tcomponentWillUnmount() {\r\n\t\t//Destroy chart and remove reference\r\n\t\tif (this.chart)\r\n\t\t\tthis.chart.destroy();\r\n\r\n\t\tif (this.props.onRef)\r\n\t\t\tthis.props.onRef(undefined);\r\n\t}\r\n\trender() {\r\n\t\treturn React.createElement('div', { id: this.props.id, ref: this.containerRef, style: this.containerProps });\r\n\t\t//return <div id={this.props.id} ref={this.containerRef} style={this.containerProps} />\r\n\t}\r\n}\r\n\r\nvar CanvasJSReact = {\r\n\tCanvasJSChart: CanvasJSChart,\r\n\tCanvasJS: CanvasJS\r\n};\r\n\r\nexport default CanvasJSReact;\r\n/*tslint:enable*/\r\n/*eslint-enable*/\r\n/*jshint ignore:end*/","import React from \"react\";\r\n//@ts-ignore\r\nimport CanvasJSReact from \"@canvasjs/react-charts\";\r\nimport Concepts from \"lib/data/Concepts\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport { Await, defer, useLoaderData } from \"react-router-dom\";\r\nimport { TGetWebUsageSummaryRes } from \"@sharedTypes/res.type\";\r\nimport { GetWebUsageSummary } from \"api/webUsage/GetWebUsageSummary\";\r\nimport Loading from \"components/LoadingPage\";\r\nimport constants from \"Constants\";\r\n\r\nconst CanvasJSChart = CanvasJSReact.CanvasJSChart;\r\n\r\nexport function Loader() {\r\n const webUsageSummaryPromise = GetWebUsageSummary();\r\n return defer({ webUsageSummaryPromise });\r\n}\r\n\r\ntype TWebUsageGraphDatum = {\r\n x: Date;\r\n y: number;\r\n};\r\n\r\nfunction DashboardLoadError() {\r\n return (\r\n <div style={{ minHeight: window.innerHeight - constants.navHeight }}>\r\n <p>Error loading dashboard data</p>\r\n </div>\r\n );\r\n}\r\n\r\nfunction WebTrafficChart({ webTraffic }: { webTraffic: TWebUsageGraphDatum[] }) {\r\n const options = {\r\n animationEnabled: true,\r\n theme: \"light2\",\r\n\r\n title: {\r\n text: \"Web Traffic - Total Clicks Per Day\",\r\n },\r\n axisX: {\r\n valueFormatString: \"DD MMM\",\r\n },\r\n axisY: {\r\n title: \"Clicks\",\r\n },\r\n data: [\r\n {\r\n type: \"line\",\r\n dataPoints: webTraffic,\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n <div>\r\n <CanvasJSChart options={options} />\r\n </div>\r\n );\r\n}\r\n\r\ntype TViewsPerPageGraphDatum = {\r\n label: string;\r\n y: number;\r\n};\r\n\r\nfunction ViewsPerPageChart({ viewsPerPage }: { viewsPerPage: TViewsPerPageGraphDatum[] }) {\r\n const options = {\r\n animationEnabled: true,\r\n theme: \"light2\",\r\n\r\n title: {\r\n text: \"Page Views - Clicks in the Last Month\",\r\n },\r\n axisX: {\r\n title: \"Page\",\r\n labelWrap: true,\r\n labelAngle: 0,\r\n labelFontSize: 10,\r\n },\r\n axisY: {\r\n title: \"Clicks\",\r\n },\r\n data: [\r\n {\r\n type: \"column\",\r\n dataPoints: viewsPerPage.slice(0, 15),\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n <div>\r\n <CanvasJSChart options={options} />\r\n </div>\r\n );\r\n}\r\n\r\nfunction Chart({ data }: { data: TGetWebUsageSummaryRes }) {\r\n if (data.status !== \"success\") {\r\n return <DashboardLoadError />;\r\n }\r\n\r\n const viewsPerPage = data.viewsPerPage\r\n .map((item) => {\r\n let displayPath;\r\n if (item.path === \"/\") {\r\n displayPath = \"Home\";\r\n } else if (item.path === \"/FocusHome\") {\r\n displayPath = \"Focus Home\";\r\n } else if (item.path.includes(\"user/concept\")) {\r\n displayPath = `Concept: ${Concepts[item.path.split(\"/\")[4]]?.name ?? \"unknown concept\"}${\r\n item.path.split(\"/\")[5] ? \" - \" + Pathways[item.path.split(\"/\")[5]]?.name : \"\"\r\n }`;\r\n } else if (item.path.includes(\"user/pathway\")) {\r\n displayPath = `Pathway: ${Pathways[item.path.split(\"/\")[3]]?.name ?? \"unknown pathway\"}`;\r\n } else if (item.path.includes(\"focus/\")) {\r\n displayPath = `Focus: ${Focuses[item.path.split(\"/\")[2]]?.name ?? \"unknown focus\"}`;\r\n } else {\r\n displayPath = item.path\r\n .split(\"/\")\r\n .filter((word: string) => word !== \"\")\r\n .map((w: string) => w[0].toUpperCase() + w.substring(1).toLowerCase())\r\n .join(\" \");\r\n }\r\n return { label: displayPath, y: item.count };\r\n })\r\n .sort((a, b) => b.y - a.y);\r\n\r\n const webTraffic = data.webTraffic.map((item) => {\r\n const date = new Date(item.date);\r\n date.setHours(0, 0, 0, 0);\r\n return { x: date, y: item.count, indexLabel: item.count.toString() };\r\n });\r\n\r\n let tempDate = new Date();\r\n tempDate.setHours(0, 0, 0, 0);\r\n Array(29)\r\n .fill(0)\r\n .map(() => {\r\n tempDate = new Date(tempDate);\r\n tempDate.setDate(tempDate.getDate() - 1);\r\n return tempDate;\r\n })\r\n .forEach((date) => {\r\n if (!webTraffic.find((item) => item.x.toLocaleDateString() === date.toLocaleDateString())) {\r\n webTraffic.push({ x: date, y: 0, indexLabel: \"0\" });\r\n }\r\n });\r\n\r\n webTraffic.sort((a, b) => {\r\n return new Date(a.x).getTime() - new Date(b.x).getTime();\r\n });\r\n\r\n return (\r\n <>\r\n <div className=\"display-4 text-center my-3\">Website Analytics Summary</div>\r\n <WebTrafficChart webTraffic={webTraffic} />\r\n <ViewsPerPageChart viewsPerPage={viewsPerPage} />\r\n </>\r\n );\r\n}\r\n\r\nexport default function Dashboard() {\r\n const data = useLoaderData() as {\r\n webUsageSummaryPromise: Promise<TGetWebUsageSummaryRes>;\r\n };\r\n\r\n return (\r\n <div className=\"w-100\">\r\n <React.Suspense fallback={<Loading> Loading Dashboard Data </Loading>}>\r\n <Await resolve={data.webUsageSummaryPromise} errorElement={<DashboardLoadError />}>\r\n {(data) => <Chart data={data} />}\r\n </Await>\r\n </React.Suspense>\r\n </div>\r\n );\r\n}\r\n","import { useRouteError } from \"react-router-dom\";\r\n\r\nexport default function ErrorPage() {\r\n const error: any = useRouteError();\r\n console.error(error);\r\n document.title = \"The Strategy Codex - Error\";\r\n\r\n return (\r\n <div id=\"error-page\">\r\n <h1>Oops!</h1>\r\n <p>Sorry, an unexpected error has occurred.</p>\r\n <p>\r\n <i>{error.statusText || error.message}</i>\r\n </p>\r\n </div>\r\n );\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport constants from \"Constants\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport MasterSidebar from \"components/navigation/MasterSidebar\";\r\nimport SidebarPage from \"../templates/SidebarPage\";\r\nimport { TFocus } from \"types/JsonType\";\r\nimport Accordion from \"react-bootstrap/Accordion\";\r\nimport useElementSize from \"hooks/useElementSize\";\r\nimport HorizontalAccordion from \"components/templates/HorizontalAccordion\";\r\n\r\nfunction Header() {\r\n const [headerContainer, { width }] = useElementSize();\r\n const screenSmall = width < 800;\r\n return (\r\n <div className=\" my-4\">\r\n <div className=\"text-center mb-4\">\r\n <div className=\"display-3 \">\r\n Strategy <span className=\"text-grey-red\">FOCUS</span>\r\n </div>\r\n <div className=\"lead fs-5 mt-1\">Zoom in on progress</div>\r\n </div>\r\n\r\n <div className=\"container-fluid p-0\">\r\n <div ref={headerContainer} className=\"row\">\r\n <div className={` ${screenSmall ? \"col-12\" : \"col-7\"}`}>\r\n <p>\r\n Business can be very complicated, due to its countless moving parts. It takes energy,\r\n focused in the right areas, to make an impact. Just like a magnifying glass focuses\r\n light to create energy in the form of heat, there are key elements of business\r\n strategy that, if focused on, create true business results.\r\n </p>\r\n <div className=\"ms-3\">\r\n {Object.values(Focuses).map(function (focus) {\r\n return (\r\n <div key={focus.id} className=\"d-flex align-items-center\">\r\n <Link to={focus.url} className=\"text-body no-underline\">\r\n <span className=\"fs-3 text-grey-red h-100\">{focus.letter}</span>\r\n <span className=\"underline-on-hover\">\r\n <b>{focus.name.slice(1)}</b>: {focus.question}\r\n </span>\r\n </Link>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n <div\r\n className={`${\r\n screenSmall ? \"col-12\" : \"col-5\"\r\n } text-center d-flex align-items-center justify-content-center`}\r\n >\r\n <div className=\"w-100 p-1 \" style={{ height: 300 }}>\r\n <img\r\n src={require(\"lib/img/Magnifying_Glass.png\")}\r\n className=\"h-100 w-100 object-fit-cover\"\r\n alt=\"\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction AccordionHeader({ focus }: { focus: TFocus }) {\r\n return (\r\n <div id=\"accordion-header\" className=\"text-center mt-4\">\r\n <img src={require(`lib/img/letters/${focus.letter}.png`)} height={25} alt=\"\" />\r\n </div>\r\n );\r\n}\r\n\r\nfunction AccordionContent({ focus }: { focus: TFocus }) {\r\n return (\r\n <div>\r\n <div className=\"px-3\">\r\n <div className=\"lead text-center mt-2\">\r\n <Link to={focus.url} className=\"text-body no-underline underline-on-hover\">\r\n {focus.name}\r\n </Link>\r\n </div>\r\n <div className=\"my-3\">{focus.summary}</div>\r\n </div>\r\n <img src={focus.imgSrc} className=\"w-100 opacity-0\" alt=\"\" />\r\n <Link to={focus.url}>\r\n <img\r\n src={focus.imgSrc}\r\n className=\"position-absolute bottom-0 end-0 object-fit-cover w-100\"\r\n alt=\"\"\r\n />\r\n </Link>\r\n </div>\r\n );\r\n}\r\n\r\nfunction FocusVerticalAccordion() {\r\n return (\r\n <Accordion defaultActiveKey={Object.keys(Focuses)[0]}>\r\n {Object.values(Focuses).map((focus) => {\r\n return (\r\n <Accordion.Item eventKey={focus.id} key={focus.id}>\r\n <Accordion.Header>\r\n <div className=\"text-center w-100 mb-4\">\r\n <AccordionHeader focus={focus} />\r\n </div>\r\n </Accordion.Header>\r\n <Accordion.Body>\r\n <div className=\"position-relative\">\r\n <AccordionContent focus={focus} />\r\n </div>\r\n </Accordion.Body>\r\n </Accordion.Item>\r\n );\r\n })}\r\n </Accordion>\r\n );\r\n}\r\n\r\nfunction FocusHorizontalAccordion() {\r\n return (\r\n <HorizontalAccordion.Container>\r\n {Object.values(Focuses).map((focus, i) => {\r\n return (\r\n <HorizontalAccordion.Tab key={focus.id} i={i}>\r\n <HorizontalAccordion.Header>\r\n <AccordionHeader focus={focus} />\r\n </HorizontalAccordion.Header>\r\n <HorizontalAccordion.Content>\r\n <AccordionContent focus={focus} />\r\n </HorizontalAccordion.Content>\r\n </HorizontalAccordion.Tab>\r\n );\r\n })}\r\n </HorizontalAccordion.Container>\r\n );\r\n}\r\n\r\nfunction FocusPreview() {\r\n const [contentContainer, { width }] = useElementSize();\r\n const screenSmall = width < 600;\r\n\r\n return (\r\n <div ref={contentContainer}>\r\n {screenSmall ? <FocusVerticalAccordion /> : <FocusHorizontalAccordion />}\r\n </div>\r\n );\r\n}\r\n\r\nexport default function FocusHome() {\r\n SetDocumentTitle(\"FOCUS Home\");\r\n\r\n return (\r\n <SidebarPage.Page>\r\n <SidebarPage.Sidebar>\r\n <MasterSidebar />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n <div className=\"w-100 px-3\">\r\n <div className=\"container mb-5\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <Header />\r\n <FocusPreview />\r\n </div>\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n );\r\n}\r\n","import constants from \"Constants\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { CodexSvg } from \"./Codex\";\r\nimport Videos from \"lib/data/Videos\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport LogoSvg from \"components/LogoSvg\";\r\n\r\nfunction MainPanel() {\r\n return (\r\n <div id=\"main-panel\" className=\"overflow-hidden py-5 \">\r\n <div style={{ maxWidth: constants.maxPageWidth }} className=\"mx-auto position-relative\">\r\n <div className=\"position-absolute d-flex justify-content-end align-items-center h-100 w-100\">\r\n <div className=\"h-100 d-flex justify-content-center align-items-center w-25\">\r\n <LogoSvg\r\n filter={constants.colors.tan3CssFilter}\r\n className=\"codex-logo-spin d-none d-sm-block position-absolute \"\r\n style={{\r\n height: \"150%\",\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"container-fluid\">\r\n <div className=\"row\">\r\n <div className=\"col-md-9 col-lg-7\">\r\n <div className=\"card border-0 shadow p-4\">\r\n <div className=\"card-body\">\r\n <div className=\"display-4 fw-bold mb-1\">\r\n <div className=\"text-dark-tan\">No Strategy?</div>\r\n <div className=\"text-grey-red\">No Problem.</div>\r\n </div>\r\n <div>\r\n <div className=\"lead fs-4 mb-4\">\r\n Get started today and <i>master</i> business strategy.\r\n </div>\r\n <hr className=\"my-4\" />\r\n <div className=\"row mb-4\">\r\n <div className=\"col-md-6\">\r\n <h5>What is Business Strategy?</h5>\r\n <p>\r\n Strategy is the plan to achieve a goal. It will take you from where you\r\n are to where you want to be.\r\n </p>\r\n </div>\r\n <div className=\"col-md-6\">\r\n <h5>Why is Strategy Important?</h5>\r\n <p>\r\n A powerful strategy eliminates waste. Focus your resources to maximize\r\n value and achieve your company's purpose.\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <Link className=\"btn btn-primary\" to=\"/FocusHome\">\r\n Start Learning\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction ToolsPanel() {\r\n const tools = [\r\n {\r\n title: \"Strategy FOCUS\",\r\n description: `Business can be very complicated, due to its countless moving parts. It takes energy, focused in the right areas, to make an impact. Just like a magnifying glass focuses light to create energy in the form of heat, there are key elements of business strategy that, if focused on, create true business results.`,\r\n url: \"/FocusHome\",\r\n imgSrc: require(\"lib/img/FocusTool.jpg\"),\r\n },\r\n {\r\n title: \"The Strategy Codex\",\r\n description: `The Strategy Codex is a graphic representation of the strategy process. It is a\r\n collection of strategy frameworks and diagnostic tools, all in one place. If you want a brief\r\n overview of many strategy concepts, this is the place to start.`,\r\n url: \"/codex\",\r\n imgSrc: require(\"lib/img/CodexTool.jpg\"),\r\n },\r\n ];\r\n return (\r\n <div id=\"tools-panel\" className=\"shadow-lg\">\r\n <div className=\"bg-grey-red\" style={{ paddingBlock: 120 }}>\r\n <div className=\"text-white mx-auto mb-5\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <div className=\"display-4 text-center fw-bold \">Strategy Tools</div>\r\n <div className=\"fs-4 text-center w-75 mx-auto\">\r\n Get to know the tools that will help you develop a strategy that will guide your company\r\n to success.\r\n </div>\r\n </div>\r\n <div className=\"container \">\r\n <div className=\"row\">\r\n {tools.map((tool) => {\r\n return (\r\n <div className=\"col-lg-6\" key={tool.title}>\r\n <div className=\"p-3 h-100\">\r\n <Link to={tool.url} className=\"text-body no-underline\">\r\n <div className=\"card rounded-0 shadow h-100 px-3 pb-0\">\r\n <div className=\"card-body px-4 py-4\">\r\n <h2 className=\"card-text text-center mb-4\">{tool.title}</h2>\r\n <img\r\n className=\"object-fit-cover rounded\"\r\n src={tool.imgSrc}\r\n alt=\"\"\r\n width={\"100%\"}\r\n />\r\n <div className=\"card-text fs-5 mt-4\">{tool.description}</div>\r\n <div\r\n className=\"text-grey-red text-end fw-bolder me-4\"\r\n style={{ fontSize: 60 }}\r\n >\r\n →\r\n </div>\r\n </div>\r\n </div>\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction CodexPanel() {\r\n const availableWidth = window.innerWidth * 0.95;\r\n const codexWidth = availableWidth < 1000 ? availableWidth : 1000;\r\n\r\n return (\r\n <div id=\"codex-panel\" style={{ marginTop: 70 }}>\r\n <div className=\"mb-5\">\r\n <div className=\"display-4 fw-bold text-darker-tan text-center\">The Strategy Codex</div>\r\n <div className=\"fs-4 text-center\">\r\n Our collection of strategy frameworks and diagnostic tools, all in one place.\r\n </div>\r\n <div className=\"lead text-center\">\r\n click{\" \"}\r\n <Link to={\"codex\"} className=\"lead text-body\">\r\n here\r\n </Link>{\" \"}\r\n to see it on its own page\r\n </div>\r\n <div className=\"py-4\">\r\n <CodexSvg codexWidthProp={codexWidth} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction VideosPanel() {\r\n return (\r\n <div id=\"videos-panel\">\r\n <div>\r\n <div className=\"text-white bg-dark-tan \" style={{ paddingTop: 100 }}>\r\n <div className=\"mx-auto\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <div className=\"text-white\">\r\n <div className=\"display-4 text-center fw-bold\">Video Resources</div>\r\n <div className=\"fs-4 text-center w-75 mx-auto\">\r\n Access our library of strategy videos to get in-depth summaries of important\r\n strategy concepts.\r\n </div>\r\n </div>\r\n <div className=\"container mt-4\">\r\n <div className=\"row \">\r\n {Videos.slice(0, 3).map((video) => {\r\n return (\r\n <div key={video.name} className=\"col-md-6 col-lg-4 my-2 px-3\">\r\n <div className=\"card p-0 border-0 h-100 shadow-lg-hover \">\r\n <a\r\n key={video.name}\r\n href={video.url}\r\n target=\"_blank\"\r\n rel=\"noreferrer\"\r\n className=\"no-underline text-body\"\r\n >\r\n <div className=\"card-body\">\r\n <img className=\"w-100\" src={video.thumbnail} alt={video.name} />\r\n <h3 className=\"text-center\">{video.name}</h3>\r\n <div>{video.summary}</div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n <div className=\"text-center mt-5\">\r\n <Link className=\"btn btn-lg btn-primary mb-5\" to=\"/videos\">\r\n See all Videos\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function Home() {\r\n SetDocumentTitle(\"Home\");\r\n\r\n return (\r\n <div className=\"w-100\">\r\n <MainPanel />\r\n <ToolsPanel />\r\n <CodexPanel />\r\n <VideosPanel />\r\n </div>\r\n );\r\n}\r\n","import QRCode from \"react-qr-code\";\r\n\r\nexport default function QrCode() {\r\n const ip = \"192.168.1.244\";\r\n const value = `http://${ip}:3000/`;\r\n\r\n return (\r\n <div\r\n className=\"d-flex flex-column w-100 justify-content-center align-items-center\"\r\n style={{ minHeight: window.innerHeight - 100 }}\r\n >\r\n <QRCode value={value} />\r\n <div className=\"mt-2\">{value}</div>\r\n </div>\r\n );\r\n}\r\n","import Students from \"lib/data/Students\";\r\nimport { TStudent } from \"types/JsonType\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport GublerImg from \"lib/img/team/t_gubler.jpg\";\r\nimport OldroydImg from \"lib/img/team/j_oldroyd.jpg\";\r\nimport TeamBG from \"lib/img/team/strategy-instructors.jpg\";\r\n\r\nfunction getContribution(student: TStudent) {\r\n let contribution = 0;\r\n let endDate = student.ended ? student.ended : new Date();\r\n const diff = endDate.getTime() - student.started.getTime();\r\n contribution = diff / (1000 * 60 * 60 * 24 * 365);\r\n return contribution;\r\n}\r\n\r\nexport default function Team() {\r\n SetDocumentTitle(\"Meet the Team\");\r\n Students.sort((a, b) => getContribution(b) - getContribution(a));\r\n\r\n return (\r\n <div className=\"h-100 mb-5 w-100\">\r\n <img src={TeamBG} alt=\"\" className=\"w-100\" />\r\n\r\n <div className=\"container my-5 \" style={{ maxWidth: 1106 }}>\r\n <div>\r\n <div className=\"display-1 text-center mt-5\">The Team </div>\r\n <div className=\"display-4 text-center\">Professors</div>\r\n <hr />\r\n </div>\r\n <div className=\"row my-4\">\r\n <div className=\"col-md-3 mb-2 mb-md-0\">\r\n <img className=\"w-100\" src={OldroydImg} alt=\"\" style={{ width: \"300px\" }} />\r\n </div>\r\n <div className=\"col-md-9\">\r\n <strong>Professor James Oldroyd</strong> is an associate professor of Strategy at the\r\n Marriott School of Business, Brigham Young University and the Ford Motor/Richard Cook\r\n Research Fellow. He received his Ph.D. from the Kellogg School of Management at\r\n Northwestern University. He was an associate professor of management at SKK-GSB in\r\n Seoul, South Korea for five years and an assistant professor of international business\r\n at The Ohio State University for three years. His research explores the intersection of\r\n strategy, innovation, networks, and knowledge flows. He has published in top research\r\n outlets such as the Academy of Management Review, Organization Science and Harvard\r\n Business Review. He teaches courses on strategy, strategy implementation, international\r\n business, and negotiations to undergraduates, MBAs, and executives. He is actively\r\n involved in consulting and delivering custom leadership training courses for numerous\r\n companies.\r\n </div>\r\n </div>\r\n <div className=\"row my-4\">\r\n <div className=\"col-md-3 mb-2 mb-md-0\">\r\n <img className=\"w-100\" src={GublerImg} alt=\"\" />\r\n </div>\r\n <div className=\"col-md-9\">\r\n <strong>Professor Timothy Gubler</strong> is an associate professor of Strategy at the\r\n Marriott School of Business, Brigham Young University. He received his Ph.D. from\r\n Washington University in St. Louis and has held faculty appointments at BYU and the\r\n University of California (Riverside). His research focuses on understanding the\r\n determinants of individual productivity and performance, with a focus on high knowledge\r\n and skill workers. Prior work has focused on the residential real estate industry,\r\n commercial laundry factories, emergency medical service professionals (i.e.,\r\n paramedics), and federal workers. His work has been published in top journals including\r\n Management Science, Organization Science, the Strategic Management Journal, and\r\n Psychological Science, and has won multiple academic awards. It has also been featured\r\n in major news outlets including the New York Times, the Wall Street Journal, the\r\n Financial Times, Forbes, NPR, USA Today, the Huffington Post, and many local papers. Tim\r\n is currently a senior editor at Organization Science, a top Business Management Journal.\r\n He teaches courses on business strategy to MBAs at BYU Marriott as well as to\r\n undergraduates. Prior to joining academia Tim worked as an electrician and company\r\n manager for his family’s electrical contracting business. Tim is a father of 5 kids and\r\n enjoys building things and being outdoors.\r\n </div>\r\n </div>\r\n <div className=\"display-4 text-center mt-5\">Students</div> <hr />\r\n <div className=\"d-flex flex-wrap w-100 justify-content-center align-items-center\">\r\n {Students.map((student) => {\r\n return (\r\n <div\r\n className=\"card p-0 m-3\"\r\n key={student.lastName}\r\n style={{ width: 300, height: 520 }}\r\n >\r\n <img\r\n src={student.imgSrc}\r\n alt=\"\"\r\n className=\"card-img-top object-fit-cover\"\r\n style={{ height: 335, objectPosition: \"top\" }}\r\n />\r\n <div className=\"card-body\">\r\n <h5 className=\"card-title\">\r\n {student.firstName} {student.lastName}\r\n </h5>\r\n <div className=\"card-text lh-1 mb-2\">{student.major}</div>\r\n <div className=\"card-text lh-1 mb-2\">{student.role}</div>\r\n {student.linkedin ? (\r\n <div className=\"card-text\">\r\n <a\r\n className=\"text-body\"\r\n href={student.linkedin}\r\n target=\"_blank\"\r\n rel=\"noreferrer\"\r\n >\r\n <small>LinkedIn Profile</small>\r\n </a>\r\n </div>\r\n ) : (\r\n \"\"\r\n )}\r\n <div className=\"card-text\"></div>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import Videos from \"lib/data/Videos\";\r\nimport PageTitleBanner from \"components/templates/PageTitleBanner\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\n\r\nimport VideosBG from \"lib/img/videosBG.png\";\r\n\r\nexport default function VideosPage() {\r\n SetDocumentTitle(\"Videos\");\r\n return (\r\n <div className=\"w-100\">\r\n <PageTitleBanner\r\n id=\"pathways-banner\"\r\n title=\"How-To Videos\"\r\n img={VideosBG}\r\n imgPosition=\"right\"\r\n description=\"The How-To Videos are a collection of short videos that explain strategic concepts and frameworks in a simple and easy-to-understand manner. Click on the link to explore the How-To Videos and learn more.\"\r\n />\r\n <div className=\"container\">\r\n <div className=\"grid-3 my-5\">\r\n {Videos.map(function (video) {\r\n return (\r\n <a\r\n key={video.name}\r\n href={video.url}\r\n target=\"_blank\"\r\n rel=\"noreferrer\"\r\n className=\"no-underline card mx-3 my-4 p-0 rounded-2 bg-body border-0 shadow-lg-hover\"\r\n style={{ maxWidth: \"500px\" }}\r\n >\r\n <img className=\"card-img-top video-img\" src={video.thumbnail} alt={video.name} />\r\n <div className=\"card-body\">\r\n <h3 className=\"text-center\">{video.name}</h3>\r\n <div>{video.summary}</div>\r\n </div>\r\n </a>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import BackToTopImg from \"lib/img/icons/collapse.png\";\r\n\r\nexport default function BackToTop() {\r\n return (\r\n <div>\r\n <button\r\n className=\"btn btn-light p-0 rounded-circle shadow-dark\"\r\n onClick={() => {\r\n window.scrollTo(0, 0);\r\n }}\r\n style={{ width: 40, height: 40 }}\r\n >\r\n <img\r\n src={BackToTopImg}\r\n alt=\"\"\r\n className=\"w-100 h-100 p-2\"\r\n style={{ transform: \"rotate(90deg)\" }}\r\n />\r\n </button>\r\n </div>\r\n );\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport { TConcept, TPathway, TFocus } from \"types/JsonType\";\r\nimport RightArrow from \"../bootstrap_icons/RightArrow\";\r\n\r\ntype TBreadcruptLinkProps = {\r\n link: { name: string; url: string };\r\n i: number;\r\n};\r\n\r\nfunction BreadcrumbLink({ link, i }: TBreadcruptLinkProps) {\r\n const focusLink = (\r\n <>\r\n <span className=\"text-body fs-7\">{link.name[0]}</span>\r\n {link.name.slice(1)}\r\n </>\r\n );\r\n const normalLink = link.name;\r\n return (\r\n <>\r\n <Link\r\n key={link.name}\r\n to={link.url}\r\n className=\"no-underline underline-on-hover text-grey-red mx-1 no-word-break no-word-wrap\"\r\n >\r\n {i === 1 ? focusLink : normalLink}\r\n </Link>\r\n <RightArrow key={link.url} />\r\n </>\r\n );\r\n}\r\n\r\nfunction LastElement({ link, i }: TBreadcruptLinkProps) {\r\n const normalLastElement = (\r\n <span key={link.name} className=\"no-word-break no-word-wrap mx-1\">\r\n {link.name}\r\n </span>\r\n );\r\n const focusLastElement = (\r\n <span key={link.name} className=\"no-word-break no-word-wrap mx-1\">\r\n <span className=\"text-grey-red fs-7\">{link.name[0]}</span>\r\n {link.name.slice(1)}\r\n </span>\r\n );\r\n return i === 1 ? focusLastElement : normalLastElement;\r\n}\r\n\r\ntype TBreadcrumbProps = {\r\n focus: TFocus;\r\n pathway?: TPathway;\r\n concept?: TConcept;\r\n};\r\nexport function Breadcrumb({ focus, pathway, concept }: TBreadcrumbProps) {\r\n const links = [\r\n {\r\n name: \"FOCUS\",\r\n url: \"/FocusHome\",\r\n },\r\n {\r\n name: focus.name,\r\n url: focus.url,\r\n },\r\n ];\r\n if (pathway) {\r\n links.push({\r\n name: pathway.name,\r\n url: pathway.url,\r\n });\r\n }\r\n if (concept) {\r\n links.push({\r\n name: concept.name,\r\n url: concept.url,\r\n });\r\n }\r\n\r\n return (\r\n <div className=\"bg-body px-2 py-1 round-bottom-end border fs-8 fw-bold\">\r\n <div className=\"d-flex align-items-center\">\r\n {links.map((link, i) => {\r\n const isLastElement = i === links.length - 1;\r\n return isLastElement ? (\r\n <LastElement key={link.name} link={link} i={i} />\r\n ) : (\r\n <BreadcrumbLink key={link.name} link={link} i={i} />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { Breadcrumb } from \"./Breadcrumb\";\r\nimport NavArrows from \"components/navigation/NavArrows\";\r\nimport { TConcept, TPathway, TFocus } from \"types/JsonType\";\r\nimport { Concepts } from \"lib/data/Concepts\";\r\nimport { Pathways } from \"lib/data/Pathways\";\r\nimport { Focuses } from \"lib/data/Focuses\";\r\nimport useWindowSize from \"hooks/useWindowSize\";\r\nimport constants from \"Constants\";\r\n\r\ntype TBreadcrumbsAndArrowsProps = {\r\n focus: TFocus;\r\n pathway?: TPathway;\r\n concept?: TConcept;\r\n};\r\n\r\ntype TPath = {\r\n id: string;\r\n url: string;\r\n};\r\n\r\nexport default function BreadcrumbsAndArrows({\r\n focus,\r\n pathway,\r\n concept,\r\n}: TBreadcrumbsAndArrowsProps) {\r\n if (useWindowSize().width < 768) {\r\n return null;\r\n }\r\n let paths: TPath[];\r\n let pageId: string;\r\n\r\n if (concept && pathway) {\r\n paths = pathway?.concepts\r\n .map((conceptId) => Concepts[conceptId])\r\n .reduce((acc, concept) => {\r\n acc.push({ id: concept.id, url: concept.url });\r\n return acc;\r\n }, [] as TPath[]);\r\n pageId = concept.id;\r\n } else if (pathway) {\r\n paths = Object.values(Pathways)\r\n .filter((pathway) => pathway.focus === focus.id)\r\n .reduce((acc, pathway) => {\r\n acc.push({ id: pathway.id, url: pathway.url });\r\n return acc;\r\n }, [] as TPath[]);\r\n\r\n pageId = pathway.id;\r\n } else {\r\n paths = Object.values(Focuses).reduce((acc, focus) => {\r\n acc.push({ id: focus.id, url: focus.url });\r\n return acc;\r\n }, [] as TPath[]);\r\n pageId = focus.id;\r\n }\r\n\r\n const index = paths.findIndex((path) => path.id === pageId);\r\n let leftPath = paths[index - 1]?.url;\r\n let rightPath = paths[index + 1]?.url;\r\n\r\n if (concept && leftPath) {\r\n leftPath += `/${pathway?.id}`;\r\n }\r\n if (concept && rightPath) {\r\n rightPath += `/${pathway?.id}`;\r\n }\r\n\r\n return (\r\n <div\r\n className=\"position-sticky d-flex justify-content-between z-1 \"\r\n style={{ top: constants.navHeight }}\r\n >\r\n <Breadcrumb focus={focus} pathway={pathway} concept={concept} />\r\n <NavArrows rightPath={rightPath} leftPath={leftPath} />\r\n </div>\r\n );\r\n}\r\n","import { GetFocusesView, TFullFocusView, TPathwayView, TFocusView } from \"lib/data/Views\";\r\nimport { useContext } from \"react\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\nimport { Accordion } from \"react-bootstrap\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport constants from \"Constants\";\r\nimport { SidebarContext } from \"components/templates/SidebarPage\";\r\nimport HouseIcon from \"components/bootstrap_icons/House\";\r\nimport LogoSvg from \"../LogoSvg\";\r\nimport BookIcon from \"../bootstrap_icons/Book\";\r\n\r\ntype Prettify<T> = {\r\n [K in keyof T]: T[K] extends object ? Prettify<T[K]> : T[K];\r\n} & unknown;\r\n\r\ntype TPrettyFocusView = Prettify<Prettify<TFullFocusView>>;\r\n\r\nfunction ConceptAccordionItem({\r\n pathway,\r\n conceptId,\r\n pageConcept,\r\n k,\r\n}: {\r\n pathway: TPathwayView;\r\n conceptId: string;\r\n pageConcept: string | undefined;\r\n k: number;\r\n}) {\r\n const concept = pathway.concepts[conceptId];\r\n return (\r\n <li className=\"lh-1 my-2\" key={k} style={{ marginLeft: 20 }}>\r\n <Link\r\n key={k}\r\n to={concept.url + \"/\" + pathway.id}\r\n className={\r\n \"no-underline underline-on-hover text-body \" +\r\n (conceptId === pageConcept ? \"fw-bold\" : \"\")\r\n }\r\n >\r\n {concept.name}\r\n </Link>\r\n </li>\r\n );\r\n}\r\n\r\nfunction PathwayAccordionItem({\r\n focus,\r\n pathwayId,\r\n pagePathway,\r\n pageConcept,\r\n}: {\r\n focus: TFocusView;\r\n pathwayId: string;\r\n pagePathway: string | undefined;\r\n pageConcept: string | undefined;\r\n}) {\r\n const pathway = focus.pathways[pathwayId];\r\n return (\r\n <Accordion.Item eventKey={pathwayId} className=\"rounded-0\">\r\n <Accordion.Header style={{ backgroundColor: \"#aaa2\" }}>\r\n <Link\r\n to={pathway.url}\r\n className=\"ms-4 no-underline text-body underline-on-hover my-3 \"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <span className={pathwayId === pagePathway ? \"fw-bold\" : \"\"}>{pathway.name}</span>\r\n </Link>\r\n </Accordion.Header>\r\n <Accordion.Body className=\"py-2 bg-tan-3\">\r\n <ul className=\"dashed\">\r\n {Object.keys(pathway.concepts).map((conceptId, k) => (\r\n <ConceptAccordionItem\r\n key={k}\r\n pathway={pathway}\r\n conceptId={conceptId}\r\n pageConcept={pageConcept}\r\n k={k}\r\n />\r\n ))}\r\n </ul>\r\n </Accordion.Body>\r\n </Accordion.Item>\r\n );\r\n}\r\n\r\ntype TFocusAccordionItemProps = {\r\n PageTree: TPrettyFocusView;\r\n focusId: string;\r\n pageFocus: string | undefined;\r\n pagePathway: string | undefined;\r\n pageConcept: string | undefined;\r\n};\r\n\r\nfunction FocusAccordionItem({\r\n PageTree,\r\n focusId,\r\n pageFocus,\r\n pagePathway,\r\n pageConcept,\r\n}: TFocusAccordionItemProps) {\r\n const focus = PageTree[focusId];\r\n const { sidebarCollapsed } = useContext(SidebarContext);\r\n return (\r\n <Accordion.Item eventKey={focusId}>\r\n <Accordion.Header>\r\n <Link\r\n to={focus.url}\r\n className=\"no-underline text-body underline-on-hover d-flex my-3\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n <div className=\"d-flex justify-content-center align-items-center \">\r\n <div\r\n className=\"d-flex justify-content-center align-items-center \"\r\n style={{ width: constants.sidebarCollapsedWidth + \"em\" }}\r\n >\r\n <img\r\n src={require(`lib/img/letters/${focus.letter}.png`)}\r\n height=\"20\"\r\n alt=\"\"\r\n style={{ filter: constants.colors.darkTanCssFilter }}\r\n />\r\n </div>\r\n <h5 className={\"my-0 ms-1 me-4 \" + (pageFocus === focus.id ? \"fw-bold \" : \"\")}>\r\n {focus.name}\r\n </h5>\r\n </div>\r\n </Link>\r\n </Accordion.Header>\r\n <Accordion.Body className={`p-0 ${sidebarCollapsed && \"collapse\"}`}>\r\n <Accordion defaultActiveKey={pagePathway && pageConcept ? pagePathway : \"\"} flush>\r\n {Object.keys(focus.pathways).map((pathwayId, j) => (\r\n <PathwayAccordionItem\r\n key={j}\r\n pathwayId={pathwayId}\r\n focus={focus}\r\n pagePathway={pagePathway}\r\n pageConcept={pageConcept}\r\n />\r\n ))}\r\n </Accordion>\r\n </Accordion.Body>\r\n </Accordion.Item>\r\n );\r\n}\r\n\r\nfunction SidebarMainLink({ Icon, url, title }: { Icon: any; url: string; title: string }) {\r\n return (\r\n <Link to={url} className=\"no-underline text-body \">\r\n <div className=\"py-3 sidebar-title border-bottom d-flex bg-tan-3-hover\">\r\n <div\r\n className=\"d-flex justify-content-center align-items-center\"\r\n style={{ width: constants.sidebarCollapsedWidth + \"em\" }}\r\n >\r\n <div className=\"w-50\">\r\n <Icon />\r\n </div>\r\n </div>\r\n <h5 className=\"mb-0 lead\">{title}</h5>\r\n </div>\r\n </Link>\r\n );\r\n}\r\n\r\nexport default function MasterSidebar() {\r\n const PageTree: TPrettyFocusView = GetFocusesView();\r\n const path = useLocation().pathname;\r\n const pathArray = path.split(\"/\").filter((path) => path !== \"\");\r\n\r\n let pageFocus: string | undefined;\r\n let pagePathway: string | undefined;\r\n let pageConcept: string | undefined;\r\n\r\n if (pathArray[0] === \"focus\") {\r\n pageFocus = pathArray[1];\r\n } else if (pathArray[1] === \"pathway\") {\r\n pagePathway = pathArray[2];\r\n pageFocus = Pathways[pathArray[2]].focus;\r\n } else if (pathArray[1] === \"concept\") {\r\n pageConcept = pathArray[3];\r\n pagePathway = pathArray[4];\r\n pageFocus = Pathways[pagePathway]?.focus;\r\n }\r\n\r\n return (\r\n <div className=\"mb-5\">\r\n <SidebarMainLink\r\n Icon={() => HouseIcon({ fill: constants.colors.greyBlue })}\r\n url=\"/\"\r\n title=\"Home\"\r\n />\r\n <SidebarMainLink\r\n Icon={() => LogoSvg({ filter: constants.colors.greyBlueCssFilter, className: \"w-100\" })}\r\n url=\"/codex\"\r\n title=\"The Codex\"\r\n />\r\n <SidebarMainLink\r\n Icon={() => BookIcon({ fill: constants.colors.greyBlue })}\r\n url=\"/FocusHome\"\r\n title=\"FOCUS\"\r\n />\r\n {/* <SidebarMainLink */}\r\n {/* Icon={() => BookIcon({ fill: constants.colors.greyBlue })} */}\r\n {/* url=\"/commandments\" */}\r\n {/* title=\"Commandments\" */}\r\n {/* /> */}\r\n <Accordion className=\"\" defaultActiveKey={pageFocus && pagePathway ? pageFocus : \"\"} flush>\r\n {Object.keys(PageTree).map((focusId) => (\r\n <FocusAccordionItem\r\n key={focusId}\r\n PageTree={PageTree}\r\n focusId={focusId}\r\n pageFocus={pageFocus}\r\n pagePathway={pagePathway}\r\n pageConcept={pageConcept}\r\n />\r\n ))}\r\n </Accordion>\r\n </div>\r\n );\r\n}\r\n","import { useContext } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Searchbar from \"components/navigation/SearchBar\";\r\nimport { useSearchParams } from \"react-router-dom\";\r\nimport UserContext from \"context/UserContext\";\r\nimport constants from \"Constants\";\r\nimport User from \"components/bootstrap_icons/User\";\r\nimport { Dropdown, DropdownButton } from \"react-bootstrap\";\r\nimport useElementSize from \"hooks/useElementSize\";\r\nimport { TUser } from \"@sharedTypes/res.type\";\r\n\r\nfunction UserNabTabTitle({ user }: { user: TUser }) {\r\n const [usernameElement, { height: usernameElementHeight }] = useElementSize();\r\n\r\n return (\r\n <>\r\n <User width={usernameElementHeight} height={usernameElementHeight} className=\"me-2\" />\r\n <div className=\"fs-6\" ref={usernameElement}>\r\n {user.firstName} {user.lastName}\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nfunction UserNavTab({ user }: { user: TUser }) {\r\n const logoutHandler = () => {\r\n localStorage.removeItem(\"token\");\r\n localStorage.removeItem(\"userId\");\r\n window.location.reload();\r\n };\r\n\r\n return (\r\n <div className=\"position-relative z-3\" id=\"user-tab\">\r\n <DropdownButton\r\n variant={`btn-link border-0 text-white d-flex align-items-center`}\r\n title={<UserNabTabTitle user={user} />}\r\n >\r\n <Dropdown.Item>\r\n <Link to={\"/user/account\"} className=\"dropdown-item\">\r\n Manage Account\r\n </Link>\r\n </Dropdown.Item>\r\n <Dropdown.Divider />\r\n\r\n <Dropdown.Item>\r\n <div className=\"dropdown-item\" id=\"logout-btn\" onClick={logoutHandler}>\r\n Logout\r\n </div>\r\n </Dropdown.Item>\r\n </DropdownButton>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function Nav() {\r\n const [collapsed, setCollapsed] = useState(true);\r\n const { user } = useContext(UserContext);\r\n\r\n const searchParams = useSearchParams()[0];\r\n let return_url = searchParams.get(\"return_url\") ?? window.location.pathname;\r\n if ([\"/login\", \"/register/\", \"/forgotpassword\"].includes(return_url)) {\r\n return_url = \"/\";\r\n }\r\n const collapsedHandler = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n window.addEventListener(\"click\", (e: any) => {\r\n const navIdList = [\r\n \"nav\",\r\n \"navbar-btn\",\r\n \"navbar-nav\",\r\n \"navbar-btn-icon\",\r\n \"search-link\",\r\n \"searchbar\",\r\n \"search-input\",\r\n \"searchbar-dropdown\",\r\n \"search-link\",\r\n \"user-tab\",\r\n \"input-group-dropdown-1\",\r\n \"dropdown-link\",\r\n ];\r\n if (!navIdList.includes(e.target.id)) {\r\n setCollapsed(true);\r\n }\r\n });\r\n\r\n const navBtns = [\r\n {\r\n name: \"Home\",\r\n url: \"/\",\r\n admin: false,\r\n },\r\n {\r\n name: \"The Codex\",\r\n url: \"/codex\",\r\n admin: false,\r\n },\r\n // {\r\n // name: \"Commandments\",\r\n // url: \"/commandments\",\r\n // admin: false,\r\n // },\r\n {\r\n name: \"FOCUS\",\r\n url: \"/FocusHome\",\r\n admin: false,\r\n },\r\n\r\n {\r\n name: \"The Team\",\r\n url: \"/team\",\r\n admin: false,\r\n },\r\n {\r\n name: \"Tools\",\r\n url: \"/tools\",\r\n admin: false,\r\n },\r\n {\r\n name: \"Dashboard\",\r\n url: \"/admin/dashboard\",\r\n admin: true,\r\n },\r\n {\r\n name: \"Videos\",\r\n url: \"/videos\",\r\n admin: false,\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n <nav\r\n className=\"navbar navbar-expand-xl p-2 ps-0 text-light fixed-top bg-darker-tan\"\r\n id=\"nav\"\r\n style={{ minHeight: constants.navHeight, position: \"sticky\" }}\r\n >\r\n <Link className=\"navbar-brand mx-2 mx-xl-4 fs-5\" to=\"/\">\r\n Strategy Unlocked\r\n </Link>\r\n <button\r\n className=\"navbar-toggler navbar-dark navbar\"\r\n id=\"navbar-btn\"\r\n type=\"button\"\r\n onClick={collapsedHandler}\r\n aria-controls=\"navbar-btn\"\r\n aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\"\r\n >\r\n <span className=\"navbar-toggler-icon\" id=\"navbar-btn-icon\"></span>\r\n </button>\r\n <div className={\"navbar-collapse \" + (collapsed ? \" collapse\" : \"\")} id=\"navbar-nav\">\r\n <ul className=\"navbar-nav w-100 d-flex\">\r\n {navBtns.map((navBtn) => {\r\n let isActive =\r\n window.location.pathname === navBtn.url ||\r\n (navBtn.url === \"/FocusHome\" && window.location.pathname.includes(\"/focus\")) ||\r\n (navBtn.url === \"/tools\" && window.location.pathname.includes(\"/tool\"));\r\n if (navBtn.admin && !user.isAdmin) {\r\n return null;\r\n }\r\n return (\r\n <li className=\"nav-item px-2 px-xl-0 no-word-wrap \" key={navBtn.name}>\r\n <Link\r\n onClick={collapsedHandler}\r\n to={navBtn.url}\r\n className={`nav-link ${!isActive ? \"text-tan-3\" : \"\"}`}\r\n >\r\n {navBtn.name}\r\n </Link>\r\n </li>\r\n );\r\n })}\r\n <li className=\"nav-item px-2 px-xl-0 no-word-wrap text-decoration-underline w-100\">\r\n <Searchbar collapsed={collapsed} setCollapsed={setCollapsed} />\r\n </li>\r\n {localStorage.getItem(\"token\") ? (\r\n <li\r\n id=\"user-tab\"\r\n className=\"nav-item px-2 px-xl-0 no-word-wrap d-flex align-items-center \"\r\n >\r\n <UserNavTab user={user} />\r\n </li>\r\n ) : (\r\n <li className=\"nav-item px-2 px-xl-0 no-word-wrap \">\r\n <Link\r\n onClick={() => {\r\n collapsedHandler();\r\n }}\r\n to={\"login/?return_url=\" + return_url}\r\n className=\"nav-link\"\r\n >\r\n Log In\r\n </Link>\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </nav>\r\n </>\r\n );\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport RightArrow from \"../bootstrap_icons/RightArrow\";\r\n\r\nexport default function NavArrows({\r\n leftPath,\r\n rightPath,\r\n}: {\r\n leftPath?: string;\r\n rightPath?: string;\r\n}) {\r\n return (\r\n <div className=\"bg-body px-2 pt-1 pb-2 round-bottom-start border fs-8 fw-bold\">\r\n <div className=\"d-flex align-items-center\">\r\n <Link\r\n to={leftPath ?? \"\"}\r\n className=\"text-body me-2\"\r\n style={{ visibility: !leftPath ? \"hidden\" : \"visible\" }}\r\n >\r\n <div style={{ scale: \"-1 1\" }}>\r\n <RightArrow />\r\n </div>\r\n </Link>\r\n <Link\r\n to={rightPath ?? \"\"}\r\n className=\"text-body\"\r\n style={{ visibility: !rightPath ? \"hidden\" : \"visible\" }}\r\n >\r\n <RightArrow />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","\"use client\";\n\nimport * as React from 'react';\n\n// TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst InputGroupText = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'span',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group-text');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nInputGroupText.displayName = 'InputGroupText';\nexport default InputGroupText;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormCheckInput from './FormCheckInput';\nimport InputGroupContext from './InputGroupContext';\nimport InputGroupText from './InputGroupText';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst InputGroupCheckbox = props => /*#__PURE__*/_jsx(InputGroupText, {\n children: /*#__PURE__*/_jsx(FormCheckInput, {\n type: \"checkbox\",\n ...props\n })\n});\nconst InputGroupRadio = props => /*#__PURE__*/_jsx(InputGroupText, {\n children: /*#__PURE__*/_jsx(FormCheckInput, {\n type: \"radio\",\n ...props\n })\n});\nconst InputGroup = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n hasValidation,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n\n // Intentionally an empty object. Used in detecting if a dropdown\n // exists under an input group.\n const contextValue = useMemo(() => ({}), []);\n return /*#__PURE__*/_jsx(InputGroupContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, hasValidation && 'has-validation')\n })\n });\n});\nInputGroup.displayName = 'InputGroup';\nexport default Object.assign(InputGroup, {\n Text: InputGroupText,\n Radio: InputGroupRadio,\n Checkbox: InputGroupCheckbox\n});","import { useEffect, useMemo, useState } from \"react\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\nimport PathwaysJson from \"lib/data/Pathways\";\r\nimport { TPathways, TConcepts } from \"types/JsonType\";\r\nimport ConceptsJson from \"lib/data/Concepts\";\r\nimport { Dropdown, DropdownButton, InputGroup } from \"react-bootstrap\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport Tools from \"lib/data/Tools\";\r\n\r\nconst Pathways: TPathways = PathwaysJson;\r\nconst Concepts: TConcepts = ConceptsJson;\r\n\r\ntype TSearchValue = {\r\n name: string;\r\n type: string;\r\n url: string;\r\n parent?: string;\r\n};\r\n\r\ntype TSearchbarProps = {\r\n collapsed: boolean;\r\n setCollapsed: (collapsed: boolean) => void;\r\n};\r\n\r\nfunction CleanString(string: string): string {\r\n return string.replace(/[.,/#!$%^•&*;:{}=\\-_`~()\\s]/g, \"\").toLowerCase();\r\n}\r\n\r\nfunction GetSearchList() {\r\n const SearchFocus: TSearchValue[] = Object.values(Focuses).map((focus) => ({\r\n url: focus.url,\r\n type: \"Focus\",\r\n name: focus.letter + \" - \" + focus.name,\r\n }));\r\n\r\n const SearchPathways: TSearchValue[] = Object.values(Pathways).map((pathway) => ({\r\n url: pathway.url,\r\n type: \"Pathway\",\r\n name: pathway.name,\r\n parent: Focuses[pathway.focus].name,\r\n }));\r\n\r\n const SearchConcepts: TSearchValue[] = Object.values(Concepts).map((concept) => {\r\n const conceptPathway =\r\n Object.values(Pathways).find((pathway) => pathway.concepts.includes(concept.id as any))\r\n ?.name || \"\";\r\n return {\r\n url: `${concept.url}/${conceptPathway}`,\r\n type: \"Framework\",\r\n name: concept.name,\r\n parent: conceptPathway,\r\n };\r\n });\r\n\r\n const SearchTools: TSearchValue[] = Object.values(Tools).map((tool) => ({\r\n url: tool.url,\r\n type: \"Tool\",\r\n name: tool.name,\r\n }));\r\n\r\n const SearchList: TSearchValue[] = [\r\n ...SearchFocus,\r\n ...SearchPathways,\r\n ...SearchConcepts,\r\n ...SearchTools,\r\n { url: \"/\", type: \"Main Page\", name: \"Home Page\" },\r\n { url: \"/codex\", type: \"Main Page\", name: \"The Codex\" },\r\n { url: \"/team\", type: \"Main Page\", name: \"The Team\" },\r\n { url: \"/videos\", type: \"Main Page\", name: \"Videos\" },\r\n { url: \"/FocusHome\", type: \"Main Page\", name: \"Focus Home\" },\r\n ];\r\n\r\n return SearchList;\r\n}\r\n\r\nexport default function Searchbar({ setCollapsed }: TSearchbarProps) {\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const [dropdownFilter, setDropdownFilter] = useState({\r\n name: \"All\",\r\n value: \"All\",\r\n });\r\n const navigate = useNavigate();\r\n\r\n const hasSearchInput = !!searchInput;\r\n\r\n useEffect(() => {\r\n if (!hasSearchInput) {\r\n setDropdownFilter({ name: \"All\", value: \"All\" });\r\n }\r\n }, [hasSearchInput]);\r\n\r\n const dropdownFilterOptions = [\r\n {\r\n name: \"All\",\r\n value: \"All\",\r\n },\r\n {\r\n name: \"Pathways\",\r\n value: \"Pathway\",\r\n },\r\n {\r\n name: \"Frameworks\",\r\n value: \"Framework\",\r\n },\r\n {\r\n name: \"Focuses\",\r\n value: \"Focus\",\r\n },\r\n {\r\n name: \"Tools\",\r\n value: \"Tool\",\r\n },\r\n {\r\n name: \"Main Pages\",\r\n value: \"Main Page\",\r\n },\r\n ];\r\n\r\n const SearchList = useMemo(() => GetSearchList(), []);\r\n\r\n let searchResults = SearchList.slice();\r\n\r\n let input = CleanString(searchInput);\r\n\r\n searchResults = searchResults.filter((searchValue) => {\r\n const matchesSearch = !!CleanString(searchValue.name).match(input);\r\n const matchesType = dropdownFilter.value === \"All\" || searchValue.type === dropdownFilter.value;\r\n return matchesSearch && matchesType;\r\n });\r\n\r\n searchResults.sort((a, b) => {\r\n const aName = CleanString(a.name);\r\n const bName = CleanString(b.name);\r\n\r\n if (aName.startsWith(input) && !bName.startsWith(input)) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n searchResults = searchResults.slice(0, 15);\r\n\r\n const submitHandler = (e: any) => {\r\n if (e.keyCode === 13) {\r\n if (searchResults.length === 0) {\r\n navigate(`/user/search?search=${searchInput}`);\r\n } else if (searchResults.length !== SearchList.length) {\r\n const listItem = searchResults[0];\r\n navigate(listItem.url);\r\n }\r\n }\r\n };\r\n\r\n window.addEventListener(\"click\", (e: any) => {\r\n const ids = [\"input-group-dropdown-1\", \"search-link\", \"search-input\", \"dropdown-link\"];\r\n\r\n if (!ids.includes(e.target.id)) {\r\n setSearchInput(\"\");\r\n }\r\n });\r\n\r\n return (\r\n <div className=\"h-100\" id=\"searchbar\">\r\n <div className=\"position-relative\">\r\n <InputGroup>\r\n <DropdownButton\r\n variant={`primary text-decoration-none ${\r\n (searchInput || dropdownFilter.value !== \"All\") && \"rounded-bottom-0\"\r\n } `}\r\n title={dropdownFilter.name}\r\n id=\"input-group-dropdown-1\"\r\n style={{ textDecorationColor: \"rgb(254,254,254)\" }}\r\n >\r\n <Dropdown.Item\r\n onClick={() =>\r\n setDropdownFilter({\r\n name: \"All\",\r\n value: \"All\",\r\n })\r\n }\r\n id=\"dropdown-link\"\r\n >\r\n All\r\n </Dropdown.Item>\r\n <Dropdown.Divider />\r\n {dropdownFilterOptions.map((option, i) => {\r\n if (i === 0) {\r\n return null;\r\n }\r\n return (\r\n <Dropdown.Item\r\n key={option.value}\r\n onClick={() => setDropdownFilter(option)}\r\n id=\"dropdown-link\"\r\n >\r\n {option.name}\r\n </Dropdown.Item>\r\n );\r\n })}\r\n </DropdownButton>\r\n\r\n <input\r\n autoComplete=\"off\"\r\n type=\"text\"\r\n id=\"search-input\"\r\n className={`form-control ${\r\n (searchInput || dropdownFilter.value !== \"All\") && \"rounded-bottom-0\"\r\n } `}\r\n placeholder=\"Search\"\r\n onChange={(e) => {\r\n setSearchInput(e.target.value);\r\n }}\r\n value={searchInput}\r\n style={{ minWidth: 300, height: 40 }}\r\n onKeyDown={submitHandler}\r\n />\r\n </InputGroup>\r\n\r\n {(searchInput || dropdownFilter.name !== \"All\") && (\r\n <div className=\"position-absolute w-100 rounded-bottom-3 border border-secondary border-top-0 overflow-hidden bg-tan-2 z-3\">\r\n {searchResults.map((searchResult, i) => (\r\n <Link to={searchResult.url} className=\"no-underline\" key={i}>\r\n <div\r\n className=\"text-body px-2 py-1 border-top border-secondary d-flex justify-content-between align-items-center bg-tan-3-hover\"\r\n id=\"search-link\"\r\n onClick={() => setCollapsed(true)}\r\n >\r\n <div id=\"search-link\">\r\n {searchResult.name}\r\n {searchResult.parent && <span id=\"search-link\"> - {searchResult.parent}</span>}\r\n </div>\r\n <div className=\"text-secondary fs-8\" id=\"search-link\">\r\n {searchResult.type}\r\n </div>\r\n </div>\r\n </Link>\r\n ))}\r\n <Link\r\n to={`/user/search?search=${searchInput}`}\r\n className=\"d-block text-body text-decoration-none px-2 py-1 border-top border-secondary bg-light-grey-blue\"\r\n id=\"search-link\"\r\n onClick={() => {\r\n setCollapsed(true);\r\n }}\r\n >\r\n Go To Advanced Search: {searchInput}\r\n {/* <div\r\n className=\"cursor-pointer fw-bold fs-6 noto-serif text-wrap\"\r\n id=\"search-link\"\r\n ></div> */}\r\n </Link>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import SearchIcon from \"components/bootstrap_icons/SearchIcon\";\r\nimport constants from \"Constants\";\r\nimport { useCallback, useEffect, useState } from \"react\";\r\nimport Tools from \"lib/data/Tools\";\r\nimport Concepts from \"lib/data/Concepts\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport { Link, useSearchParams } from \"react-router-dom\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport {\r\n TCategory,\r\n TConcepts,\r\n TFocus,\r\n TFocuses,\r\n TPathway,\r\n TPathways,\r\n TTools,\r\n} from \"types/JsonType\";\r\nimport Categories from \"lib/data/Categories\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport GetFuncParams from \"utils/GetFuncParams\";\r\nimport Stars from \"components/bootstrap_icons/Stars\";\r\nimport useChatBot from \"hooks/useChatBot\";\r\n\r\ntype TSearchResult = {\r\n source: \"1name\" | \"2summary\" | \"3html\" | \"4null\";\r\n id: string;\r\n name: string;\r\n summary: string;\r\n preview: string;\r\n url: string;\r\n type: string;\r\n parent?: TFocus | TPathway | TCategory;\r\n};\r\n\r\nfunction HighlightResult(result: TSearchResult, searchInput: string): TSearchResult {\r\n let sourceStr = result.preview;\r\n\r\n const regex = new RegExp(searchInput, \"gi\");\r\n const matches = Array.from(new Set(sourceStr.match(regex) || []));\r\n\r\n matches.forEach((match) => {\r\n sourceStr = sourceStr.replaceAll(match, `**${match}**`);\r\n });\r\n\r\n sourceStr = sourceStr.replaceAll(\"****\", \"\");\r\n return {\r\n ...result,\r\n preview: sourceStr,\r\n };\r\n}\r\n\r\nfunction GetParagraphs(component: any, paragraphs: string[], filePath: string) {\r\n if (typeof component.type === \"function\") {\r\n if (GetFuncParams(component.type).length === 0) {\r\n try {\r\n return GetParagraphs(component.type(), paragraphs, filePath);\r\n } catch (e: any) {\r\n if (!e.message.includes(\"Hooks can only be called inside of the body of a function\")) {\r\n console.error(filePath, e, component);\r\n }\r\n return paragraphs;\r\n }\r\n }\r\n }\r\n\r\n if (Array.isArray(component.props.children)) {\r\n component.props.children.forEach((child: any) => {\r\n if (typeof child === \"string\") {\r\n paragraphs.push(child);\r\n } else {\r\n GetParagraphs(child, paragraphs, filePath);\r\n }\r\n });\r\n return paragraphs;\r\n }\r\n\r\n if (component.props.children?.$$typeof === Symbol.for(\"react.element\")) {\r\n return GetParagraphs(component.props.children, paragraphs, filePath);\r\n }\r\n\r\n if (typeof component.props.children === \"string\") {\r\n paragraphs.push(component.props.children);\r\n }\r\n\r\n return paragraphs;\r\n}\r\n\r\nfunction GetHtmlResults(filePath: string, searchInput: string) {\r\n // if the component has react hooks, the require will throw an error. This works only on text-based components\r\n try {\r\n require(`../../${filePath}`).default();\r\n } catch (e: any) {\r\n if (!e.message.includes(\"Hooks can only be called inside of the body of a function\")) {\r\n console.error(e);\r\n }\r\n return [];\r\n }\r\n\r\n const component = require(`../../${filePath}`).default();\r\n\r\n return GetParagraphs(component, [], filePath).filter((paragraph) =>\r\n paragraph.toLowerCase().includes(searchInput.toLowerCase()),\r\n );\r\n}\r\n\r\nfunction GetSearchResults(searchInput: string): TSearchResult[] {\r\n const finalSearchResults: TSearchResult[] = [];\r\n type TDataSources = TFocuses | TPathways | TConcepts | TTools;\r\n const dataSources: TDataSources[] = [Focuses, Pathways, Concepts, Tools];\r\n\r\n const mainPagePaths = [\r\n {\r\n filePath: \"components/main_pages/Home\",\r\n id: \"home\",\r\n name: \"Home\",\r\n summary: \"Home Page\",\r\n url: \"/\",\r\n },\r\n {\r\n filePath: \"components/main_pages/Codex\",\r\n id: \"codex\",\r\n name: \"Codex\",\r\n summary: \"Codex Page\",\r\n url: \"/codex\",\r\n },\r\n {\r\n filePath: \"components/main_pages/FocusHome\",\r\n id: \"focusHome\",\r\n name: \"Focus Home\",\r\n summary: \"Focus Home Page\",\r\n url: \"/focushome\",\r\n },\r\n ];\r\n\r\n const mainPageSearchResults: TSearchResult[] = mainPagePaths\r\n .map((mainPagePath) => {\r\n const results: TSearchResult[] = GetHtmlResults(mainPagePath.filePath, searchInput).map(\r\n (paragraph) => ({\r\n ...mainPagePath,\r\n preview: paragraph,\r\n type: \"Main Page\",\r\n source: \"3html\",\r\n }),\r\n );\r\n return results;\r\n })\r\n .flat()\r\n .map((result) => HighlightResult(result, searchInput));\r\n\r\n finalSearchResults.push(...mainPageSearchResults);\r\n\r\n dataSources.forEach((dataSource) => {\r\n finalSearchResults.push(\r\n ...Object.values(dataSource)\r\n .map((data) => {\r\n if (data.type === \"Pathway\") {\r\n data.parent = Focuses[data.focus];\r\n } else if (data.type === \"Concept\") {\r\n const conceptPathway = Object.values(Pathways).find((pathway) =>\r\n pathway.concepts.includes(data.id),\r\n );\r\n if (conceptPathway) {\r\n data.parent = conceptPathway;\r\n } else {\r\n data.parent = Categories[data.category];\r\n }\r\n }\r\n\r\n const tempSearchResults: TSearchResult[] = [];\r\n\r\n if (data.name.toLowerCase().includes(searchInput.toLowerCase())) {\r\n tempSearchResults.push({\r\n ...data,\r\n source: \"1name\",\r\n preview: data.summary,\r\n });\r\n }\r\n\r\n if (data.summary.toLowerCase().includes(searchInput.toLowerCase())) {\r\n tempSearchResults.push({\r\n ...data,\r\n source: \"2summary\",\r\n preview: data.summary,\r\n });\r\n }\r\n\r\n const matchingParagraphs = GetHtmlResults(data.filePath, searchInput);\r\n matchingParagraphs.forEach((paragraph) => {\r\n tempSearchResults.push({\r\n ...data,\r\n source: \"3html\",\r\n preview: paragraph,\r\n });\r\n });\r\n\r\n return tempSearchResults;\r\n })\r\n .flat()\r\n .filter(\r\n (result, i, self) =>\r\n result.name !== \"null\" &&\r\n self.findIndex((t) => t.preview === result.preview && t.name === result.name) === i,\r\n )\r\n .map((result) => HighlightResult(result, searchInput)),\r\n );\r\n });\r\n finalSearchResults.sort((a, b) => {\r\n if (a.source < b.source) {\r\n return -1;\r\n }\r\n if (\r\n a.name.toLowerCase().startsWith(searchInput.toLowerCase()) &&\r\n !b.name.toLowerCase().startsWith(searchInput.toLowerCase())\r\n ) {\r\n return -1;\r\n }\r\n return 1;\r\n });\r\n\r\n return finalSearchResults;\r\n}\r\n\r\nfunction LoadingBars() {\r\n return (\r\n <>\r\n <div className=\"loading-bar loading-bar-1\"> </div>\r\n <div className=\"loading-bar loading-bar-2\"> </div>\r\n <div className=\"loading-bar loading-bar-3\"> </div>\r\n <div className=\"loading-bar loading-bar-4\"> </div>\r\n </>\r\n );\r\n}\r\n\r\nfunction AiSearchResponse({ searchInput }: { searchInput: string }) {\r\n const { sendChat, loading } = useChatBot();\r\n\r\n const [aiResponse, setAiResponse] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n async function getAiResponse(searchInput: string) {\r\n if (searchInput === \"\") {\r\n return;\r\n }\r\n await sendChat(\r\n `tell me about ${searchInput} and how it relates to business strategy. restrict your response to 100 words. give relevant links to the site if possible`,\r\n )\r\n .then((data) => {\r\n setAiResponse(data.completion);\r\n console.log(data.completion);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n setAiResponse(err.message);\r\n });\r\n }\r\n setAiResponse(null);\r\n getAiResponse(searchInput);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchInput]);\r\n\r\n return (\r\n (loading || aiResponse) && (\r\n <div className=\"alert alert-tan w-100\">\r\n <div className=\"d-flex\">\r\n <div className=\"me-2\" style={{ height: \"2.5rem\" }}>\r\n <Stars />\r\n </div>\r\n <div>\r\n <h3 className=\"mb-0 lh-1\">AI Search Result</h3>\r\n <div className=\"fs-8 mb-3\">Powered by Chat-GPT</div>\r\n </div>\r\n </div>\r\n\r\n {loading ? <LoadingBars /> : <ReactMarkdown>{aiResponse}</ReactMarkdown>}\r\n </div>\r\n )\r\n );\r\n}\r\n\r\nfunction DisplaySearchResult({\r\n searchResults,\r\n searchInput,\r\n}: {\r\n searchResults: TSearchResult[];\r\n searchInput: string;\r\n}) {\r\n const resultsPerPage = 15;\r\n const maxPageIndex = Math.ceil(searchResults.length / resultsPerPage) - 1;\r\n\r\n const [pageIndex, setPageIndex] = useState(0);\r\n\r\n function SetPagination(newPageIndex: number) {\r\n if (newPageIndex !== pageIndex) {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: \"instant\",\r\n });\r\n setPageIndex(newPageIndex);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: \"instant\",\r\n });\r\n setPageIndex(0);\r\n }, [searchResults]);\r\n\r\n return (\r\n <div className=\"w-100\">\r\n <div className=\"d-flex justify-content-between align-items-center\">\r\n <div>\r\n {maxPageIndex !== 0 && (\r\n <button\r\n className={`btn btn-primary ${pageIndex === 0 && \"disabled\"}`}\r\n onClick={() => SetPagination(pageIndex - 1)}\r\n >\r\n Previous\r\n </button>\r\n )}\r\n </div>\r\n <div>\r\n {searchResults.length} Result{searchResults.length !== 1 && \"s\"} • Showing Page{\" \"}\r\n {pageIndex + 1} of {maxPageIndex + 1}\r\n </div>\r\n <div>\r\n {maxPageIndex !== 0 && (\r\n <button\r\n className={`btn btn-primary ${pageIndex === maxPageIndex && \"disabled\"}`}\r\n onClick={() => SetPagination(pageIndex + 1)}\r\n >\r\n Next\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n {searchResults\r\n .slice(pageIndex * resultsPerPage, pageIndex * resultsPerPage + resultsPerPage)\r\n .map((result, i) => {\r\n const url = `${result.url}?searchResult=${searchInput}`;\r\n let parents: any[] = [];\r\n if (result.parent) {\r\n parents.push(result.parent);\r\n if (\"concepts\" in result.parent) {\r\n parents.push(Focuses[result.parent.focus]);\r\n }\r\n }\r\n\r\n return (\r\n <div key={i} className=\"mb-3\">\r\n <hr />\r\n <div className=\"mb-3 d-flex justify-content-between align-items-center\">\r\n <Link to={url}>\r\n <h4 className=\"d-inline no-word-wrap\" title={result.summary}>\r\n {result.name}\r\n </h4>\r\n </Link>\r\n <div className=\"ms-3 text-end\">\r\n {result.type}{\" \"}\r\n {parents.map((parent, j) => {\r\n if (!parent.url) {\r\n return <span key={j}>{` > ${parent.name}`}</span>;\r\n }\r\n return (\r\n <span key={j}>\r\n {\" > \"}\r\n <Link key={parent.id} to={parent.url}>\r\n {parent.name} {parent.type}\r\n </Link>\r\n </span>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n <div className=\"mb-4\">\r\n <ReactMarkdown>{result.preview}</ReactMarkdown>\r\n </div>\r\n </div>\r\n );\r\n })}\r\n {maxPageIndex !== 0 && (\r\n <nav aria-label=\"Page navigation example \">\r\n <ul className=\"pagination justify-content-center\">\r\n <li className=\"page-item\">\r\n <button\r\n className=\"page-link\"\r\n onClick={() => SetPagination(pageIndex > 0 ? pageIndex - 1 : pageIndex)}\r\n >\r\n Previous\r\n </button>\r\n </li>\r\n {new Array(maxPageIndex + 1).fill(0).map((_, i) => (\r\n <li key={i} className={`page-item ${i === pageIndex && \"active\"}`}>\r\n <button className=\"page-link\" onClick={() => SetPagination(i)}>\r\n {i + 1}\r\n </button>\r\n </li>\r\n ))}\r\n\r\n <li className=\"page-item\">\r\n <button\r\n className=\"page-link\"\r\n onClick={() => SetPagination(pageIndex < maxPageIndex ? pageIndex + 1 : pageIndex)}\r\n >\r\n Next\r\n </button>\r\n </li>\r\n </ul>\r\n </nav>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\ntype TSearchInputProps = {\r\n setSearchResults: React.Dispatch<React.SetStateAction<TSearchResult[]>>;\r\n setSearchInput: React.Dispatch<React.SetStateAction<string>>;\r\n searchInput: string;\r\n};\r\n\r\nfunction SearchInput({ setSearchResults, setSearchInput, searchInput }: TSearchInputProps) {\r\n const [showSearchHistory, setShowSearchHistory] = useState(false);\r\n const searchParam = useSearchParams()[0].get(\"search\");\r\n\r\n const initialPastSearches = JSON.parse(localStorage.getItem(\"pastSearches\") ?? \"[]\");\r\n const [pastSearches, setPastSearches] = useState<string[]>(initialPastSearches);\r\n\r\n const SubmitSearch = useCallback(\r\n (e: any, searchInput?: string) => {\r\n e.preventDefault();\r\n searchInput = searchInput ?? new FormData(e.target).get(\"search-input\")?.toString() ?? \"\";\r\n setSearchInput(searchInput);\r\n if (searchInput.trim() === \"\") {\r\n return;\r\n }\r\n if (pastSearches[0] !== searchInput) {\r\n const newPastSearches = [searchInput, ...pastSearches];\r\n setPastSearches(newPastSearches);\r\n localStorage.setItem(\"pastSearches\", JSON.stringify(newPastSearches));\r\n }\r\n setSearchResults(GetSearchResults(searchInput.trim()));\r\n },\r\n [pastSearches, setSearchResults, setSearchInput],\r\n );\r\n\r\n useEffect(() => {\r\n setSearchInput(searchParam ?? searchInput ?? \"\");\r\n SubmitSearch({ preventDefault: () => {} }, searchParam ?? searchInput ?? \"\");\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchParam]);\r\n\r\n function ClearSearchHistory(e: any) {\r\n e.preventDefault();\r\n setPastSearches([]);\r\n localStorage.setItem(\"pastSearches\", \"[]\");\r\n }\r\n\r\n return (\r\n <form\r\n className=\"w-100\"\r\n onSubmit={(e) => {\r\n SubmitSearch(e);\r\n }}\r\n >\r\n <div className=\"input-group mb-3\">\r\n <input\r\n name=\"search-input\"\r\n type=\"text\"\r\n className=\"form-control rounded-start-5\"\r\n placeholder=\"Search All Site Content...\"\r\n defaultValue={searchInput}\r\n />\r\n <div className=\"input-group-append\">\r\n <button\r\n className=\"pe-3 h-100 btn btn-outline-secondary rounded-start-0 rounded-end-5 d-flex align-items-center justify-content-center\"\r\n type=\"submit\"\r\n >\r\n <SearchIcon />\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"w-100 mb-3\">\r\n {showSearchHistory && (\r\n <div>\r\n <h3>\r\n Search History\r\n <button\r\n className=\"btn btn-sm btn-outline-secondary ms-2\"\r\n onClick={ClearSearchHistory}\r\n >\r\n Clear Search History\r\n </button>\r\n </h3>\r\n {pastSearches.length === 0 && <div> - No Past Searches</div>}\r\n <ul>\r\n {pastSearches\r\n .slice(0, showSearchHistory ? 1000 : 0)\r\n .map((search: string, i: number) => (\r\n <li key={i} className=\"\">\r\n <button\r\n className=\"btn btn-link p-0\"\r\n onClick={(e) => {\r\n setSearchInput(search);\r\n SubmitSearch(e, search);\r\n }}\r\n >\r\n {search}\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n <button\r\n className=\"btn btn-link p-0\"\r\n onClick={(e) => {\r\n e.preventDefault();\r\n setShowSearchHistory((showSearchHistory) => !showSearchHistory);\r\n }}\r\n >\r\n {showSearchHistory\r\n ? \"Hide Search History\"\r\n : `Show Search History (${pastSearches.length} search${\r\n pastSearches.length !== 1 ? \"es\" : \"\"\r\n })`}\r\n </button>\r\n </div>\r\n </form>\r\n );\r\n}\r\n\r\nexport default function SearchPage() {\r\n SetDocumentTitle(\"Advanced Search\");\r\n const [searchResults, setSearchResults] = useState<TSearchResult[]>([]);\r\n const searchParam = useSearchParams()[0].get(\"search\");\r\n const initialPastSearches = JSON.parse(localStorage.getItem(\"pastSearches\") ?? \"[]\");\r\n const [searchInput, setSearchInput] = useState(searchParam ?? initialPastSearches[0] ?? \"\");\r\n\r\n return (\r\n <div\r\n className=\" container d-flex flex-column align-items-center mx-auto\"\r\n style={{ maxWidth: constants.maxPageWidth }}\r\n >\r\n <div className=\"display-3 my-2\">Advanced Search</div>\r\n <SearchInput\r\n setSearchResults={setSearchResults}\r\n setSearchInput={setSearchInput}\r\n searchInput={searchInput}\r\n />\r\n\r\n <AiSearchResponse searchInput={searchInput} />\r\n\r\n {searchResults.length > 0 && (\r\n <DisplaySearchResult searchResults={searchResults} searchInput={searchInput} />\r\n )}\r\n </div>\r\n );\r\n}\r\n","import constants from \"Constants\";\r\nimport MasterSidebar from \"components/navigation/MasterSidebar\";\r\nimport SidebarPage from \"components/templates/SidebarPage\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport { useContext, useEffect, useState, createContext } from \"react\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport { TPathway, TFocus, defaultFocus, defaultPathway } from \"types/JsonType\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport BreadcrumbsAndArrows from \"components/navigation/BreadcrumbsAndArrows\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\nimport Error from \"components/templates/Error\";\r\n\r\ntype TPathwayContext = {\r\n pagePathway: TPathway;\r\n pageFocus: TFocus;\r\n};\r\nconst PathwayContext = createContext<TPathwayContext>({\r\n pagePathway: defaultPathway,\r\n pageFocus: defaultFocus,\r\n});\r\n\r\nfunction Title() {\r\n const { pagePathway, pageFocus } = useContext(PathwayContext);\r\n\r\n return (\r\n <div className=\"text-center my-4\">\r\n <div className=\"display-3\">{pagePathway.name}</div>\r\n <div className=\"lead fs-5\">\r\n <Link to={pageFocus.url} className=\"text-body no-underline underline-on-hover\">\r\n <span className=\"text-grey-red fs-3\"> {pageFocus.letter}</span>\r\n {pageFocus.name.slice(1)}\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\nfunction Content() {\r\n const { pagePathway } = useContext(PathwayContext);\r\n\r\n const [ImportedComponent, setImportedComponent] = useState(null) as any;\r\n\r\n useEffect(() => {\r\n async function ImportComponents(filePath: string) {\r\n setImportedComponent(null);\r\n await import(`${filePath}`).then((module) => {\r\n const AnotherComponent = module.default;\r\n setImportedComponent(<AnotherComponent />);\r\n });\r\n\r\n // import all adjacent pathway components.This dramatically improves the load time of the pathway pages.\r\n Object.values(Pathways)\r\n .filter((pathway) => pathway.focus === pagePathway.focus)\r\n .forEach((pathway) => {\r\n import(`${pathway.filePath}`);\r\n });\r\n }\r\n\r\n ImportComponents(pagePathway.filePath);\r\n }, [pagePathway.filePath, pagePathway.focus]);\r\n\r\n return <div> {ImportedComponent}</div>;\r\n}\r\n\r\nexport default function PathwayRoot() {\r\n const pathwayId = useParams().pathwayId;\r\n\r\n if (!pathwayId) {\r\n return <Error message={\"404. Page not found\"} />;\r\n }\r\n const pagePathway = Pathways[pathwayId];\r\n\r\n if (!pagePathway) {\r\n return <Error message={\"404. Page not found\"} />;\r\n }\r\n const pageFocus = Focuses[pagePathway.focus];\r\n\r\n SetDocumentTitle(pagePathway.name);\r\n\r\n return (\r\n <PathwayContext.Provider value={{ pagePathway, pageFocus }}>\r\n <SidebarPage.Page>\r\n <SidebarPage.Sidebar>\r\n <MasterSidebar />\r\n </SidebarPage.Sidebar>\r\n <SidebarPage.Content>\r\n <BreadcrumbsAndArrows focus={pageFocus} pathway={pagePathway} />\r\n <div className=\"d-flex justify-content-center mb-5 mx-3 mx-md-4\">\r\n <div className=\"w-100\" style={{ maxWidth: constants.maxPageWidth }}>\r\n <Title />\r\n <Content />\r\n </div>\r\n </div>\r\n </SidebarPage.Content>\r\n </SidebarPage.Page>\r\n </PathwayContext.Provider>\r\n );\r\n}\r\n","import { H1, H2, Image, RelatedFrameworks, P, Ol } from \"design_lib\";\r\n\r\nexport default function CJobsToBeDonePathway() {\r\n return (\r\n <div>\r\n <P>\r\n Customers purchase products and services to help them solve their needs. In other words,\r\n customers \"hire\" products and services to help them complete \"jobs\". Knowing what \"jobs\"\r\n your customers want done will explain what your products and services should accomplish.\r\n </P>\r\n <Ol>\r\n <li>Decide which user segment(s) to target </li>\r\n <li>Create a list of customers and potential customer to interview </li>\r\n <li>\r\n Conduct in-depth interviews and observations to understand what jobs they are trying to do\r\n with their current products/services.\r\n </li>\r\n </Ol>\r\n <P>\r\n Functional Aspects: Specific tasks that customers must be able to achieve with their hired\r\n product/service and are usually measurable. What would a solution need to do?\r\n </P>\r\n <P>\r\n Emotional Aspects: The subjective \"why\" behind a customer's choice. How should a solution\r\n make a user feel? How should a solution affect others' perception of the user?\"\r\n </P>\r\n\r\n <H1>Examples</H1>\r\n <H2>Gilette</H2>\r\n <P>Gilette in India</P>\r\n <H2>Sally's Lemonade Stand</H2>\r\n <P>\r\n Sally's lemonade stand hasn't been doing as well since her neighbor, Susie open a competing\r\n store. Sally does some customer research, asking people in her neighborhood why they buy\r\n lemonade at the neighborhood lemonade stands. They tell her that the main reason they\r\n purchase is to support the young neighborhood entrepreneurs. Another reason is because a\r\n cold lemonade sounds like it would be refreshing on a hot summer day. Sally realizes that\r\n both she and Susie are approaching the customers' jobs to be done the exact same way. In\r\n order to increase her sales, Sally brainstorms to figure out how she can better address the\r\n functional job of refreshment on a hot day. She decides to sell a homemade sports drink in\r\n hopes of delivering more refreshment than lemonade.\r\n </P>\r\n\r\n <Image src={require(\"lib/img/pathways/LemonadeStand.jpg\")} alt=\"Lemonade Stand\" />\r\n\r\n <Image src={require(\"lib/img/pathways/JobsToBeDone.png\")} alt=\"Jobs to Be Done\" />\r\n\r\n <RelatedFrameworks unfinishedConcepts={[\"Jobs to Be Done\"]} />\r\n </div>\r\n );\r\n}\r\n","import { Image, RelatedFrameworks, H1, H2, Ol, P } from \"design_lib\";\r\n\r\nexport default function PainPointsPathway() {\r\n return (\r\n <div>\r\n <P>\r\n Because no product or service is perfect, customers always experience some level of\r\n frustration when using them. These are pain points. Businesses can uncover pain points by\r\n seeing customers engage with their current solutions as they complete their \"jobs\".\r\n </P>\r\n <P>\r\n A great way to uncover pain points is by walking through consumers experiences via user\r\n journey mapping. This consider five main elements:\r\n </P>\r\n <Ol>\r\n <li>Actor: the person who experiences the journey, whose point of view we will take on</li>\r\n <li>\r\n Scenario + Expectations: the situation addressed by the map, it's best if it is a sequence\r\n of events, a process, involves multiple channels;can be real or anticipated.\r\n </li>\r\n <li>\r\n Journey Phases: the different high-level stages in the journey within which actions,\r\n thoughts, and emotions are categorized\r\n </li>\r\n <li>\r\n Actions, Mindsets, and Emotions: Actions: a narrative of the steps taken by the actor\r\n during a given phase; Mindsets: thoughts, questions motivations and information needs,\r\n ideally verbatim from actors; emotions: signals the emotional ups and downs of the\r\n experience - delighted vs. frustrated\r\n </li>\r\n <li>Opportunities: insights gained from mapping about how to improve users' experience</li>\r\n </Ol>\r\n\r\n <Ol>\r\n <li>\r\n Determine who your actor is. This should be a current customer profile, or a desired\r\n future customer profile.\r\n </li>\r\n <li>Choose the scenario you want to map out, with it's ideal outcome</li>\r\n <li>Segment the journey into phases / touchpoints</li>\r\n <li>Envision and map user actions and responses</li>\r\n <li>Validate with target audience and iterate</li>\r\n <li>Summarize opportunities to improve</li>\r\n </Ol>\r\n <H1>Examples</H1>\r\n <H2>Landscaping</H2>\r\n <P>\r\n Imagine you own a residential landscaping business and you want to understand the\r\n frustrations that customers have with finding a good landscaper to maintain their property.\r\n First, you choose your actor - home owners 55 and older who are still working full-time. The\r\n scenario you choose is them deciding they no longer want to maintain their yard themselves,\r\n because they want to use their time and energy on other activities, and can afford to hire a\r\n landscaper, with the expectation being that they find a good company to use. You segment\r\n this scenario up into main phases of search, comparison, evaluation, and selection. You walk\r\n through what these customers actually do, think, and feel as they search for landscapers,\r\n evaluate them to decide which ones are competent and trustworthy, compare them against each\r\n other, and finally, select one to hire. Then, you validate this journey map with actual\r\n people who fit your actor profile. After you make a few corrections to the journey map, you\r\n review what opportunities you have as a landscaper to improve customers' experience in this\r\n journey to minimize their pain points.\r\n </P>\r\n <H2>Spotify</H2>\r\n\r\n <P>\r\n Spotify wanted to improve its music-sharing experience for its customers, so it hired a\r\n marketing firm to create a customer journey map.\r\n </P>\r\n <P>\r\n The goal of this user journey map was to determine where music sharing features the best fit\r\n into the customer experience.\r\n </P>\r\n <div className=\"my-3\">\r\n <Image src={require(\"lib/img/pathways/PainPoints.png\")} alt=\"Spotify Pain Points\" />\r\n </div>\r\n\r\n <P>\r\n They mapped out the user experience mapped from the moment the user first opens Spotify on a\r\n mobile device, all the way through to whether they like a song that a friend has shared.\r\n </P>\r\n <P>\r\n Throughout each stage and every touchpoint, the brand lists what a customer is engaging\r\n with, doing, thinking, and feeling. The agency surveyed customers to understand how users\r\n felt at each touchpoint in the customer journey to collect this information.\r\n </P>\r\n <P>\r\n Based on the customer journey map, Spotify was able to identify pain points for users and\r\n address those pain points so that the music sharing experience is smooth and seamless,\r\n encouraging more users to share music -- and to do it more often.\"\r\n </P>\r\n\r\n <RelatedFrameworks unfinishedConcepts={[\"Journey Mapping Framework\"]} />\r\n </div>\r\n );\r\n}\r\n","import { RelatedFrameworks, P, Ul, H2, H1 } from \"design_lib\";\r\nimport { Concepts } from \"lib/data/Concepts\";\r\n\r\nexport default function UniqueValuePathway() {\r\n return (\r\n <div>\r\n <P>\r\n Once customers' jobs to be done and pain points are discovered, you understand what a\r\n product or service must achieve. Product differentiation explains how to create products and\r\n services that meet customers' needs, reduce pains, and are unique to alternatives. To\r\n understand the many different levers of a product or service that can be adjusted to meet\r\n customers' needs, the 3 Levels of Product is a great framework. It looks at three different\r\n levels of products: the core product, the actual product, and the augmented product.\r\n </P>\r\n <H2>Core Product</H2>\r\n <ul>\r\n <li>\r\n Jobs to be done: these are the primary reasons why your product or service exists in the\r\n first place\r\n </li>\r\n </ul>\r\n <H2>Actual Product</H2>\r\n <Ul>\r\n <li>\r\n Brand: how does your brand impact consumers' perception of the product's ability to solve\r\n the jobs to be done? If you control multiple brands, which one would best satisfy target\r\n consumers' needs?\r\n </li>\r\n <li>\r\n Features: are any features missing that could help to solve the JTBD? Are any existing\r\n features unnecessary and can be removed?\r\n </li>\r\n <li>\r\n Quality Level: Does having a low quality prevent jobs from being done, or dissuade\r\n consumers from purchasing? Does having high quality solve any functional or emotional\r\n JTBD?\r\n </li>\r\n <li>\r\n Design: what about the design of the product can improve performance or perception of\r\n performance?\r\n </li>\r\n <li>\r\n Packaging: packaging can affect how consumers perceive your product - sustainable\r\n packaging, high-quality packaging, opportunity for messaging and branding\r\n </li>\r\n </Ul>\r\n <H2>Augmented Product</H2>\r\n <Ul>\r\n <li>\r\n Credit/Financing: do purchase options allow target consumers to actually be able to afford\r\n your product? How can deferred payments, pre-approvals, or other elements make your\r\n product more affordable without requiring a price decrease?\r\n </li>\r\n <li>\r\n Delivery: how the product is delivered, how available it is through channels that are\r\n available to consumers can make your product more appealing than competitive offerings\r\n </li>\r\n <li>\r\n Warranty: peace of mind from a good warranty; too generous of a warranty can be costly\r\n </li>\r\n <li>\r\n After-sales service & product support: how much support is needed for customers after\r\n purchasing? Can this level of support affect repeat purchases?\"\r\n </li>\r\n </Ul>\r\n <H1>Examples</H1>\r\n <H2>Snack Companies</H2>\r\n <P>\r\n Snack companies have learned that different use cases require different packaging options.\r\n Many candy products are sold in various package types for different use cases: resealable\r\n bags are better for consumption over longer periods of time. Starburts unwrapped.\r\n </P>\r\n <H2>RIGID</H2>\r\n <P>\r\n RIDGID power tools are known for the outstanding warranty of their lithium-ion battery packs\r\n that power their cordless power tools. Many customers purchase their tools specifically\r\n because they want the benefit of a lifetime warranty for batteries, compared to the 2-3 year\r\n warranties that are offered by competitor brands.\r\n </P>\r\n\r\n <RelatedFrameworks\r\n concepts={[Concepts.StrategyCanvas]}\r\n unfinishedConcepts={[\r\n \"Buyer Utility Map\",\r\n \"3 Levels of Product\",\r\n \"4 Types of Customer Value\",\r\n ]}\r\n />\r\n </div>\r\n );\r\n}\r\n","import { P, Ol, H1, H2 } from \"design_lib\";\r\nexport default function AlignmentPathway() {\r\n return (\r\n <div>\r\n <P>\r\n The company's mission, vision, and values might be the best in the industry, but if the\r\n employees cannot align with that purpose, the company will fail. Alignment is truly the most\r\n important aspect of a company's growth or demise. Mission, vision, and values , in effect,\r\n define the ultimate direction of the company and how it will act. Alignment is the driving\r\n force of the company in that chosen direction. Wherever the arrow is pointed, true alignment\r\n of the leadership, employees and customers will get it to grow. It is this quality that most\r\n influences investors decision when listening to a pitch; a sense of magic, growth,\r\n direction, and power.\r\n </P>\r\n\r\n <Ol>\r\n <li>Develop mission, vision, and values that are inspiring</li>\r\n <li>Leadership must adopt and love the mission, vision, and values</li>\r\n <li>\r\n Employees must be included in the workings of the company and have ownership in their work\r\n </li>\r\n <li>\r\n Recruiting guidelines must reflect the people who want to adopt the company mission,\r\n vision, and values\r\n </li>\r\n <li>\r\n There should be positive, consistent, and valuable reinforcement of the mission, vision,\r\n and values and quick (not delayed), consistent, and direct (state the issue clearly, don't\r\n hide your intention) discouragement of actions that conflict.\r\n </li>\r\n </Ol>\r\n <H1>Examples</H1>\r\n <H2>OpenAi</H2>\r\n\r\n <P>\r\n In a surprise move, some of OpenAI's board members decided to fire CEO Sam Altman, stating\r\n he \"was not consistently candid in his communications with the board, hindering its ability\r\n to exercise its responsibilities.\" Because his employees were so aligned with him and the\r\n vision of the company, many of OpenAI's lead researchers and a board member quit in protest,\r\n in addition to the written threat of 700 OpenAI employees to quit and take a job at\r\n Microsoft. The alignment of each employee at OpenAI (except the board members who fired Sam\r\n Altman) is powerful and contributes to its success of developing new products and being the\r\n leader in the AI space.\r\n </P>\r\n\r\n <H2>Toyota North America</H2>\r\n <P>\r\n Toyota is the largest automobile manufacturer in the world (as of May 2024) and continues to\r\n produce excellent products. Toyota's alignment is well known as 'The Toyota Way', which was\r\n written by an outsider who watched how Toyota did business. Within Toyota, there is no\r\n discussion about 'The Toyota Way' book ,rather they daily teach the values that make Toyota\r\n who they are. The most prominent is 'Kaizen,' the concept of continuous improvement in every\r\n aspect of the company. Toyota has been able to make this a part of their core and it\r\n permeates into all its employees, which then results in meetings that are not about who made\r\n a mistake, but how they will (1) fix the mistake and (2) how they can change the process to\r\n help the mistake isn't repeated. Another example from Toyota is when Toyota was accused of\r\n unintended acceleration. This caused many of the manufacturing plants to stop the line due\r\n to lack of sales. Instead of laying their employees off, Toyota gave their employees paid\r\n work to clean and update the factory and the local city parks where their employees live.\r\n Toyota leadership is aligned with one of its core values, teamwork, and knew that their\r\n employees are absolutely necessary for Toyota to be successful.\r\n </P>\r\n </div>\r\n );\r\n}\r\n","import { P, H1, H2, Ul, Image } from \"design_lib\";\r\n\r\nexport default function DefineMissionPathway() {\r\n return (\r\n <div>\r\n <P>\r\n One of the most important characteristic that investors look for in a company is a\r\n leadership team that works together and has direction. This is largely due to how united the\r\n team is. The mission statement defines what is uniting the leadership team and the company\r\n together. Without it, each employee of the company can have their own view of what the\r\n company is and where it should end up, resulting in confusion and divergence as the company\r\n grows.\r\n </P>\r\n <P>\r\n The mission statement should also describe why the company is in business, and what the\r\n company aspires to attain. It must transcend the desire for monetary gains and, instead,\r\n reflect how company financial success will make the community, the country, or the world, a\r\n better place beyond the products that it sells. The further the mission gets from the needs\r\n of the business, the more effective it will be to inspire individuals inside and outside the\r\n company. However, it must be actionable within the company itself.\r\n </P>\r\n\r\n <P>A mission statement should have the following:</P>\r\n <Ul>\r\n <li>Transcend product and market life cycles</li>\r\n <li>Be motivating and inspiring</li>\r\n <li>Reflect a choice</li>\r\n <li>Be short, clear, and easy to remember</li>\r\n <li>It should be unique in reflecting the company that it belongs to</li>\r\n <li>It must be coherent with the Vision and Values of the company\"</li>\r\n </Ul>\r\n <H1>Examples</H1>\r\n\r\n <H2>Forbes</H2>\r\n\r\n <P>\r\n \"To deliver information on the people, ideas and technologies changing the world to our\r\n community of affluent business decision makers\"\r\n </P>\r\n <P>\r\n This mission statement is strategic, dictating where and how they will act but doesn't\r\n instill inspiration or motivation.\r\n </P>\r\n\r\n <H2>American Red Cross</H2>\r\n\r\n <P>\r\n \"To prevent and alleviate human suffering in the face of emergencies by mobilizing the power\r\n of volunteers and the generosity of donors\"\r\n </P>\r\n\r\n <P>\r\n This example is very motivating as it talks to things that matter to everyone: human\r\n suffering and emergencies. It also has strategy, citing that it mobilizes volunteers and\r\n donors help to achieve this mission.\"\r\n </P>\r\n\r\n <H2>Nike</H2>\r\n\r\n <P>\r\n \"Bring inspiration and innovation to every athlete in the world. If you have a body, you are\r\n an athlete.\"\r\n </P>\r\n <P>\r\n Nike has an interesting take on mission statements. In defining what an 'athlete' is to\r\n itself, it also defines it for all who read this statement. It is clearly motivational as it\r\n hits the human desire to be fit, and defines its simple strategy how it will do so.\r\n </P>\r\n <H2>Albertsons</H2>\r\n\r\n <P>\r\n \"To create a shopping experience that pleases our customers; a workplace that creates\r\n opportunities and a great working environment for our associates; and a business that\r\n achieves financial success\"\r\n </P>\r\n\r\n <P>\r\n Unfortunately, this isn't inspirational or strategic. It states what they'd like to achieve\r\n but doesn't have any indication how the company will achieve these goals. In addition, the\r\n goals are as inspiring as new year's resolutions no one seems to reach.\"\r\n </P>\r\n <H2>Fred Meyer</H2>\r\n\r\n <P>\r\n \"While our stores change with the times, one thing stays the same - our commitment to\r\n Customers\"\r\n </P>\r\n\r\n <P>\r\n This is unique, in that it has almost no strategy how it will achieve its mission but the\r\n statement is so strong it makes the reader clench their fist with determination, like its a\r\n call to battle or to weather a storm.\"\r\n </P>\r\n\r\n <H2>Starbucks</H2>\r\n\r\n <P>\r\n \"With every cup, with every conversation, with every community - we nurture the limitless\r\n possibilities of human connection\"\r\n </P>\r\n\r\n <P>\r\n Inspriational and strategic, Starbucks indicates why its in business and how it will do it.\r\n Limited possibilities brings emotions while cups clearly define its a beverage company that\r\n facilitates meeting together.\"\r\n </P>\r\n <H2>USPS</H2>\r\n\r\n <P> \"To provide the nation with reliable, affordable, universal mail service. \"</P>\r\n <P>\r\n Not strategic (how it will do it) or inspirational. Interestingly enough, the law that\r\n created the USPS states the following about the purpose of the USPS:\r\n </P>\r\n\r\n <P>\r\n \"...to bind the Nation together through the personal, educational, literary, and business\r\n correspondence of the people.\"\r\n </P>\r\n\r\n <P>This is inspriational and it clearly defines strategy how it will do it.</P>\r\n\r\n <P>\r\n The framework below helps evaluate the mission, vision, and value statements, indivudally\r\n and collectively, to decide if they are motivational, have strategy, and if those are\r\n coherent with each other.\r\n </P>\r\n <P>\r\n Patagonia's mission, \"We're in business to save our home planet,\" is very inspirational but\r\n has no strategy to it at all. They instead stretch their Values to include how they will\r\n make this happen. In this way, the culmination of their mission, vision, and values show\r\n motivation, strategy, and cohesion.\r\n </P>\r\n <Image src={require(\"lib/img/pathways/DefineMission.png\")} alt=\"\" />\r\n </div>\r\n );\r\n}\r\n","import { H1, H2, P, Ol, Ul } from \"design_lib\";\r\n\r\nexport default function DefineVisionPathway() {\r\n return (\r\n <div>\r\n <P>\r\n Values supplement the mission and vision statements additionally by stating the way the\r\n company will accomplish its mission and bring about its vision. Like the mission and vision,\r\n values must also be strategic and motivating, but in this case strategic is more important\r\n than motivation. Therefore, virtues are not helpful because it infers that we could chose to\r\n lie or cheat vs be honest and play fair.\r\n </P>\r\n\r\n <P>\r\n Vales should direct what the company will do and what it will not do. They define what the\r\n priorities of the company are and what it believes will fulfill their mission.\r\n </P>\r\n\r\n <P>\r\n Values should accomplish at least four things:\r\n <Ol>\r\n <li>Reflect choices that are consistent with the strategy</li>\r\n <li>Be aligned with employers' and (ideally) customers' values</li>\r\n <li>Not statements to be ethical; these values are not choices but are assumed</li>\r\n <li>Be unique to the company</li>\r\n </Ol>\r\n </P>\r\n\r\n <H1>Examples</H1>\r\n <H2>Patagonia</H2>\r\n\r\n <Ul>\r\n <li>\r\n Quality: Build the best product, provide the best service and constantly improve\r\n everything we do\r\n </li>\r\n <li>\r\n Integrity: Examine our practices openly and honestly, learn from our mistakes and meet our\r\n commitments.\r\n </li>\r\n <li>Environmentalism: Protect our home planet</li>\r\n <li>Justice: Be just, equitable and antiracist as a company and in our community</li>\r\n <li>Not bound by convention: Do it our way</li>\r\n </Ul>\r\n <P>\r\n Patagonia's values could be critiqued but the important part is that each of their values is\r\n clearly recognizable in the organization. Its clear that these are Patagonia and Patagonia\r\n are these\r\n </P>\r\n\r\n <H2>Enron</H2>\r\n\r\n <Ul>\r\n <li>\r\n Communication: Enron has an obligation to communicate, and takes time to listen and talk\r\n with each other.\r\n </li>\r\n <li>Respect: Enron treats others as it would like to be treated.</li>\r\n <li>\r\n Integrity: Enron works with customers and prospects openly, honestly, and sincerely.\r\n </li>\r\n <li>\r\n Excellence: Enron is satisfied with nothing less than the best in everything it does.\r\n </li>\r\n </Ul>\r\n <P>\r\n Enron was one of the biggest fraud cases in America, yet their values are only virtues. It\r\n doesn't state any strategy or how they want to operate. Also, a virtue of communication is\r\n hardly necessary, unless there is a preference to not communicate.\r\n </P>\r\n </div>\r\n );\r\n}\r\n","import { Image, H1, P, Ul, H2 } from \"design_lib\";\r\n\r\nexport default function DefineVisionPathway() {\r\n return (\r\n <div>\r\n <P>\r\n A vision is an aspirational goal or event that should happen if the company fulfills its\r\n stated mission. It can describe what the world will look like afterward, it could be what\r\n the company will become afterward, or what will ultimately be accomplished. For certain, it\r\n must be motivational but doesn't need to be strategic. It should be specifically unique to\r\n the company that made it. It needs to be hard to reach in that the company itself has to\r\n stretch to reach it. This makes a vision different than a mission, becaues visions have a\r\n finish line and should guide strategy development.\r\n </P>\r\n <P>The vision statement should meet the following criteria:</P>\r\n <Ul>\r\n <li>Be consistent with a well researched strategy</li>\r\n <li>Reflect a choice about how to compete</li>\r\n <li>Articulate an inspiring future</li>\r\n <li>Be specific and measurable</li>\r\n <li>Be short, cleaer, and concise</li>\r\n <li>Be unique to the company</li>\r\n </Ul>\r\n <H1>Examples</H1>\r\n\r\n <H2>Tesla</H2>\r\n\r\n <P>\r\n \"To create the most compelling car company of the 21st century by driving the world's\r\n transition to electric vehicles.\"\r\n </P>\r\n\r\n <P>\r\n This has a specific finish line, clearly states how they will compete, and is specifically\r\n Tesla. No other company can have this statement.\r\n </P>\r\n <H2>Abysse</H2>\r\n\r\n <P>\"Produce less, produce well.\"</P>\r\n <P>\r\n This sounds and feels good, but it doesn't seem like a vision statement in that it doesn't\r\n look forward to a future day where they finish. It speaks how they will compete, its short\r\n and catchy, but lacks the ultimate goal of what they're trying to achieve.\r\n </P>\r\n\r\n <H2>Apple</H2>\r\n\r\n <P>\"To make the best products on earth and to leave the world better than we found it.\"</P>\r\n <P>\r\n This specifies how to compete and has an inspiring future. Its also lacking specifics andis\r\n hard to measure. Ultimately, it has two statements that contradict each other. They might\r\n make the best products on earth but they obsolete last years models every year. If they are\r\n serious about their vision, their recycling program needs to be just as robust as their\r\n advertising for their new tech.\r\n </P>\r\n <H2>Coca Cola</H2>\r\n\r\n <P>\r\n \"Craft the brands and choice of drinks that people love, to refresh them in body & spirit.\r\n And done in ways that create a more sustainable business and better shared future that makes\r\n a difference in people's lives, communities and our planet.\"\r\n </P>\r\n\r\n <P>\r\n This is their stated vision, but it seems more like a mission statement, as it has no end\r\n goal but it does have strategy. It has an add-on sentence that, similar to Apple, doesn't\r\n seem to fit with the first bit and is incredibly generic.\r\n </P>\r\n\r\n <P>They do have a purpose statement, which is:</P>\r\n\r\n <P>\"Refresh the world. Make a difference.\"</P>\r\n\r\n <P>\r\n This seems to align better with a vision statement, though it still lacks some of the key\r\n ingredients for a good one. If both were combined and rearranged, a mission and vision could\r\n be identified.\r\n </P>\r\n\r\n <P>\r\n The framework below helps evaluate the mission, vision, and value statements, indivudally\r\n and collectively, to decide if they are motivational, have strategy, and if those are\r\n coherent with each other.\r\n </P>\r\n <P>\r\n Patagonia's mission, \"We're in business to save our home planet,\" is very inspirational but\r\n has no strategy to it at all. They instead stretch their Values to include how they will\r\n make this happen. In this way, the culmination of their mission, vision, and values show\r\n motivation, strategy, and cohesion.\r\n </P>\r\n <Image src={require(\"lib/img/pathways/DefineVision.png\")} alt=\"\" />\r\n </div>\r\n );\r\n}\r\n","import { RelatedFrameworks, Ol, P, H1, H2 } from \"design_lib\";\r\n\r\nexport default function EthicsPathway() {\r\n return (\r\n <div>\r\n <P>\r\n The mission, vision, and values of the company are essential for making a complete strategy,\r\n in that it defines where we are tryign to get to. Alignment is needed to ensure the entire\r\n company gets to the destination together. The last piece is to decide how we will compete,\r\n how we will play the game. Michael Dell wrote a book on this, called \"Play Nice, But Win.\"\r\n He was referring to making ethical decisions on the path to build your business and compete.\r\n There are thousands of businesses that have failed due to their illegal or unethical\r\n practices. Though these decisions can leap a company forward temporarily, they can\r\n ultimately destroy the company's alignment and image and result in jailtime for those\r\n involved.\r\n </P>\r\n <P>The CEO should be considered the 'chief ethical officer.'</P>\r\n <Ol>\r\n <li>Gather the facts</li>\r\n <li>Define the ethical issues</li>\r\n <li>Identify affected parties</li>\r\n <li>Apply ethics toolkit</li>\r\n <li>Develop alternative solutions</li>\r\n <li>Check your gut</li>\r\n </Ol>\r\n <H1>Examples</H1>\r\n\r\n <H2>Theranos</H2>\r\n\r\n <P>\r\n Elizabeth, founder of Theranos, was attending Stanford University and developed an idea for\r\n a patch that would monitor a person's body through their blood, enabling quick response for\r\n doctors to their patients. This led to the final product of blood tests in a drop. During\r\n development, it was clear that technology and science wasn't able to support her idea,\r\n despite the millions of dollars she raised through investors. Unfortunately, the issues with\r\n development weren't shared and the pressures to perform and meet expectation mounted, to the\r\n point that, whatever the purpose of her actions previously, she covered up and told lies to\r\n hide the product issues. Eventually, employees decided it was better to speak out despite\r\n signing non-disclosure agreements and Theranos was shut down and Elizabeth was sentenced to\r\n jail time.\r\n </P>\r\n <H2>Toyota</H2>\r\n\r\n <P>\r\n In 2009, Toyota faced accusation that they had deliberately covered up issues with their gas\r\n pedals, which caused many personal accidents and deaths with Toyota vehicles. This situation\r\n was different than Theranos, in that the CEO, Akio Toyoda, was not instrumental in allowing\r\n the issues to happen. Toyota was slow to respond, but in the end Akio Toyoda himself went\r\n before congress and personally took responsibility for his company's mistakes. In light of\r\n the recalls and stop of production, Toyota did not lay off a single person during that time,\r\n and instead engaged with the community to provide other ways for Toyota employees to earn\r\n pay.\r\n </P>\r\n\r\n <RelatedFrameworks\r\n unfinishedConcepts={[\r\n \"Ethics Toolkit\",\r\n \"Fraud Triangle\",\r\n \"6 Step Ethical Guide (BYU)\",\r\n \"Pressure Leads to Poor Decision Making\",\r\n ]}\r\n />\r\n </div>\r\n );\r\n}\r\n","export default function ChosenPositionPathway() {\r\n return (\r\n <div>\r\n <p>\r\n Choosing your position in the market is about deciding how you want your brand and offerings\r\n to be perceived by customers and competitors. It involves determining the unique value\r\n proposition that sets your business apart and the strategic direction that will guide your\r\n efforts to achieve a distinct place in the market. This decision shapes all aspects of\r\n business strategy, from product development and marketing to sales and customer service,\r\n ensuring that every action reinforces the chosen position.\r\n </p>\r\n <p>\r\n A well-defined market position allows a business to communicate its unique value more\r\n effectively, attract the right customers, and build a loyal customer base. It requires a\r\n clear understanding of the business's strengths, the needs of its target customers, and the\r\n competitive landscape. The chosen position should leverage the business's unique\r\n capabilities to meet customer needs in a way that competitors cannot easily replicate,\r\n creating a sustainable competitive advantage.\r\n </p>\r\n <p>\r\n Deciding on a market position is a strategic exercise that involves trade-offs and choices\r\n about which markets to serve, which needs to address, and how to differentiate the business\r\n from competitors. It's about carving out a niche in the market that the business can own and\r\n defend, focusing on delivering exceptional value in that niche. By choosing and consistently\r\n reinforcing a clear market position, a business can establish a strong brand identity,\r\n differentiate itself from competitors, and create a foundation for long-term success.\r\n </p>\r\n <h4>Examples</h4>\r\n <p>\r\n <b>Amazon</b> claims its spot as the ultimate convenience retailer, promising everything\r\n from books to groceries delivered swiftly to your doorstep, emphasizing its commitment to\r\n making shopping effortlessly accessible to all.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function CustomerIdentificationPathway() {\r\n return (\r\n <div>\r\n <p>\r\n Customer Identification is the foundational step in crafting a business strategy, where the\r\n goal is to delineate and understand the specific group of people or businesses your product\r\n or service aims to serve. This process goes beyond simply naming demographics; it involves a\r\n deep dive into the lifestyles, behaviors, needs, and preferences of potential customers.\r\n Effective customer identification combines quantitative data (such as age, location, and\r\n income levels) with qualitative insights (such as customer motivations, values, and\r\n lifestyle choices).\r\n </p>\r\n <p>\r\n By accurately identifying your customer base, you equip your business with the knowledge to\r\n make informed decisions about product development, marketing strategies, and customer\r\n experience design. This step is crucial because it ensures that the efforts of the business\r\n are aligned with the needs and desires of its target audience, thereby increasing the\r\n likelihood of market acceptance and success. For startups, this might mean identifying a\r\n niche market with specific needs that are unmet by current offerings. For established\r\n businesses, it could involve reassessing the evolving needs of their customer base to stay\r\n relevant.\r\n </p>\r\n <p>\r\n The process of customer identification also involves recognizing not just who your customers\r\n are today, but who they could be tomorrow. This forward-looking approach helps businesses\r\n anticipate market shifts and adapt their strategies accordingly. Tools and techniques like\r\n market segmentation, buyer personas, and customer journey mapping are often employed to gain\r\n a more nuanced understanding of the target audience. Ultimately, thorough customer\r\n identification lays the groundwork for creating value propositions that resonate deeply with\r\n the target audience, fostering brand loyalty, and driving business growth.\r\n </p>\r\n <h4>Examples</h4>\r\n <p>\r\n <b>Netflix</b> zeroes in on a broad audience with a penchant for on-demand entertainment,\r\n from busy professionals looking for a quick binge to families enjoying a movie night,\r\n highlighting the universal appeal of accessible, diverse content.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function EvaluateIndustryPathway() {\r\n return (\r\n <div>\r\n <p>\r\n Evaluating industry focus involves analyzing the broader industry context in which a\r\n business operates to identify areas where it can most effectively compete and succeed. This\r\n strategic pathway requires an assessment of industry trends, competitive dynamics,\r\n regulatory environment, and technological advancements to pinpoint opportunities and\r\n threats. The goal is to understand where the business fits within the industry ecosystem and\r\n to identify strategic niches or areas of untapped potential that align with the company's\r\n strengths and capabilities.\r\n </p>\r\n <p>\r\n This evaluation helps businesses make informed decisions about where to concentrate their\r\n efforts and resources for maximum impact. It involves looking beyond immediate competitors\r\n to understand the forces shaping the industry and the potential for disruption. By gaining a\r\n deep understanding of the industry landscape, businesses can position themselves to\r\n capitalize on emerging trends, mitigate risks associated with industry downturns, and\r\n navigate the competitive landscape more effectively.\r\n </p>\r\n <p>\r\n An industry focus evaluation also informs product development, marketing, and investment\r\n strategies by highlighting areas of growth and innovation. It enables businesses to align\r\n their strategic objectives with the realities of the market, ensuring that they are not only\r\n responding to current conditions but are also prepared for future shifts in the industry. In\r\n essence, evaluating industry focus is about finding the intersection between a business's\r\n unique strengths and the most promising opportunities within the industry, thereby creating\r\n a strategic roadmap for sustainable competitive advantage.\r\n </p>\r\n\r\n <h4>Examples</h4>\r\n <p>\r\n <b>Tesla</b> carved out its niche in the auto industry by pioneering electric vehicles for\r\n consumers aspiring to innovative, sustainable transportation solutions, setting the stage\r\n for a shift towards greener technology.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function JobsToBeDonePathway() {\r\n return (\r\n <div>\r\n <p>\r\n The Jobs to be Done framework offers a lens through which businesses can understand the core\r\n needs or tasks that customers are trying to accomplish with their product or service. This\r\n approach shifts the focus from the product itself to the outcomes that customers seek. It's\r\n premised on the idea that people buy products and services to get a \"job\" done. This job\r\n could be functional, such as cutting grass with a lawnmower, or emotional, such as feeling\r\n secure in a vehicle.\r\n </p>\r\n <p>\r\n Understanding the Jobs to be Done enables companies to innovate and improve by aligning\r\n their offerings more closely with customer needs and desired outcomes. It encourages looking\r\n beyond superficial customer characteristics to grasp the underlying motivations driving a\r\n purchase decision. This deep insight into customer behavior helps in developing products and\r\n services that are not just innovative but are perceived as valuable and essential by\r\n customers.\r\n </p>\r\n <p>\r\n Employing the Jobs to be Done framework involves conducting in-depth interviews, observing\r\n customers, and analyzing data to uncover not just what customers are doing, but why they are\r\n doing it. This understanding can lead to the identification of previously unrecognized\r\n market opportunities, the redefinition of market segments, and the innovation of products\r\n and services that more precisely meet customer needs. Ultimately, the Jobs to be Done\r\n framework is a powerful tool for fostering customer-centric innovation and for guiding\r\n strategic decisions that ensure long-term business success.\r\n </p>\r\n <h4>Examples</h4>\r\n <p>\r\n <b>Apple</b> addresses the need for seamless integration of technology in everyday life,\r\n from professionals enhancing productivity with MacBooks to fitness enthusiasts tracking\r\n their workouts with the Apple Watch.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function SegmentsPathway() {\r\n return (\r\n <div>\r\n <p>\r\n Market segmentation is the strategy of dividing a broad target market into subsets of\r\n consumers who have common needs, interests, and priorities, and then designing and\r\n implementing strategies to target them. Segmentation allows businesses to focus their\r\n resources on the most profitable segments, tailoring their products, services, and marketing\r\n messages to meet the specific needs of each segment.\r\n </p>\r\n <p>\r\n Effective segmentation requires a deep understanding of the market and the diverse needs of\r\n consumers within it. Criteria for segmentation can be based on demographic factors (age,\r\n gender, income), geographic location, psychographic factors (lifestyle, values,\r\n personality), or behavior (purchasing habits, brand interactions). The key is to identify\r\n segments that are sizable, accessible, distinguishable, and actionable, allowing for\r\n targeted and efficient marketing strategies.\r\n </p>\r\n <p>\r\n Segmentation enables companies to differentiate their offerings in a crowded market, enhance\r\n customer satisfaction by addressing specific needs, and achieve a competitive advantage by\r\n serving their target segments better than competitors. It also allows for more efficient\r\n allocation of marketing resources, as strategies can be tailored to the specific\r\n characteristics and needs of each segment, leading to higher returns on investment. In a\r\n rapidly changing market environment, segmentation provides businesses with the agility to\r\n adapt to changes in consumer preferences and market dynamics, ensuring long-term\r\n sustainability and growth.\r\n </p>\r\n <h4>Examples</h4>\r\n <p>\r\n <b>Nike</b> focuses on athletes across the spectrum, from elite professionals requiring\r\n high-performance gear to casual joggers seeking comfort and style, tailoring its products\r\n and messaging to each group's unique demands.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function CapabilitiesAdvantagePathway() {\r\n return <div>CapabilitiesAdvantagePathway</div>;\r\n}\r\n","export default function CustomerAdvantagePathway() {\r\n return <div>CustomerAdvantagePathway</div>;\r\n}\r\n","export default function LocationAdvantagePathway() {\r\n return <div>LocationAdvantagePathway</div>;\r\n}\r\n","export default function ManufacturingAdvantagePathway() {\r\n return <div>ManufacturingAdvantagePathway</div>;\r\n}\r\n","export default function NetworkAdvantagePathway() {\r\n return <div>NetworkAdvantagePathway</div>;\r\n}\r\n","export default function ResourceAdvantagePathway() {\r\n return <div>ResourceAdvantagePathway</div>;\r\n}\r\n","export default function SwitchingCostAdvantagePathway() {\r\n return <div>SwitchingCostAdvantagePathway</div>;\r\n}\r\n","export default function TimingAdvantagePathway() {\r\n return <div>TimingAdvantagePathway</div>;\r\n}\r\n","export default function AnalyzeFirmActivitiesPathway() {\r\n return (\r\n <div>\r\n <h1>Key Activities</h1>\r\n <p>\r\n Key activities encompass essential tasks crucial for delivering value to customers. They're\r\n the core operations that drive customer satisfaction and are pivotal for maintaining\r\n alignment between business operations and customer needs.\r\n </p>\r\n <ul>\r\n <li>Product Development</li>\r\n <li>Manufacturing/Production</li>\r\n <li>Marketing & Sales</li>\r\n <li>Customer Service/Support R&D</li>\r\n <li>Logistics & Supply Chain</li>\r\n <li>Quality Assurance & Control</li>\r\n </ul>\r\n\r\n <h1>Key Resources</h1>\r\n <p>\r\n Key resources are the essential assets and capabilities fundamental to delivering value to\r\n customers. They include tangible and intangible assets, such as technology, human capital,\r\n and intellectual property, which are essential for supporting key activities and achieving\r\n strategic objectives\r\n </p>\r\n\r\n <ul>\r\n <li>Human Capital</li>\r\n <li>Financial Resources</li>\r\n <li>Brand & Reputation</li>\r\n <li>Technology & Infrastructure</li>\r\n <li>Physical Assets</li>\r\n </ul>\r\n\r\n <h1>Key Partnerships and Suppliers</h1>\r\n <p>\r\n Key partnerships & suppliers are external entities critical to your business model. These\r\n collaborations provide access to resources, expertise, or distribution channels, while\r\n enhancing the capabilities and reach of your business to better serve customers and achieve\r\n strategic goals.\r\n </p>\r\n\r\n <ul>\r\n <li>Partnerships & Alliances</li>\r\n <li>Channels</li>\r\n </ul>\r\n\r\n <h1>Pricing Model</h1>\r\n <p>\r\n Your pricing model determines how revenue is generated, whether through one-time payments,\r\n subscription models, or other methods. It's crucial to decide this early as it's challenging\r\n to change later in development.\r\n </p>\r\n </div>\r\n );\r\n}\r\n","export default function ExistingRAndCPathway() {\r\n return <div>ExistingRAndCPathway</div>;\r\n}\r\n","export default function ImplementChangesPathway() {\r\n return <div>ImplementChangesPathway</div>;\r\n}\r\n","export default function Error({ message }: { message: string }) {\r\n return (\r\n <div\r\n className=\"w-100 d-flex flex-column justify-content-center align-items-center\"\r\n style={{ minHeight: window.innerHeight - 100 }}\r\n >\r\n <div>Error {message}</div>\r\n <div>\r\n Contact support at <a href=\"mailto:cgp27@byu.edu\">cgp27@byu.edu</a> to report a bug.\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import useElementSize from \"hooks/useElementSize\";\r\nimport { createContext, useContext, useState } from \"react\";\r\nimport { Transition } from \"react-transition-group\";\r\n\r\nconst ContainerContext = createContext({\r\n focusTab: 0,\r\n setFocusTab: (_tab: number) => {},\r\n tabWidth: 0,\r\n animationDuration: 0,\r\n numTabs: 0,\r\n});\r\n\r\nfunction Container({ children }: { children: any }) {\r\n const [tabContainerRef, { width: containerWidth }] = useElementSize();\r\n const [focusTab, setFocusTab] = useState(0);\r\n const animationDuration = 300;\r\n const numTabs = children.length;\r\n const tabWidth = (containerWidth - 16) * (2 / 3);\r\n\r\n return (\r\n <ContainerContext.Provider\r\n value={{\r\n focusTab,\r\n setFocusTab,\r\n tabWidth,\r\n animationDuration,\r\n numTabs,\r\n }}\r\n >\r\n <div ref={tabContainerRef} className=\"d-flex mb-5\">\r\n {children}\r\n </div>\r\n </ContainerContext.Provider>\r\n );\r\n}\r\n\r\nconst TabContext = createContext({\r\n isFocus: false,\r\n});\r\n\r\nfunction Tab({ children, i }: { children: any; i: number }) {\r\n const { focusTab, setFocusTab, numTabs, animationDuration } = useContext(ContainerContext);\r\n const isFocus = i === focusTab;\r\n const flex = isFocus ? (numTabs - 1) * 2 : 1;\r\n\r\n const defaultStyle = {\r\n overflow: \"hidden\",\r\n };\r\n\r\n const transitionStyles: { [key: string]: any } = {\r\n entering: { flex, transition: `all ${animationDuration}ms` },\r\n entered: { flex },\r\n exiting: { flex: 1, transition: `all ${animationDuration}ms` },\r\n exited: { flex: 1 },\r\n };\r\n\r\n return (\r\n <TabContext.Provider value={{ isFocus }}>\r\n <Transition in={isFocus} timeout={animationDuration}>\r\n {(state) => (\r\n <div\r\n style={{\r\n ...defaultStyle,\r\n ...transitionStyles[state],\r\n transition: `all ${animationDuration}ms`,\r\n flex,\r\n overflow: \"hidden\",\r\n }}\r\n >\r\n <div className=\"py-2 h-100 \">\r\n <div\r\n className=\"bg-tan-3 border mx-1 rounded h-100 d-flex justify-content-center position-relative\"\r\n onClick={() => setFocusTab(i)}\r\n style={{\r\n cursor: isFocus ? \"\" : \"pointer\",\r\n overflow: \"hidden\",\r\n }}\r\n >\r\n <div>{children}</div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </Transition>\r\n </TabContext.Provider>\r\n );\r\n}\r\n\r\nfunction Header({ children }: { children: React.JSX.Element }) {\r\n return <div>{children}</div>;\r\n}\r\n\r\nfunction Content({ children }: { children: React.JSX.Element }) {\r\n const { isFocus } = useContext(TabContext);\r\n const { tabWidth, animationDuration } = useContext(ContainerContext);\r\n\r\n const defaultStyle = {\r\n overflow: \"hidden\",\r\n };\r\n\r\n const transitionStyles: { [key: string]: any } = {\r\n entering: { width: tabWidth, transition: `all ${animationDuration}ms` },\r\n entered: { width: tabWidth },\r\n exiting: { width: 0, transition: `all ${animationDuration}ms` },\r\n exited: { width: 0 },\r\n };\r\n return (\r\n <Transition in={isFocus} timeout={animationDuration}>\r\n {(state) => (\r\n <div\r\n style={{\r\n ...defaultStyle,\r\n ...transitionStyles[state],\r\n }}\r\n >\r\n <div style={{ width: tabWidth }}>{children}</div>\r\n </div>\r\n )}\r\n </Transition>\r\n );\r\n}\r\n\r\nconst HorizontalAccordion = {\r\n Container,\r\n Tab,\r\n Header,\r\n Content,\r\n};\r\n\r\nexport default HorizontalAccordion;\r\n","import React, { useEffect } from \"react\";\r\nimport { TMessage } from \"types/MessageType\";\r\n\r\ntype TMessageProps = {\r\n className?: string;\r\n message: TMessage | undefined;\r\n setMessage: React.Dispatch<React.SetStateAction<TMessage | undefined>>;\r\n};\r\n\r\nexport default function Message({ className, message, setMessage }: TMessageProps) {\r\n const messageShowTime = 5000;\r\n const expires = Date.now() + messageShowTime;\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n if (Date.now() > expires) setMessage(undefined);\r\n }, messageShowTime);\r\n return () => clearTimeout(timer);\r\n // eslint-disable-next-line\r\n }, [message, setMessage]);\r\n\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className={\"text-center alert py-1 px-2 rounded alert-\" + message.type + \" \" + className}>\r\n {message.message}\r\n <button\r\n className=\"btn-close float-end\"\r\n onClick={() => setMessage(undefined)}\r\n aria-label=\"Close\"\r\n ></button>\r\n </div>\r\n );\r\n}\r\n","import constants from \"Constants\";\r\nimport React from \"react\";\r\n\r\ntype TPageTitleBannerProps = {\r\n id: string;\r\n title: string;\r\n img: string;\r\n imgPosition: string;\r\n description?: string;\r\n link?: string;\r\n linkText?: string;\r\n children?: React.ReactNode;\r\n};\r\n\r\nexport default function PageTitleBanner({\r\n id,\r\n title,\r\n img,\r\n imgPosition,\r\n description,\r\n link,\r\n linkText,\r\n children,\r\n}: TPageTitleBannerProps) {\r\n return (\r\n <div id={id} className=\"d-flex justify-content-center align-items-center position-relative\">\r\n <div\r\n id={id + \"-anchor\"}\r\n className=\"position-absolute\"\r\n style={{ top: -constants.navHeight }}\r\n />\r\n <img\r\n className=\"position-absolute object-fit-cover h-100 w-100\"\r\n src={img}\r\n alt=\"strategy unlocked\"\r\n style={{ opacity: \"0.5\", objectPosition: imgPosition }}\r\n />\r\n <div className=\"bg-blur w-100 my-5\">\r\n <div className=\"container\">\r\n <div className=\"row h-100 rounded py-3 text-dark\" style={{ minHeight: 200 }}>\r\n <div\r\n className={\r\n \"d-flex justify-content-center align-items-center \" +\r\n (description ? \"col-sm-6\" : \"col-12\")\r\n }\r\n >\r\n <div className=\"text-center display-1 m-0 p-0 d-flex align-items-center\">\r\n {title}\r\n {link && (\r\n <a href={link} className=\"btn btn-primary\">\r\n To {linkText}\r\n </a>\r\n )}\r\n </div>\r\n </div>\r\n {description && (\r\n <div className=\"col-sm-6 d-flex justify-content-center align-items-center\">\r\n <div className=\"d-block text-center\">\r\n <p className=\"\">{description}</p>\r\n <div className=\"\"></div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n {children}\r\n </div>\r\n );\r\n}\r\n","import constants from \"Constants\";\r\nimport useWindowSize from \"hooks/useWindowSize\";\r\nimport React, { useContext, useState } from \"react\";\r\nimport { createContext } from \"react\";\r\nimport BootstrapMenu from \"components/bootstrap_icons/Menu\";\r\n\r\nfunction Content({ children }: { children?: any }) {\r\n return (\r\n <div id=\"sidebar-page-content\" className=\"w-100\">\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nfunction Sidebar({ children }: { children?: any }) {\r\n type TSidebarType = \"expanded\" | \"small\" | \"hidden\";\r\n const { sidebarCollapsed, setSidebarCollapsed } = useContext(SidebarContext);\r\n let sidebarType: TSidebarType;\r\n const { width } = useWindowSize();\r\n const screenSmall = width < 768;\r\n\r\n if (screenSmall) {\r\n sidebarType = sidebarCollapsed ? \"hidden\" : \"expanded\";\r\n } else {\r\n sidebarType = sidebarCollapsed ? \"small\" : \"expanded\";\r\n }\r\n\r\n let sidebarWidth;\r\n\r\n if (sidebarType === \"expanded\") {\r\n sidebarWidth = constants.sidebarExpandedWidth + \"em\";\r\n } else if (sidebarType === \"small\") {\r\n sidebarWidth = constants.sidebarCollapsedWidth + \"em\";\r\n } else {\r\n sidebarWidth = \"0\";\r\n }\r\n\r\n function CollapseHandler(e: any) {\r\n e.stopPropagation();\r\n setSidebarCollapsed((sidebarCollapsed) => !sidebarCollapsed);\r\n }\r\n\r\n return (\r\n <div\r\n id=\"sidebar\"\r\n className={`h-100 bg-white ${(!sidebarCollapsed || !screenSmall) && \"border-end\"} ${\r\n screenSmall ? \"position-fixed z-3 \" : \"position-relative \"\r\n }`}\r\n style={{\r\n maxWidth: sidebarWidth,\r\n width: sidebarWidth,\r\n minWidth: sidebarWidth,\r\n transition: \"all 0.3s\",\r\n }}\r\n >\r\n {/* menu button when hidden */}\r\n {sidebarType === \"hidden\" && (\r\n <div className=\"overflow-visible no-word-break\">\r\n <div\r\n className=\"d-flex justify-content-center\"\r\n style={{ width: constants.sidebarCollapsedWidth + \"em\" }}\r\n >\r\n <div\r\n className=\"mt-2\"\r\n style={{ width: constants.sidebarCollapsedWidth / 2 + \"em\", cursor: \"pointer\" }}\r\n onClick={CollapseHandler}\r\n >\r\n <BootstrapMenu />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n {/* collapsed hover bg overlay */}\r\n {sidebarCollapsed && (\r\n <div\r\n className=\"position-absolute w-100 h-100 sidebar-hover z-2\"\r\n style={{ transition: \"all 0.3s\", cursor: \"pointer\" }}\r\n onClick={(e) => {\r\n if (sidebarCollapsed) CollapseHandler(e);\r\n }}\r\n ></div>\r\n )}\r\n {/* sidebar content */}\r\n <div\r\n className=\"position-sticky overflow-y-auto overflow-x-hidden\"\r\n style={{\r\n top: \"60px\",\r\n maxHeight: window.innerHeight - constants.navHeight,\r\n scrollbarWidth: \"none\",\r\n }}\r\n >\r\n <div\r\n className=\"position-relative\"\r\n style={{\r\n maxWidth: constants.sidebarExpandedWidth + \"em\",\r\n width: constants.sidebarExpandedWidth + \"em\",\r\n minWidth: constants.sidebarExpandedWidth + \"em\",\r\n overflowX: \"hidden\",\r\n }}\r\n >\r\n <div\r\n className=\"position-absolute end-0 p-2\"\r\n onClick={CollapseHandler}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n <button type=\"button\" className=\"btn-close\" aria-label=\"Close\" />\r\n </div>\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\ntype TSidebarContext = {\r\n sidebarCollapsed: boolean;\r\n setSidebarCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\r\n};\r\n\r\nexport const SidebarContext = createContext<TSidebarContext>({\r\n sidebarCollapsed: false,\r\n setSidebarCollapsed: () => {},\r\n});\r\n\r\ntype TPageProps = {\r\n children?: any;\r\n sidebarDefaultCollapsed?: boolean;\r\n};\r\n\r\nfunction Page({ children, sidebarDefaultCollapsed = window.innerWidth < 768 }: TPageProps) {\r\n const [sidebarCollapsed, setSidebarCollapsed] = useState(sidebarDefaultCollapsed);\r\n\r\n return (\r\n <SidebarContext.Provider value={{ sidebarCollapsed, setSidebarCollapsed }}>\r\n <div className=\"d-flex w-100\">{children}</div>\r\n </SidebarContext.Provider>\r\n );\r\n}\r\n\r\nconst SidebarPage = {\r\n Page,\r\n Sidebar,\r\n Content,\r\n};\r\n\r\nexport default SidebarPage;\r\n","import { Tools } from \"lib/data/Tools\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { TTool } from \"types/JsonType\";\r\nimport { SetDocumentTitle } from \"utils/SetDocumentTitle\";\r\n\r\nfunction ToolTile({ tool }: { tool: TTool }) {\r\n return (\r\n <div className=\"p-2 h-100\">\r\n <Link to={tool.url} className=\"text-decoration-none text-body h-100\">\r\n <div className=\"border rounded bg-white h-100 shadow-sm-on-hover d-flex flex-column justify-content-between overflow-hidden\">\r\n <div className=\"p-3\">\r\n <h1 className=\"text-center\">{tool.name}</h1>\r\n <p>{tool.summary}</p>\r\n </div>\r\n <img src={tool.imgSrc} className=\"w-100\" alt=\"\" />\r\n </div>\r\n </Link>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function ToolsHome() {\r\n SetDocumentTitle(\"Tools\");\r\n return (\r\n <div className=\"w-100\" style={{ minHeight: window.innerHeight - 100 }}>\r\n <div className=\"display-3 text-center my-4\">Strategy Tools and Frameworks</div>\r\n <div className=\"container mb-5\">\r\n <div className=\"row \">\r\n {Object.values(Tools).map((tool, i) => (\r\n <div className=\"col-12 col-sm-6 col-md-4\" key={i}>\r\n <ToolTile tool={tool} />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import constants from \"Constants\";\r\nimport Error from \"components/templates/Error\";\r\nimport Tools from \"lib/data/Tools\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { TTool } from \"types/JsonType\";\r\n\r\nfunction Tool({ tool }: { tool: TTool }) {\r\n const [ImportedComponent, setImportedComponent] = useState(null) as any;\r\n\r\n useEffect(() => {\r\n async function ImportComponents(filePath: string) {\r\n setImportedComponent(null);\r\n await import(`${filePath}`).then((module) => {\r\n const AnotherComponent = module.default;\r\n setImportedComponent(<AnotherComponent />);\r\n });\r\n }\r\n ImportComponents(tool.filePath);\r\n }, [tool]);\r\n\r\n return (\r\n <div\r\n className=\"mx-auto w-100\"\r\n style={{ maxWidth: constants.maxPageWidth, minHeight: window.innerHeight - 100 }}\r\n >\r\n {ImportedComponent}\r\n </div>\r\n );\r\n}\r\n\r\nexport default function ToolsRoot() {\r\n const { toolId } = useParams();\r\n if (!toolId) return <Error message={\"404. Page not found\"} />;\r\n const tool = Tools[toolId];\r\n\r\n if (!tool) return <Error message={\"404. Page not found\"} />;\r\n return <Tool tool={tool} />;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexport function angleToValue(params) {\n var angle = params.angle, minValue = params.minValue, maxValue = params.maxValue, startAngle = params.startAngle, endAngle = params.endAngle;\n if (endAngle <= startAngle) {\n throw new Error(\"endAngle must be greater than startAngle\");\n }\n if (angle < startAngle) {\n return minValue;\n }\n else if (angle > endAngle) {\n return maxValue;\n }\n else {\n var ratio = (angle - startAngle) / (endAngle - startAngle);\n var value = ratio * (maxValue - minValue) + minValue;\n return value;\n }\n}\nexport function valueToAngle(params) {\n var value = params.value, minValue = params.minValue, maxValue = params.maxValue, startAngle = params.startAngle, endAngle = params.endAngle;\n if (endAngle <= startAngle) {\n throw new Error(\"endAngle must be greater than startAngle\");\n }\n var ratio = (value - minValue) / (maxValue - minValue);\n var angle = ratio * (endAngle - startAngle) + startAngle;\n return angle;\n}\nfunction convertAngle(degree, from, to) {\n to = to || { direction: \"ccw\", axis: \"+x\" };\n if (from.direction !== to.direction) {\n degree = degree === 0 ? 0 : 360 - degree;\n }\n if (from.axis === to.axis) {\n return degree;\n }\n if (from.axis[1] === to.axis[1]) {\n return (180 + degree) % 360;\n }\n switch (to.direction + from.axis + to.axis) {\n case \"ccw+x-y\":\n case \"ccw-x+y\":\n case \"ccw+y+x\":\n case \"ccw-y-x\":\n case \"cw+y-x\":\n case \"cw-y+x\":\n case \"cw-x-y\":\n case \"cw+x+y\":\n return (90 + degree) % 360;\n case \"ccw+y-x\":\n case \"ccw-y+x\":\n case \"ccw+x+y\":\n case \"ccw-x-y\":\n case \"cw+x-y\":\n case \"cw-x+y\":\n case \"cw+y+x\":\n case \"cw-y-x\":\n return (270 + degree) % 360;\n default:\n throw new Error(\"Unhandled conversion\");\n }\n}\nexport function angleToPosition(angle, radius, svgSize) {\n var angleConverted = convertAngle(angle.degree, angle, {\n direction: \"ccw\",\n axis: \"+x\",\n });\n var angleInRad = (angleConverted / 180) * Math.PI;\n var dX;\n var dY;\n if (angleInRad <= Math.PI) {\n if (angleInRad <= Math.PI / 2) {\n dY = Math.sin(angleInRad) * radius;\n dX = Math.cos(angleInRad) * radius;\n }\n else {\n dY = Math.sin(Math.PI - angleInRad) * radius;\n dX = Math.cos(Math.PI - angleInRad) * radius * -1;\n }\n }\n else {\n if (angleInRad <= Math.PI * 1.5) {\n dY = Math.sin(angleInRad - Math.PI) * radius * -1;\n dX = Math.cos(angleInRad - Math.PI) * radius * -1;\n }\n else {\n dY = Math.sin(2 * Math.PI - angleInRad) * radius * -1;\n dX = Math.cos(2 * Math.PI - angleInRad) * radius;\n }\n }\n var x = dX + svgSize / 2;\n var y = svgSize / 2 - dY;\n return { x: x, y: y };\n}\nexport function positionToAngle(position, svgSize, angleType) {\n var dX = position.x - svgSize / 2;\n var dY = svgSize / 2 - position.y;\n var theta = Math.atan2(dY, dX);\n if (theta < 0) {\n theta = theta + 2 * Math.PI;\n }\n var degree = (theta / Math.PI) * 180;\n return convertAngle(degree, {\n direction: \"ccw\",\n axis: \"+x\",\n }, angleType);\n}\nexport function semiCircle(opts) {\n var startAngle = opts.startAngle, endAngle = opts.endAngle, radius = opts.radius, svgSize = opts.svgSize, direction = opts.direction, angleType = opts.angleType;\n var startPosition = angleToPosition(__assign({ degree: startAngle }, angleType), radius, svgSize);\n var endPosition = angleToPosition(__assign({ degree: endAngle }, angleType), radius, svgSize);\n return \"\\n M \".concat(svgSize / 2, \",\").concat(svgSize / 2, \"\\n L \").concat(startPosition.x, \",\").concat(startPosition.y, \"\\n A \").concat(radius, \" \").concat(radius, \" 0 \").concat(direction === \"cw\" ? \"1 1\" : \"0 0\", \"\\n \").concat(endPosition.x, \" \").concat(endPosition.y, \"\\n Z\\n \");\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { angleToPosition } from \"./circularGeometry\";\nfunction getStartAndEndPosition(opts) {\n var startAngle = opts.startAngle, endAngle = opts.endAngle, radius = opts.radius, svgSize = opts.svgSize, angleType = opts.angleType;\n var isCircle = false;\n if (startAngle !== endAngle && startAngle % 360 === endAngle % 360) {\n isCircle = true;\n }\n var startPosition = angleToPosition(__assign({ degree: startAngle }, angleType), radius, svgSize);\n var endPosition = angleToPosition(__assign({ degree: isCircle ? endAngle - 0.001 : endAngle }, angleType), radius, svgSize);\n return { startPosition: startPosition, endPosition: endPosition, isCircle: isCircle };\n}\nexport function pieShapedPath(opts) {\n var radius = opts.radius, svgSize = opts.svgSize, direction = opts.direction;\n var _a = getStartAndEndPosition(opts), startPosition = _a.startPosition, endPosition = _a.endPosition;\n return \"\\n M \".concat(svgSize / 2, \",\").concat(svgSize / 2, \"\\n L \").concat(startPosition.x, \",\").concat(startPosition.y, \"\\n A \").concat(radius, \" \").concat(radius, \" 0 \").concat(direction === \"cw\" ? \"1 1\" : \"0 0\", \"\\n \").concat(endPosition.x, \" \").concat(endPosition.y, \"\\n Z\\n \");\n}\nexport function arcShapedPath(opts) {\n var startAngle = opts.startAngle, endAngle = opts.endAngle, radius = opts.radius, direction = opts.direction;\n var _a = getStartAndEndPosition(opts), startPosition = _a.startPosition, endPosition = _a.endPosition, isCircle = _a.isCircle;\n var largeArc = endAngle - startAngle >= 180;\n return \"\\n M \".concat(startPosition.x, \",\").concat(startPosition.y, \"\\n A \").concat(radius, \" \").concat(radius, \" 0\\n \").concat(largeArc ? \"1\" : \"0\", \"\\n \").concat(direction === \"cw\" ? \"1\" : \"0\", \"\\n \").concat(endPosition.x, \" \").concat(endPosition.y, \"\\n \").concat(isCircle ? \"Z\" : \"\", \"\\n \");\n}\nexport function arcPathWithRoundedEnds(opts) {\n var startAngle = opts.startAngle, innerRadius = opts.innerRadius, thickness = opts.thickness, direction = opts.direction, angleType = opts.angleType, svgSize = opts.svgSize;\n var endAngle = opts.endAngle;\n if (startAngle % 360 === endAngle % 360 && startAngle !== endAngle) {\n endAngle = endAngle - 0.001;\n }\n var largeArc = endAngle - startAngle >= 180;\n var outerRadius = innerRadius + thickness;\n var innerArcStart = angleToPosition(__assign({ degree: startAngle }, angleType), innerRadius, svgSize);\n var startPoint = \"\\n M \".concat(innerArcStart.x, \",\").concat(innerArcStart.y, \"\\n \");\n var innerArcEnd = angleToPosition(__assign({ degree: endAngle }, angleType), innerRadius, svgSize);\n var innerArc = \"\\n A \".concat(innerRadius, \" \").concat(innerRadius, \" 0\\n \").concat(largeArc ? \"1\" : \"0\", \"\\n \").concat(direction === \"cw\" ? \"1\" : \"0\", \"\\n \").concat(innerArcEnd.x, \" \").concat(innerArcEnd.y, \"\\n \");\n var outerArcStart = angleToPosition(__assign({ degree: endAngle }, angleType), outerRadius, svgSize);\n var firstButt = \"\\n A \".concat(thickness / 2, \" \").concat(thickness / 2, \" 0\\n \").concat(largeArc ? \"1\" : \"0\", \"\\n \").concat(direction === \"cw\" ? \"0\" : \"1\", \"\\n \").concat(outerArcStart.x, \" \").concat(outerArcStart.y, \"\\n \");\n var outerArcEnd = angleToPosition(__assign({ degree: startAngle }, angleType), outerRadius, svgSize);\n var outerArc = \"\\n A \".concat(outerRadius, \" \").concat(outerRadius, \" 0\\n \").concat(largeArc ? \"1\" : \"0\", \"\\n \").concat(direction === \"cw\" ? \"0\" : \"1\", \"\\n \").concat(outerArcEnd.x, \" \").concat(outerArcEnd.y, \"\\n \");\n var secondButt = \"\\n A \".concat(thickness / 2, \" \").concat(thickness / 2, \" 0\\n \").concat(largeArc ? \"1\" : \"0\", \"\\n \").concat(direction === \"cw\" ? \"0\" : \"1\", \"\\n \").concat(innerArcStart.x, \" \").concat(innerArcStart.y, \"\\n \");\n return startPoint + innerArc + firstButt + outerArc + secondButt + \" Z\";\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from \"react\";\nimport { angleToPosition, positionToAngle, valueToAngle, angleToValue, } from \"./circularGeometry\";\nimport { arcPathWithRoundedEnds } from \"./svgPaths\";\nvar CircularSlider = (function (_super) {\n __extends(CircularSlider, _super);\n function CircularSlider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.svgRef = React.createRef();\n _this.onMouseEnter = function (ev) {\n if (ev.buttons === 1) {\n _this.onMouseDown(ev);\n }\n };\n _this.onMouseDown = function (ev) {\n var svgRef = _this.svgRef.current;\n if (svgRef) {\n svgRef.addEventListener(\"mousemove\", _this.handleMousePosition);\n svgRef.addEventListener(\"mouseleave\", _this.removeMouseListeners);\n svgRef.addEventListener(\"mouseup\", _this.removeMouseListeners);\n }\n _this.handleMousePosition(ev);\n };\n _this.removeMouseListeners = function () {\n var svgRef = _this.svgRef.current;\n if (svgRef) {\n svgRef.removeEventListener(\"mousemove\", _this.handleMousePosition);\n svgRef.removeEventListener(\"mouseleave\", _this.removeMouseListeners);\n svgRef.removeEventListener(\"mouseup\", _this.removeMouseListeners);\n }\n if (_this.props.onControlFinished) {\n _this.props.onControlFinished();\n }\n };\n _this.handleMousePosition = function (ev) {\n var x = ev.clientX;\n var y = ev.clientY;\n _this.processSelection(x, y);\n };\n _this.onTouch = function (ev) {\n if (ev.touches.length > 1 ||\n (ev.type === \"touchend\" && ev.touches.length > 0)) {\n return;\n }\n var touch = ev.changedTouches[0];\n var x = touch.clientX;\n var y = touch.clientY;\n _this.processSelection(x, y);\n if (ev.type === \"touchend\" || ev.type === \"touchcancel\") {\n if (_this.props.onControlFinished) {\n _this.props.onControlFinished();\n }\n }\n };\n _this.processSelection = function (x, y) {\n var _a;\n var _b = _this.props, size = _b.size, maxValue = _b.maxValue, minValue = _b.minValue, angleType = _b.angleType, startAngle = _b.startAngle, endAngle = _b.endAngle, handle1 = _b.handle1, disabled = _b.disabled, handle2 = _b.handle2, coerceToInt = _b.coerceToInt;\n if (!handle1.onChange) {\n return;\n }\n var svgRef = _this.svgRef.current;\n if (!svgRef) {\n return;\n }\n var svgPoint = svgRef.createSVGPoint();\n svgPoint.x = x;\n svgPoint.y = y;\n var coordsInSvg = svgPoint.matrixTransform((_a = svgRef.getScreenCTM()) === null || _a === void 0 ? void 0 : _a.inverse());\n var angle = positionToAngle(coordsInSvg, size, angleType);\n var value = angleToValue({\n angle: angle,\n minValue: minValue,\n maxValue: maxValue,\n startAngle: startAngle,\n endAngle: endAngle,\n });\n if (coerceToInt) {\n value = Math.round(value);\n }\n if (!disabled) {\n if (handle2 &&\n handle2.onChange &&\n Math.abs(value - handle2.value) < Math.abs(value - handle1.value)) {\n handle2.onChange(value);\n }\n else {\n handle1.onChange(value);\n }\n }\n };\n return _this;\n }\n CircularSlider.prototype.render = function () {\n var _a = this.props, size = _a.size, trackWidth = _a.trackWidth, handle1 = _a.handle1, handle2 = _a.handle2, handleSize = _a.handleSize, maxValue = _a.maxValue, minValue = _a.minValue, startAngle = _a.startAngle, endAngle = _a.endAngle, angleType = _a.angleType, disabled = _a.disabled, arcColor = _a.arcColor, arcBackgroundColor = _a.arcBackgroundColor, outerShadow = _a.outerShadow;\n var shadowWidth = 20;\n var trackInnerRadius = size / 2 - trackWidth - shadowWidth;\n var handle1Angle = valueToAngle({\n value: handle1.value,\n minValue: minValue,\n maxValue: maxValue,\n startAngle: startAngle,\n endAngle: endAngle,\n });\n var handle2Angle = handle2 &&\n valueToAngle({\n value: handle2.value,\n minValue: minValue,\n maxValue: maxValue,\n startAngle: startAngle,\n endAngle: endAngle,\n });\n var handle1Position = angleToPosition(__assign({ degree: handle1Angle }, angleType), trackInnerRadius + trackWidth / 2, size);\n var handle2Position = handle2Angle &&\n angleToPosition(__assign({ degree: handle2Angle }, angleType), trackInnerRadius + trackWidth / 2, size);\n var controllable = !disabled && Boolean(handle1.onChange);\n return (React.createElement(\"svg\", { width: size, height: size, ref: this.svgRef, onMouseDown: this.onMouseDown, onMouseEnter: this.onMouseEnter, onClick: function (ev) { return controllable && ev.stopPropagation(); }, onTouchStart: this.onTouch, onTouchEnd: this.onTouch, onTouchMove: this.onTouch, onTouchCancel: this.onTouch, style: { touchAction: \"none\" } },\n outerShadow && (React.createElement(React.Fragment, null,\n React.createElement(\"radialGradient\", { id: \"outerShadow\" },\n React.createElement(\"stop\", { offset: \"90%\", stopColor: arcColor }),\n React.createElement(\"stop\", { offset: \"100%\", stopColor: \"white\" })),\n React.createElement(\"circle\", { fill: \"none\", stroke: \"url(#outerShadow)\", cx: size / 2, cy: size / 2, r: trackInnerRadius + trackWidth + shadowWidth / 2 - 1, strokeWidth: shadowWidth }))),\n handle2Angle === undefined ? (React.createElement(React.Fragment, null,\n React.createElement(\"path\", { d: arcPathWithRoundedEnds({\n startAngle: handle1Angle,\n endAngle: endAngle,\n angleType: angleType,\n innerRadius: trackInnerRadius,\n thickness: trackWidth,\n svgSize: size,\n direction: angleType.direction,\n }), fill: arcBackgroundColor }),\n React.createElement(\"path\", { d: arcPathWithRoundedEnds({\n startAngle: startAngle,\n endAngle: handle1Angle,\n angleType: angleType,\n innerRadius: trackInnerRadius,\n thickness: trackWidth,\n svgSize: size,\n direction: angleType.direction,\n }), fill: arcColor }))) : (React.createElement(React.Fragment, null,\n React.createElement(\"path\", { d: arcPathWithRoundedEnds({\n startAngle: startAngle,\n endAngle: handle1Angle,\n angleType: angleType,\n innerRadius: trackInnerRadius,\n thickness: trackWidth,\n svgSize: size,\n direction: angleType.direction,\n }), fill: arcBackgroundColor }),\n React.createElement(\"path\", { d: arcPathWithRoundedEnds({\n startAngle: handle2Angle,\n endAngle: endAngle,\n angleType: angleType,\n innerRadius: trackInnerRadius,\n thickness: trackWidth,\n svgSize: size,\n direction: angleType.direction,\n }), fill: arcBackgroundColor }),\n React.createElement(\"path\", { d: arcPathWithRoundedEnds({\n startAngle: handle1Angle,\n endAngle: handle2Angle,\n angleType: angleType,\n innerRadius: trackInnerRadius,\n thickness: trackWidth,\n svgSize: size,\n direction: angleType.direction,\n }), fill: arcColor }))),\n controllable && (React.createElement(React.Fragment, null,\n React.createElement(\"filter\", { id: \"handleShadow\", x: \"-50%\", y: \"-50%\", width: \"16\", height: \"16\" },\n React.createElement(\"feOffset\", { result: \"offOut\", in: \"SourceGraphic\", dx: \"0\", dy: \"0\" }),\n React.createElement(\"feColorMatrix\", { result: \"matrixOut\", in: \"offOut\", type: \"matrix\", values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" }),\n React.createElement(\"feGaussianBlur\", { result: \"blurOut\", in: \"matrixOut\", stdDeviation: \"5\" }),\n React.createElement(\"feBlend\", { in: \"SourceGraphic\", in2: \"blurOut\", mode: \"normal\" })),\n React.createElement(\"circle\", { r: handleSize, cx: handle1Position.x, cy: handle1Position.y, fill: \"#ffffff\", filter: \"url(#handleShadow)\" }))),\n handle2Position && (React.createElement(React.Fragment, null,\n React.createElement(\"circle\", { r: handleSize, cx: handle2Position.x, cy: handle2Position.y, fill: \"#ffffff\", filter: \"url(#handleShadow)\" })))));\n };\n CircularSlider.defaultProps = {\n size: 200,\n trackWidth: 4,\n minValue: 0,\n maxValue: 100,\n startAngle: 0,\n endAngle: 360,\n angleType: {\n direction: \"cw\",\n axis: \"-y\",\n },\n handleSize: 8,\n arcBackgroundColor: \"#aaa\",\n };\n return CircularSlider;\n}(React.Component));\nexport { CircularSlider };\nvar CircularSliderWithChildren = (function (_super) {\n __extends(CircularSliderWithChildren, _super);\n function CircularSliderWithChildren() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CircularSliderWithChildren.prototype.render = function () {\n var size = this.props.size;\n return (React.createElement(\"div\", { style: {\n width: size,\n height: size,\n position: \"relative\",\n } },\n React.createElement(CircularSlider, __assign({}, this.props)),\n React.createElement(\"div\", { style: {\n position: \"absolute\",\n top: \"25%\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n } }, this.props.children)));\n };\n CircularSliderWithChildren.defaultProps = CircularSlider.defaultProps;\n return CircularSliderWithChildren;\n}(React.Component));\nexport { CircularSliderWithChildren };\nexport default CircularSlider;\n","import {\r\n MutableRefObject,\r\n createContext,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { SaveP5F } from \"api/tools/p5f/SaveP5F\";\r\nimport { DeleteP5F } from \"api/tools/p5f/DeleteP5F\";\r\nimport { GetP5F } from \"api/tools/p5f/GetP5F\";\r\nimport UserContext from \"context/UserContext\";\r\nimport { CircularSliderWithChildren } from \"react-circular-slider-svg\";\r\nimport constants from \"Constants\";\r\nimport useElementSize from \"hooks/useElementSize\";\r\nimport { Concepts } from \"lib/data/Concepts\";\r\n\r\nimport CollapseIcon from \"lib/img/icons/back-arrow.png\";\r\n\r\ntype TPosition = {\r\n x: number;\r\n y: number;\r\n width: number;\r\n height: number;\r\n top: number;\r\n right: number;\r\n bottom: number;\r\n left: number;\r\n};\r\nexport function useElementPosition<T extends HTMLElement = HTMLDivElement>(): [\r\n MutableRefObject<T | null>,\r\n TPosition,\r\n (ref: T) => void,\r\n] {\r\n const [position, setPosition] = useState<TPosition>({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n });\r\n const ref = useRef<T | null>(null);\r\n\r\n const updatePosition = useCallback((ref: T) => {\r\n setPosition(ref.getBoundingClientRect());\r\n }, []);\r\n\r\n useEffect(() => {\r\n const currentRef = ref.current;\r\n if (currentRef) {\r\n updatePosition(currentRef);\r\n }\r\n let eventListener =\r\n currentRef &&\r\n window.addEventListener(\"scroll\", () => {\r\n updatePosition(currentRef);\r\n });\r\n\r\n return () => {\r\n eventListener && window.removeEventListener(\"scroll\", eventListener);\r\n };\r\n }, [updatePosition]);\r\n\r\n return [ref, position, updatePosition];\r\n}\r\n\r\ntype TP5fContext = {\r\n userUpdateValues: TUserUpdateValues;\r\n setUserUpdateValues: React.Dispatch<React.SetStateAction<TUserUpdateValues>>;\r\n GetSavedAnalytics: () => void;\r\n presavedAnalytics: TPresets[];\r\n calculatedValues: {\r\n score: number;\r\n weightPerc: number;\r\n }[];\r\n};\r\n\r\nconst P5fContext = createContext<TP5fContext>({\r\n userUpdateValues: {} as any,\r\n setUserUpdateValues: () => {},\r\n GetSavedAnalytics: () => {},\r\n presavedAnalytics: [],\r\n calculatedValues: [],\r\n});\r\n\r\ntype TPresets = {\r\n creationDate: string;\r\n email: string;\r\n id: string;\r\n saveName: string;\r\n forcesData: TUserUpdateValues;\r\n};\r\n\r\ntype TUserUpdateValues = {\r\n title: string;\r\n weight: number;\r\n sections: {\r\n title: string;\r\n weight: number;\r\n questions: {\r\n title: string;\r\n value: number;\r\n weight: number;\r\n options: string[];\r\n }[];\r\n }[];\r\n}[];\r\n\r\ntype TQuestion = {\r\n title: string;\r\n value: number;\r\n weight: number;\r\n options: string[];\r\n};\r\n\r\ntype TSection = {\r\n title: string;\r\n weight: number;\r\n questions: TQuestion[];\r\n};\r\n\r\ntype TForce = {\r\n title: string;\r\n weight: number;\r\n sections: TSection[];\r\n};\r\n\r\ntype TMessage = {\r\n type: string;\r\n message: string;\r\n};\r\n\r\nfunction PresavedList() {\r\n const { presavedAnalytics, setUserUpdateValues, GetSavedAnalytics } = useContext(P5fContext);\r\n\r\n if (!presavedAnalytics || presavedAnalytics.length === 0) {\r\n return null;\r\n }\r\n\r\n async function DeletePresetHandler(saveId: string) {\r\n if (!window.confirm(\"Are you sure you want to delete this analysis?\")) return;\r\n\r\n const data = await DeleteP5F(saveId);\r\n\r\n if (data.status === \"success\") {\r\n GetSavedAnalytics();\r\n } else {\r\n console.error(data);\r\n }\r\n }\r\n\r\n function LoadPresavedDataHandler(forcesData: any) {\r\n setUserUpdateValues(forcesData);\r\n }\r\n\r\n return (\r\n <>\r\n <div className=\"py-2 d-flex justify-content-between align-items-center\">\r\n <div>\r\n <h3 className=\"mb-0\">Load Presaved Analysis </h3>\r\n <div className=\"text-secondary\">Load a previously saved analysis</div>\r\n </div>\r\n </div>\r\n <table className=\"table\">\r\n <thead>\r\n <tr>\r\n <th>Save Name</th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {presavedAnalytics.map((saveData, i) => {\r\n return (\r\n <tr key={i}>\r\n <td className=\"w-100 align-middle\">{saveData.saveName}</td>\r\n <td>\r\n <button\r\n className=\"btn btn-primary\"\r\n onClick={() => LoadPresavedDataHandler(saveData.forcesData)}\r\n style={{ width: 80 }}\r\n >\r\n Load\r\n </button>\r\n </td>\r\n <td>\r\n <button\r\n className=\"btn btn-danger\"\r\n onClick={() => {\r\n DeletePresetHandler(saveData.id);\r\n }}\r\n style={{ width: 80 }}\r\n >\r\n Delete\r\n </button>\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </>\r\n );\r\n}\r\n\r\nfunction SaveInput({\r\n setMessage,\r\n}: {\r\n setMessage: React.Dispatch<React.SetStateAction<TMessage | null>>;\r\n}) {\r\n const { userUpdateValues, GetSavedAnalytics, presavedAnalytics } = useContext(P5fContext);\r\n\r\n function ChangeMessage(type: string, newMessage: string) {\r\n setMessage({ type: type, message: newMessage });\r\n }\r\n\r\n async function SaveAnalyticsSubmitHandler(e: any) {\r\n e.preventDefault();\r\n\r\n const saveName = e.target[\"save-name\"].value;\r\n\r\n if (!saveName) {\r\n ChangeMessage(\"danger\", \"You must enter a name\");\r\n return;\r\n }\r\n\r\n if (presavedAnalytics.length >= 5) {\r\n ChangeMessage(\"danger\", \"You can only save 5 analytics\");\r\n return;\r\n }\r\n\r\n const data = await SaveP5F(saveName, userUpdateValues);\r\n\r\n if (data.status === \"success\") {\r\n ChangeMessage(\"success\", \"Analytics saved\");\r\n GetSavedAnalytics();\r\n } else {\r\n ChangeMessage(\"danger\", \"Error saving analytics\");\r\n console.error(data);\r\n }\r\n\r\n e.target.reset();\r\n }\r\n\r\n return (\r\n <form onSubmit={SaveAnalyticsSubmitHandler}>\r\n <input name=\"save-name\" className=\"form-control\" type=\"text\" placeholder=\"Save Name\" />\r\n <button className=\"btn btn-primary my-2\" type=\"submit\">\r\n Save Current Analysis\r\n </button>\r\n </form>\r\n );\r\n}\r\n\r\nfunction SavedAnalyticsAlerts({\r\n message,\r\n setMessage,\r\n}: {\r\n message: TMessage | null;\r\n setMessage: React.Dispatch<React.SetStateAction<TMessage | null>>;\r\n}) {\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div id=\"message-box\" className=\"my-4 position-relative \">\r\n <div className={\"alert alert-\" + message?.type}>\r\n <div className=\"mt-2\">\r\n <h4>{message?.message}</h4>\r\n <button\r\n type=\"button\"\r\n className=\"btn-close position-absolute top-0 end-0 m-2\"\r\n aria-label=\"Close\"\r\n onClick={() => setMessage(null)}\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction AnalyticsSaver() {\r\n const [message, setMessage] = useState<TMessage | null>(null);\r\n const isLoggedIn = useContext(UserContext).loginStatus === \"logged in\";\r\n\r\n return (\r\n <div id=\"save-analytics\" className=\" px-2 border border-2 rounded mb-2 position-relative \">\r\n <div id=\"save-analytics-anchor\" className=\"position-absolute\" style={{ top: -70 }}></div>\r\n <div className=\"px-2 py-3\">\r\n <h3 className=\"mb-0\">Save Current Analysis </h3>\r\n <div className=\"text-secondary pb-3\">\r\n Industry analysis takes a lot of work! Don't let it go to waste. Give your analysis a\r\n name, and we'll save it for you so you don't have to start from scratch next time you're\r\n here.\r\n </div>\r\n {isLoggedIn ? (\r\n <SaveInput setMessage={setMessage} />\r\n ) : (\r\n <Link className=\"btn btn-primary\" to={\"/login/?return_url=\" + window.location.pathname}>\r\n Log In to Save Analysis\r\n </Link>\r\n )}\r\n </div>\r\n\r\n <SavedAnalyticsAlerts message={message} setMessage={setMessage} />\r\n </div>\r\n );\r\n}\r\n\r\nfunction OptionButton({\r\n userUpdateValues,\r\n setUserUpdateValues,\r\n forceIndex,\r\n sectionIndex,\r\n questionIndex,\r\n option,\r\n optionIndex,\r\n}: {\r\n userUpdateValues: TForce[];\r\n setUserUpdateValues: React.Dispatch<React.SetStateAction<TForce[]>>;\r\n forceIndex: number;\r\n sectionIndex: number;\r\n questionIndex: number;\r\n option: string;\r\n optionIndex: number;\r\n}) {\r\n const optionSelectHandler = () => {\r\n let newValues = [...userUpdateValues];\r\n newValues[forceIndex].sections[sectionIndex].questions[questionIndex].value = optionIndex + 1;\r\n setUserUpdateValues(newValues);\r\n };\r\n\r\n const isActive =\r\n userUpdateValues[forceIndex].sections[sectionIndex].questions[questionIndex].value ===\r\n optionIndex + 1;\r\n\r\n return (\r\n <button\r\n className={`btn bg-white m-0 rounded-0 p-1 p-sm-2 ${isActive ? \"active\" : \"border\"}`}\r\n style={{ flexBasis: \"20%\", borderColor: constants.colors.greyRed }}\r\n onClick={optionSelectHandler}\r\n >\r\n {option}\r\n </button>\r\n );\r\n}\r\n\r\nfunction Question({\r\n userUpdateValues,\r\n setUserUpdateValues,\r\n forceIndex,\r\n sectionIndex,\r\n question,\r\n questionIndex,\r\n}: {\r\n userUpdateValues: TForce[];\r\n setUserUpdateValues: React.Dispatch<React.SetStateAction<TForce[]>>;\r\n forceIndex: number;\r\n sectionIndex: number;\r\n question: TQuestion;\r\n questionIndex: number;\r\n}) {\r\n return (\r\n <div className=\"w-100\">\r\n <div className=\"py-2 \">\r\n <div className=\"mb-2 fs-5\">{question.title}</div>\r\n\r\n <div className=\"d-flex\">\r\n {question.options.map((option: string, optionIndex: number) => {\r\n return (\r\n <OptionButton\r\n key={optionIndex}\r\n userUpdateValues={userUpdateValues}\r\n setUserUpdateValues={setUserUpdateValues}\r\n forceIndex={forceIndex}\r\n sectionIndex={sectionIndex}\r\n questionIndex={questionIndex}\r\n option={option}\r\n optionIndex={optionIndex}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Section({\r\n forceIndex,\r\n section,\r\n sectionIndex,\r\n forceSectionTotalWeight,\r\n headerHeight,\r\n}: {\r\n forceIndex: number;\r\n section: TSection;\r\n sectionIndex: number;\r\n forceSectionTotalWeight: number;\r\n headerHeight: number;\r\n}) {\r\n const { userUpdateValues, setUserUpdateValues } = useContext(P5fContext);\r\n const sectionQuestionWeightTotal = section.questions.reduce(\r\n (acc, question) => (acc += question.weight),\r\n 0,\r\n );\r\n\r\n const sectionScore = section.questions.reduce(\r\n (acc, question) => (acc += question.value * (question.weight / sectionQuestionWeightTotal)),\r\n 0,\r\n );\r\n\r\n return (\r\n <div className=\"position-relative\">\r\n <div\r\n className=\" border d-flex align-items-center justify-content-between bg-tan-2 position-sticky py-2 px-4\"\r\n style={{ top: constants.navHeight + headerHeight }}\r\n >\r\n <div className=\"fs-4 open-sans\">{section.title}</div>\r\n <div className=\"text-end\">\r\n Score: {Math.round(sectionScore * 100) / 100} - Weight:{\" \"}\r\n {Math.round((section.weight / forceSectionTotalWeight) * 100) || 0}%{\" \"}\r\n </div>\r\n </div>\r\n\r\n <div className=\"py-4 px-2\">\r\n {section.questions.map((question, questionindex) => {\r\n return (\r\n <Question\r\n key={questionindex}\r\n userUpdateValues={userUpdateValues}\r\n setUserUpdateValues={setUserUpdateValues}\r\n forceIndex={forceIndex}\r\n sectionIndex={sectionIndex}\r\n question={question}\r\n questionIndex={questionindex}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Force({\r\n force,\r\n forceIndex,\r\n setForcePositions,\r\n}: {\r\n force: TForce;\r\n forceIndex: number;\r\n setForcePositions: React.Dispatch<React.SetStateAction<number[]>>;\r\n}) {\r\n const [collapsed, setCollapsed] = useState(false);\r\n const forceSectionTotalWeight = force.sections.reduce(\r\n (acc, section) => (acc += section.weight),\r\n 0,\r\n );\r\n\r\n const [headerRef, { height }] = useElementSize();\r\n\r\n const forceRef = useRef<HTMLDivElement>(null);\r\n\r\n const [forceScrollRef, { y }] = useElementPosition();\r\n\r\n useEffect(() => {\r\n setForcePositions((forcePositions) => {\r\n const newForcePositions = forcePositions.slice();\r\n newForcePositions[forceIndex] = y;\r\n return newForcePositions;\r\n });\r\n }, [y, setForcePositions, forceIndex]);\r\n\r\n return (\r\n <div className=\"position-relative\" ref={forceRef}>\r\n <div\r\n id={`force-${forceIndex}`}\r\n className=\"position-relative\"\r\n style={{ top: -constants.navHeight }}\r\n ></div>\r\n\r\n <Header\r\n forceScrollRef={forceScrollRef}\r\n force={force}\r\n forceIndex={forceIndex}\r\n collapsed={collapsed}\r\n setCollapsed={setCollapsed}\r\n headerRef={headerRef}\r\n />\r\n\r\n <div className={collapsed ? \"d-none\" : \"\"}>\r\n {force.sections.map((section, sectionIndex) => {\r\n return (\r\n <Section\r\n key={sectionIndex}\r\n forceIndex={forceIndex}\r\n section={section}\r\n sectionIndex={sectionIndex}\r\n forceSectionTotalWeight={forceSectionTotalWeight}\r\n headerHeight={height}\r\n />\r\n );\r\n })}\r\n <div className=\"position-relative\">\r\n <div\r\n className=\"d-flex align-items-center justify-content-between bg-tan-2 border position-sticky z-1 py-2 px-4\"\r\n style={{ top: constants.navHeight + height }}\r\n >\r\n <div className=\"fs-4 open-sans\">Relative Section Weights</div>\r\n </div>\r\n <div className=\"container-fluid pb-4 w-100\">\r\n <div className=\"row justify-content-center \">\r\n {force.sections.map((section, sectionIndex) => (\r\n <div className=\"col-6 col-md-4\" key={section.title}>\r\n <SectionWeightSlider\r\n sectionIndex={sectionIndex}\r\n forceIndex={forceIndex}\r\n forceSectionTotalWeight={forceSectionTotalWeight}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SectionWeightSlider({\r\n sectionIndex,\r\n forceIndex,\r\n forceSectionTotalWeight,\r\n}: {\r\n sectionIndex: number;\r\n forceIndex: number;\r\n forceSectionTotalWeight: number;\r\n}) {\r\n const { userUpdateValues, setUserUpdateValues } = useContext(P5fContext);\r\n const force = userUpdateValues[forceIndex];\r\n const section = force.sections[sectionIndex];\r\n const [sliderValue, setSliderValue] = useState(section.weight - 100);\r\n\r\n function WeightChangeHandler(sliderValue: number) {\r\n setSliderValue(sliderValue);\r\n let newValues = [...userUpdateValues];\r\n newValues[forceIndex].sections[sectionIndex].weight = sliderValue + 100;\r\n setUserUpdateValues(newValues);\r\n }\r\n\r\n const arcColorOpacity = Math.round((sliderValue + 100) * (255 / 200));\r\n\r\n return (\r\n <div className=\"pt-4 h-100\">\r\n <div className=\"d-flex flex-column align-items-center justify-content-between h-100 rounded px-2 py-3 bg-white border\">\r\n <div className=\"text-center fs-4\">{section.title}</div>\r\n <div className=\"d-flex flex-column align-items-center justify-content-center \">\r\n <CircularSliderWithChildren\r\n handle1={{\r\n value: sliderValue,\r\n onChange: WeightChangeHandler,\r\n }}\r\n arcColor={constants.colors.greyRed + arcColorOpacity.toString(16).padStart(2, \"0\")}\r\n startAngle={40}\r\n endAngle={320}\r\n minValue={-100}\r\n maxValue={100}\r\n size={180}\r\n >\r\n <div\r\n className=\"position-absolute overflow-visible d-flex flex-column justify-content-center align-items-center no-word-wrap\"\r\n style={{ top: 45, width: 0, height: 0 }}\r\n >\r\n <div className=\"open-sans fs-1 lh-1 \">\r\n {sliderValue > 0 && \"+\"}\r\n {Math.round(sliderValue)}\r\n </div>\r\n </div>\r\n </CircularSliderWithChildren>\r\n\r\n <div className=\"text-center\">\r\n Accounts for {Math.round((section.weight / forceSectionTotalWeight) * 100) || 0}% of{\" \"}\r\n {force.title} Score\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction ForceWeightSlider({ forceIndex }: { forceIndex: number }) {\r\n const { userUpdateValues, setUserUpdateValues, calculatedValues } = useContext(P5fContext);\r\n const forceCalculatedValues = calculatedValues[forceIndex];\r\n const force = userUpdateValues[forceIndex];\r\n const [sliderValue, setSliderValue] = useState(force.weight - 100);\r\n\r\n function WeightChangeHandler(sliderValue: number) {\r\n setSliderValue(sliderValue);\r\n let newValues = [...userUpdateValues];\r\n newValues[forceIndex].weight = sliderValue + 100;\r\n setUserUpdateValues(newValues);\r\n }\r\n\r\n const arcColorOpacity = Math.round((sliderValue + 100) * (255 / 200));\r\n\r\n return (\r\n <div className=\"pt-5 h-100\">\r\n <div className=\"d-flex flex-column align-items-center h-100 justify-content-between rounded px-2 py-3 bg-tan-2\">\r\n <h2 className=\"text-center\">{force.title}</h2>\r\n <div className=\"d-flex flex-column align-items-center\">\r\n <CircularSliderWithChildren\r\n handle1={{ value: sliderValue, onChange: WeightChangeHandler }}\r\n arcColor={constants.colors.greyRed + arcColorOpacity.toString(16).padStart(2, \"0\")}\r\n startAngle={40}\r\n endAngle={320}\r\n minValue={-100}\r\n maxValue={100}\r\n trackWidth={13}\r\n >\r\n <div\r\n className=\"position-absolute overflow-visible d-flex flex-column justify-content-center align-items-center no-word-wrap\"\r\n style={{ top: 45, width: 0, height: 0 }}\r\n >\r\n <div className=\"open-sans fs-1 lh-1 \">\r\n {sliderValue > 0 && \"+\"}\r\n {Math.round(sliderValue)}\r\n </div>\r\n </div>\r\n </CircularSliderWithChildren>\r\n <div className=\"text-center fs-5\">\r\n Accounts for {Math.round(forceCalculatedValues.weightPerc) || 0}% of Industry Score\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction ForcesWeights() {\r\n const { userUpdateValues } = useContext(P5fContext);\r\n\r\n return (\r\n <div className=\"px-3\">\r\n <div className=\"display-5 text-center mt-5 \">Set Relative Force Weights</div>\r\n\r\n <div className=\"container mb-5\">\r\n <div className=\"row justify-content-center \">\r\n {userUpdateValues.map((force, forceIndex) => (\r\n <div className=\"col-12 col-sm-6 col-md-4\" key={force.title}>\r\n <ForceWeightSlider forceIndex={forceIndex} />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Summary({\r\n calculatedValues,\r\n}: {\r\n calculatedValues: {\r\n score: number;\r\n weightPerc: number;\r\n }[];\r\n}) {\r\n let industryScore = calculatedValues.reduce((acc, force) => {\r\n return (acc += force.score * (force.weightPerc / 100));\r\n }, 0);\r\n\r\n const forces = [\"Rivalry\", \"Buyer Power\", \"Supplier Power\", \"New Entrants\", \"Substitutes\"];\r\n return (\r\n <div className=\"mt-5\">\r\n <div>\r\n <div className=\"text-center display-3\">Force Analysis Summary</div>\r\n <hr />\r\n </div>\r\n <div>\r\n <table className=\"table \">\r\n <thead>\r\n <tr>\r\n <th>Force</th>\r\n <th>Value (1 Low - 5 High)</th>\r\n <th style={{ minWidth: 75 }}>Weight</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {calculatedValues.map((force, index) => {\r\n return (\r\n <tr key={\"Summary - \" + index}>\r\n <td>{forces[index]}</td>\r\n <td>{Math.round(force.score * 100) / 100}</td>\r\n <td>{Math.round(force.weightPerc * 10) / 10}%</td>\r\n </tr>\r\n );\r\n })}\r\n <tr className=\"table-warning\">\r\n <td>Industry Score</td>\r\n <td>{Math.round(industryScore * 100) / 100}</td>\r\n <td></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction Header({\r\n forceScrollRef,\r\n force,\r\n forceIndex,\r\n collapsed,\r\n setCollapsed,\r\n headerRef,\r\n}: {\r\n forceScrollRef: React.MutableRefObject<HTMLDivElement | null>;\r\n force: TForce;\r\n forceIndex: number;\r\n collapsed: boolean;\r\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\r\n headerRef: React.MutableRefObject<HTMLDivElement | null>;\r\n}) {\r\n const { calculatedValues } = useContext(P5fContext);\r\n const forceCalculatedValues = calculatedValues[forceIndex];\r\n\r\n return (\r\n <div\r\n className=\"position-sticky z-2 bg-dark-tan text-light \"\r\n style={{ top: constants.navHeight }}\r\n ref={headerRef}\r\n >\r\n <div\r\n ref={forceScrollRef}\r\n className=\"position-relative d-flex justify-content-between align-items-center py-2 px-4\"\r\n >\r\n <div className=\"fs-2 open-sans\">\r\n Force {forceIndex + 1} - {force.title}\r\n </div>\r\n <div className=\"d-flex align-items-center\">\r\n <div className=\"text-end\">\r\n Score: {Math.round(forceCalculatedValues.score * 100) / 100 || 0} - Weight:{\" \"}\r\n {Math.round(forceCalculatedValues.weightPerc) || 0}%{\" \"}\r\n </div>\r\n\r\n <button\r\n className=\"btn p-0 ms-3\"\r\n style={{\r\n transform: collapsed ? \"rotate(270deg)\" : \"rotate(90deg)\",\r\n transition: \"transform 0.5s\",\r\n width: 30,\r\n height: 30,\r\n }}\r\n onClick={() => setCollapsed((collapsed) => !collapsed)}\r\n >\r\n <img\r\n src={CollapseIcon}\r\n height={30}\r\n width={30}\r\n alt=\"\"\r\n style={{\r\n transform: \"translate(-1px, -1px)\",\r\n padding: 5,\r\n }}\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction CalculatorInput() {\r\n const { userUpdateValues } = useContext(P5fContext);\r\n\r\n const [forcePositions, setForcePositions] = useState<number[]>([]);\r\n\r\n const forceInView = forcePositions.findIndex((forcePosition) => forcePosition > 0);\r\n\r\n return (\r\n <div className=\"position-relative\">\r\n <ForcesWeights />\r\n <div className=\"d-flex position-relative\">\r\n <div>\r\n {userUpdateValues.map((force, forceIndex) => {\r\n return (\r\n <Force\r\n key={forceIndex}\r\n force={force}\r\n forceIndex={forceIndex}\r\n setForcePositions={setForcePositions}\r\n />\r\n );\r\n })}\r\n </div>\r\n <div className=\"position-relative \">\r\n <div\r\n className=\"position-sticky ps-3 d-flex flex-column justify-content-center text-no-wrap\"\r\n style={{\r\n top: (window.innerHeight - constants.navHeight - 248) / 2,\r\n }}\r\n >\r\n {userUpdateValues.map((force, i) => {\r\n const active = forceInView === i;\r\n return (\r\n <div key={force.title + \"asdf\"}>\r\n <button\r\n className={`btn py-0 px-1 cursor-pointer underline-on-hover ${\r\n active ? \"text-primary\" : \"\"\r\n }`}\r\n onClick={() => document.getElementById(`force-${i}`)?.scrollIntoView()}\r\n >\r\n {i + 1}\r\n </button>\r\n <div className=\"text-center\">{i !== userUpdateValues.length - 1 && \"|\"}</div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction AdvancedCalculator() {\r\n const userUpdateValuesDefaultLists = [\r\n {\r\n title: \"Rivalry\",\r\n weight: 100,\r\n sections: [\r\n {\r\n title: \"Number of Competitors\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Top 4 competitors' total market share\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"40%\", \"40-50%\", \"50-60%\", \"60-70%\", \">70%\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Degree of Industry Standardization\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Percent of industry standardized\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"<2%\", \"2-5%\", \"5-10%\", \"10-15%\", \">15%\"],\r\n },\r\n {\r\n title: \"What percent of industry products are sold at discount\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"100%\", \"75%\", \"50%\", \"25%\", \"0%\"],\r\n },\r\n {\r\n title: \"Customer ability to recognize industry brands\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Buyer switching costs\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Industry Growth Rate\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Industry growth rate percentage\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"0%\", \"0-1%\", \"1-3%\", \"3-5%\", \">5%\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Industry Production Capacity\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Industry production capacity percentage\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"<70%\", \"70-80%\", \"80-90%\", \"90-100%\", \">100%\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Fixed Costs\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title:\r\n \"Degree to which firms have high fixed costs, high storage costs, or perishable products\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Exit Barriers\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Extent of exit barriers\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Power of Buyers\",\r\n weight: 100,\r\n sections: [\r\n {\r\n title: \"Buyer Industry Bargaining Power\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Buyer concentration\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">70%\", \"60-70%\", \"50-60%\", \"40-50%\", \"<40%\"],\r\n },\r\n {\r\n title: \"Buyer switching costs\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Demand\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"<0%\", \"0-1%\", \"1-3%\", \"3-5%\", \">5%\"],\r\n },\r\n {\r\n title: \"Buyer backward integration\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Buyer Industry Price Sensitivity\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Profitability of average buyer\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">70%\", \"60-70%\", \"50-60%\", \"40-50%\", \"<40%\"],\r\n },\r\n {\r\n title: \"Percent of incumbent products sold at discount\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Cost of incumbent's product as a percent of buyer's total costs\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"<0%\", \"0-1%\", \"1-3%\", \"3-5%\", \">5%\"],\r\n },\r\n {\r\n title: \"Number of high volume purchases\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Impact of incumbents product on buyer's product quality\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"<0%\", \"0-1%\", \"1-3%\", \"3-5%\", \">5%\"],\r\n },\r\n {\r\n title: \"Degree to which incumbent's product saves buyer money\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Medium\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Power of Suppliers\",\r\n weight: 100,\r\n sections: [\r\n {\r\n title: \"Number and Size of Suppliers\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Top 4 suppliers' total market share\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">70%\", \"60-70%\", \"50-60%\", \"40-50%\", \"<40%\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Difficulty of Switching Suppliers\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Percent of total costs supplied by supplier\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">30%\", \"20-30%\", \"10-20%\", \"5-10%\", \"<5%\"],\r\n },\r\n {\r\n title: \"Differences in price between suppliers\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">15%\", \"10-15%\", \"5-10%\", \"2-5%\", \"<2%\"],\r\n },\r\n {\r\n title: \"Importance of brands\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"High\", \"-\", \"Medium\", \"-\", \"Low\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Possibility of Supplier Forward Integration\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Forward integration\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"High\", \"-\", \"Medium\", \"-\", \"Low\"],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Threat of New Entrants\",\r\n weight: 100,\r\n sections: [\r\n {\r\n title: \"Incumbent Firm Cost Advantages\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Size of scale economies (slope of scale curve)\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">95%\", \"85-95%\", \"75-85%\", \"65-75%\", \"<65%\"],\r\n },\r\n {\r\n title: \"Size of investment in plant and equipment\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Small\", \"-\", \"Med\", \"-\", \"Large\"],\r\n },\r\n {\r\n title: \"Marketing and advertising expenditures\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Small\", \"-\", \"Med\", \"-\", \"Large\"],\r\n },\r\n {\r\n title: \"Market share protection\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Med\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Required market share to break even\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"<5%\", \"5-15%\", \"15-30%\", \"30-40%\", \">40%\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Other Incumbent Firm Advantages\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Strength of incumbent brands\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Weak\", \"-\", \"Neutral\", \"-\", \"Strong\"],\r\n },\r\n {\r\n title: \"Customer switching costs\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Med\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Network effect on buying decisions\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Med\", \"-\", \"High\"],\r\n },\r\n {\r\n title: \"Government regulation costs\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Low\", \"-\", \"Med\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Additional Considerations\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Average incumbent profitability\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">15%\", \"10-15%\", \"5-10%\", \"0-6%\", \"<0%\"],\r\n },\r\n {\r\n title: \"Industry growth rate\",\r\n value: 0,\r\n weight: 100,\r\n options: [\">5%\", \"3-5%\", \"1-3%\", \"0-1%\", \">0%\"],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Threat of Substitutes\",\r\n weight: 100,\r\n sections: [\r\n {\r\n title: \"Customer Awareness of Substitutes\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Ability to recognize brands from substitute industry\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"High\", \"-\", \"Med\", \"-\", \"Low\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Availability of Substitutes\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Availability of substitutes\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Better\", \"-\", \"Same\", \"-\", \"Worse\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Price of Substitutes\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Price of substitutes\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Lower\", \"-\", \"Same\", \"-\", \"Higher\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Performance of Substitutes\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Performance of substitutes\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Better\", \"-\", \"Same\", \"-\", \"Worse\"],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Customer Switching Costs\",\r\n weight: 100,\r\n questions: [\r\n {\r\n title: \"Customer switching costs\",\r\n value: 0,\r\n weight: 100,\r\n options: [\"Lower\", \"-\", \"Med\", \"-\", \"High\"],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n const [userUpdateValues, setUserUpdateValues] = useState(userUpdateValuesDefaultLists);\r\n const [presavedAnalytics, setPresavedAnalytics] = useState<TPresets[]>([]);\r\n\r\n const totalWeight = userUpdateValues.reduce((acc, currentForce) => acc + currentForce.weight, 0);\r\n\r\n const calculatedValues = userUpdateValues.map((force) => {\r\n let forceWeightPerc = force.weight / totalWeight;\r\n\r\n let forceSectionWeightTotal = force.sections.reduce(\r\n (acc, section) => (acc += section.weight),\r\n 0,\r\n );\r\n\r\n const forceScore = force.sections.reduce((acc, section) => {\r\n let sectionWeightPerc = section.weight / forceSectionWeightTotal;\r\n\r\n const sectionQuestionWeightTotal = section.questions.reduce(\r\n (acc, question) => (acc += question.weight),\r\n 0,\r\n );\r\n\r\n const sectionScore = section.questions.reduce(\r\n (acc, question) => (acc += question.value * (question.weight / sectionQuestionWeightTotal)),\r\n 0,\r\n );\r\n\r\n return (acc += sectionScore * sectionWeightPerc);\r\n }, 0);\r\n\r\n return { score: forceScore, weightPerc: forceWeightPerc * 100 };\r\n });\r\n\r\n async function GetSavedAnalytics() {\r\n if (!localStorage.getItem(\"token\")) {\r\n return;\r\n }\r\n\r\n const data = await GetP5F();\r\n\r\n if (data.status === \"success\") {\r\n setPresavedAnalytics(data.result);\r\n } else {\r\n setPresavedAnalytics([]);\r\n console.error(data);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n GetSavedAnalytics();\r\n }, []);\r\n\r\n return (\r\n <P5fContext.Provider\r\n value={{\r\n GetSavedAnalytics,\r\n presavedAnalytics,\r\n userUpdateValues,\r\n setUserUpdateValues,\r\n calculatedValues,\r\n }}\r\n >\r\n <div className=\"d-flex\">\r\n <div id=\"advanced-options\">\r\n <div className=\"px-2 pt-3\">\r\n <h3>Instructions</h3>\r\n <hr />\r\n <p>\r\n The Porter's Five Forces model weighs the relative influence of Rivalries, Buyers,\r\n Suppliers, New Entrants, and Substitutes. These forces are very broad and can be\r\n difficult to quantify. This advanced calculator breaks down each of those forces into\r\n simple subsections to help you better understand the forces at play in your industry.\r\n Set the values for each subsection and the calculator will calculate the overall\r\n industry attractiveness for you.\r\n </p>\r\n <p>\r\n You'll notice that this is a weighted calculator. This means that you can give more or\r\n less importance to each force depending on your industry. For example, in some\r\n industries, the threat of new entrants is a major concern, while in others, the power\r\n of buyers is the most important force. Use the sliders to adjust the weights of each\r\n section and force to better reflect your industry dynamics. Give more weight to the\r\n forces that are most important to your industry and give less to those that are less\r\n important.\r\n </p>\r\n <p className=\"fw-bold\">\r\n After you complete your industry analysis, don't forget to save it so you can come\r\n back to it later. Saved analyses are available in the \"Saved Analyses\" section below.\r\n </p>\r\n </div>\r\n <hr />\r\n <PresavedList />\r\n\r\n <CalculatorInput />\r\n <Summary calculatedValues={calculatedValues} />\r\n <AnalyticsSaver />\r\n </div>\r\n </div>\r\n </P5fContext.Provider>\r\n );\r\n}\r\n\r\nfunction SimpleInput({\r\n force,\r\n setForce,\r\n totalMainWeight,\r\n}: {\r\n force: {\r\n title: string;\r\n weight: number;\r\n value: number;\r\n };\r\n setForce: (values: { value: number; weight: number }) => void;\r\n totalMainWeight: number;\r\n}) {\r\n const percent = (force.weight / totalMainWeight) * 100;\r\n\r\n return (\r\n <div className=\"my-2\">\r\n <div className=\"d-flex justify-content-between px-3 pt-2\">\r\n <div className=\" text-body\">\r\n <h4>{force.title}</h4>\r\n <h6 className=\"mb-0\">Score: {Math.round(force.value * 100) / 100}</h6>\r\n </div>\r\n <div className=\" d-flex align-items-center justify-content-end\" style={{ minWidth: 170 }}>\r\n <div className=\"me-2\">Weight</div>\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n pattern=\"\\d*\"\r\n defaultValue={force.weight}\r\n min={0}\r\n max={99}\r\n className=\"form-control mx-0\"\r\n style={{ width: 60 }}\r\n onChange={(e: any) =>\r\n setForce({\r\n value: force.value,\r\n weight: parseFloat(e.target.value),\r\n })\r\n }\r\n />\r\n <div\r\n className=\" d-flex align-items-center justify-content-center text-center\"\r\n style={{ width: 50 }}\r\n >\r\n <small>{Math.round(percent * 100) / 100}%</small>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"d-flex my-2\">\r\n <div className=\"d-flex align-items-center w-100 fs-5\">\r\n <div className=\"mx-2\">1</div>\r\n <input\r\n type=\"range\"\r\n value={force.value}\r\n min={1}\r\n max={5}\r\n className=\"form-range mx-0\"\r\n onChange={(e: any) =>\r\n setForce({\r\n value: parseFloat(e.target.value),\r\n weight: force.weight,\r\n })\r\n }\r\n step=\"any\"\r\n />\r\n <div className=\"mx-2\">5</div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SimpleCalculator() {\r\n const defaultForces = [\r\n {\r\n title: \"Rivalry\",\r\n weight: 100,\r\n value: 3,\r\n },\r\n {\r\n title: \"Power of Buyers\",\r\n weight: 100,\r\n value: 3,\r\n },\r\n {\r\n title: \"Power of Suppliers\",\r\n weight: 100,\r\n value: 3,\r\n },\r\n {\r\n title: \"Threat of New Entrants\",\r\n weight: 100,\r\n value: 3,\r\n },\r\n {\r\n title: \"Threat of Substitutes\",\r\n weight: 100,\r\n value: 3,\r\n },\r\n ];\r\n\r\n const [forces, setForces] = useState(defaultForces);\r\n\r\n const totalWeight = forces.reduce((total, force) => {\r\n return total + force.weight;\r\n }, 0);\r\n\r\n const calculatedValues = forces.map((force) => {\r\n return {\r\n score: force.value,\r\n weightPerc: (force.weight / totalWeight) * 100,\r\n };\r\n });\r\n\r\n return (\r\n <div className=\"position-relative p-1 \">\r\n <div className=\"text-center mt-3 m-2 w-100\">\r\n <b>Instructions:</b> Set the values for each force and the calculator will calculate the\r\n overall industry attractiveness. 1 is low and 5 is high. Set respective weights for each\r\n force if your industry values one force over another.\r\n </div>\r\n <div id=\"final-input\">\r\n <table className=\"table table-striped\">\r\n <tbody>\r\n {forces.map((force, forceIndex) => {\r\n return (\r\n <tr key={force.title}>\r\n <td className=\"p-0\">\r\n <SimpleInput\r\n key={forceIndex}\r\n force={force}\r\n setForce={(values) => {\r\n let newForces = [...forces];\r\n newForces[forceIndex].value = values.value;\r\n newForces[forceIndex].weight = values.weight;\r\n setForces(newForces);\r\n }}\r\n totalMainWeight={totalWeight}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n <Summary calculatedValues={calculatedValues} />\r\n </div>\r\n\r\n <button\r\n className=\"btn btn-primary \"\r\n onClick={() => {\r\n setForces(defaultForces);\r\n }}\r\n >\r\n Reset All\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default function PortersFiveForcesCalculator() {\r\n const [advancedCalculator, setAdvancedCalculator] = useState(true);\r\n\r\n return (\r\n <div className=\"position-relative w-100 \">\r\n <div className=\"text-center display-3 my-4\">Porter's Five Forces Calculator</div>\r\n <p className=\"mx-2\">\r\n Visit the <Link to={Concepts.PortersFiveForces.url}>Porter's Five Forces</Link> page for\r\n more details about the tool's definition, use, and history.\r\n </p>\r\n <div className=\"m-2\">\r\n <button\r\n className=\"btn btn-primary w-100\"\r\n onClick={() => {\r\n setAdvancedCalculator((advancedCalculator) => !advancedCalculator);\r\n }}\r\n >\r\n <h5 className=\"mb-0\">\r\n {advancedCalculator ? \"Use Simple Calculator\" : \"Use Advanced Calculator\"}\r\n </h5>\r\n </button>\r\n </div>\r\n {advancedCalculator ? <AdvancedCalculator /> : <SimpleCalculator />}\r\n </div>\r\n );\r\n}\r\n","export default function StrategyCanvasCalculator() {\n return <div>StrategyCanvasCalculator</div>;\n}\n","export default function ThreeHorizonsCalculator() {\r\n return <div>ThreeHorizonsCalculator</div>;\r\n}\r\n","import { TUser } from \"@sharedTypes/res.type\";\r\nimport { createContext } from \"react\";\r\nexport type TLoginStatus = \"loading\" | \"invalid\" | \"logged in\";\r\n\r\ntype TUserContext = {\r\n loginStatus: TLoginStatus;\r\n user: TUser;\r\n setUser: React.Dispatch<React.SetStateAction<TUser>>;\r\n};\r\n\r\nconst UserContext = createContext<TUserContext>({\r\n loginStatus: \"loading\",\r\n user: {\r\n id: \"\",\r\n email: \"\",\r\n isAdmin: false,\r\n firstName: \"\",\r\n lastName: \"\",\r\n },\r\n setUser: () => {},\r\n});\r\n\r\nexport default UserContext;\r\n","export function H1({ children, ...props }: React.ComponentProps<\"h1\">) {\n return (\n <div className=\"w-p mx-auto\">\n <h3 {...props}>{children}</h3>\n <hr />\n </div>\n );\n}\n\nexport function H2({ children, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div className=\"w-p mx-auto\">\n <h4 {...props}>{children}</h4>\n </div>\n );\n}\n\nexport function H3({ children, ...props }: React.ComponentProps<\"h3\">) {\n return (\n <div className=\"w-p mx-auto\">\n <h5 {...props}>{children}</h5>\n <hr />\n </div>\n );\n}\n\nexport function H4({ children, ...props }: React.ComponentProps<\"h4\">) {\n return (\n <div className=\"w-p mx-auto\">\n <h6 {...props}>{children}</h6>\n <hr />\n </div>\n );\n}\n","import constants from \"Constants\";\r\n\r\nexport function Image({ src, alt }: { src: string; alt: string }) {\r\n return (\r\n <div className=\"d-flex mb-4 w-100 justify-content-center\">\r\n <img className=\"w-100\" src={src} alt={alt} style={{ maxWidth: constants.contentWidth }} />\r\n </div>\r\n );\r\n}\r\n","export function P({ children, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p className=\"w-p mx-auto\" {...props}>\n {children}\n </p>\n );\n}\n\nexport function Ol({ children, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol className=\"w-p mx-auto\" {...props}>\n {children}\n </ol>\n );\n}\n\nexport function Ul({ children, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul className=\"w-p mx-auto\" {...props}>\n {children}\n </ul>\n );\n}\n","import { Link } from \"react-router-dom\";\r\nimport { TConcept } from \"types/JsonType\";\r\n\r\nexport function RelatedFrameworks({\r\n concepts = [],\r\n unfinishedConcepts = [],\r\n}: {\r\n concepts?: TConcept[];\r\n unfinishedConcepts?: string[];\r\n}) {\r\n return (\r\n <div className=\"w-p mx-auto\">\r\n <h3>Related Frameworks</h3>\r\n <hr />\r\n <ul>\r\n {concepts.map((concept, index) => (\r\n <li key={index}>\r\n <Link to={concept.url}>{concept.name}</Link>\r\n </li>\r\n ))}\r\n {unfinishedConcepts.map((concept, index) => (\r\n <li key={index}>\r\n <Link to=\"#\">{concept}</Link>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n}\r\n","export function Updated({ date }: { date: string }) {\n return (\n <div className=\"w-p mx-auto\">\n <hr />\n <p>Updated {date}</p>\n </div>\n );\n}\n","import { useState } from \"react\";\r\nimport { TChatCompletionMessageParam } from \"@sharedTypes/req.type\";\r\nimport ChatBot from \"api/tools/chatBot/ChatBot\";\r\nimport Focuses from \"lib/data/Focuses\";\r\nimport Pathways from \"lib/data/Pathways\";\r\nimport Concepts from \"lib/data/Concepts\";\r\nimport Tools from \"lib/data/Tools\";\r\nimport { TChatBotRes, TErrorRes } from \"@sharedTypes/res.type\";\r\n\r\nexport default function useChatBot() {\r\n const localMessages = localStorage.getItem(\"chatMessages\");\r\n const defaultMessages = localMessages ? JSON.parse(localMessages) : aiTrainingMessages;\r\n const [messages, setMessages] = useState<TChatCompletionMessageParam[]>(defaultMessages);\r\n const [loading, setLoading] = useState(false);\r\n\r\n async function sendChat(chat: string): Promise<TChatBotRes> {\r\n const errorResTemplate: TErrorRes = {\r\n statusCode: 400,\r\n message: \"\",\r\n error: \"chatError\",\r\n log: \"\",\r\n content: \"\",\r\n };\r\n const newMessages: TChatCompletionMessageParam[] = [\r\n ...messages,\r\n { content: chat, role: \"user\", id: \"\" },\r\n ];\r\n if (!chat) {\r\n setMessages((messages) => [\r\n ...messages,\r\n { content: \"Please input a message\", role: \"assistant\", id: \"\" },\r\n ]);\r\n throw {\r\n ...errorResTemplate,\r\n message: \"Please input a message\",\r\n };\r\n }\r\n\r\n if (!localStorage.getItem(\"token\")) {\r\n setMessages([\r\n ...newMessages,\r\n {\r\n content: \"Please log in to use the AI assistant\",\r\n role: \"assistant\",\r\n id: \"\",\r\n },\r\n ]);\r\n throw {\r\n ...errorResTemplate,\r\n message: \"Please log in to use the AI assistant\",\r\n };\r\n }\r\n\r\n setMessages(newMessages);\r\n setLoading(true);\r\n let finalMessages: TChatCompletionMessageParam[] = [];\r\n const data = await ChatBot(newMessages)\r\n .then((data) => {\r\n finalMessages = data.messages;\r\n return data;\r\n })\r\n .catch((err) => {\r\n finalMessages = [...newMessages, { content: err.message, role: \"assistant\", id: \"\" }];\r\n console.error(err);\r\n return err;\r\n });\r\n setLoading(false);\r\n if (messages.length > 20) {\r\n finalMessages.splice(1, 2);\r\n }\r\n setMessages(finalMessages);\r\n localStorage.setItem(\"chatMessages\", JSON.stringify(finalMessages));\r\n\r\n return data;\r\n }\r\n\r\n function ClearMessages() {\r\n setMessages(aiTrainingMessages);\r\n localStorage.removeItem(\"chatMessages\");\r\n }\r\n\r\n return { messages, setMessages, loading, sendChat, ClearMessages };\r\n}\r\n\r\nconst aiTrainingMessages: TChatCompletionMessageParam[] = [\r\n {\r\n content: `you are a website assistant and search helper for a website called StrategyUnlocked.com. The purpose of the website is to teach students and professionals about the basics of business strategy. The website is target toward those that have some business knowledge, but it may be limited.\r\n\r\n The website has 2 distinct sections: the codex, and the strategy FOCUS section.\r\n\r\n The Codex is a graphical representation of the strategy framework that the website is based on. The codex is a circle of links, each link representing a different aspect of the strategy framework. The codex shows more specific content and tools than the tutorials in the focus section. Each focus provides a holistic view of business strategy, while the codex provides a more detailed view of the strategy frameworks and tools. Here is JSON formatted data that you can use to train the AI: ${JSON.stringify(\r\n Concepts,\r\n )}\r\n\r\n The strategy FOCUS section is a collection of resources that are organized by the type of strategy they are related to. The FOCUS section is also hierarchical. There is a parent page called 'FOCUS' that has information regarding all the sub-topics. The sub-topics are 'Foundation in Purpose', 'Operating Arena', 'Customer Unmet Need', 'Unified Buisiness Model', and 'Safeguards against Imitation'. Here is json formatted data that you can use to train the AI: ${JSON.stringify(\r\n Focuses,\r\n )}\r\n\r\n Each FOCUS has many pathways. Pathways are more specific toturials on different topics. Here is JSON formatted data that you can use to train the AI: ${JSON.stringify(\r\n Pathways,\r\n )}\r\n\r\n Independant from the other parts of the website, we have developed a few tools to help analyze business strategy. Here is the information for the tools: ${JSON.stringify(\r\n Tools,\r\n )}\r\n\r\n Your purpose is to help users navigate the website by pointing them to resources that would be useful, including links to resources in the website. Use relative paths for urls. Include only the provided path in the url. start the path with \"/\" as they are paths from the root. These links are resources will be provided to you in this prompt under the JSON attribute 'url' do not use \"filePath'. Whenever possible, provide links to resources within the website that would be helpful to the user. do not provide links that are not provided to you in this prompt.\r\n\r\n take all user questions in the context of business strategy.\r\n `,\r\n role: \"system\",\r\n id: \"\",\r\n },\r\n {\r\n content:\r\n \"Hi! I'm your Strategy Unlocked AI assistant, powered by ChatGPT. How can I help you today?\",\r\n role: \"assistant\",\r\n id: \"\",\r\n },\r\n];\r\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var resizeObservers = [];\nexport { resizeObservers };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import React from 'react';\nconst usePassiveLayoutEffect = React[typeof document !== 'undefined' && document.createElement !== void 0 ? 'useLayoutEffect' : 'useEffect'];\nexport default usePassiveLayoutEffect;","import * as React from 'react';\n\nconst useLatest = current => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\n\nexport default useLatest;","/* eslint-disable no-return-assign */\n\n/* eslint-disable no-underscore-dangle */\nimport { ResizeObserver as Polyfill } from '@juggle/resize-observer';\nimport useLayoutEffect from '@react-hook/passive-layout-effect';\nimport useLatest from '@react-hook/latest';\nconst ResizeObserver = typeof window !== 'undefined' && 'ResizeObserver' in window ? // @ts-ignore\nwindow.ResizeObserver : Polyfill;\n/**\n * A React hook that fires a callback whenever ResizeObserver detects a change to its size\n *\n * @param target A React ref created by `useRef()` or an HTML element\n * @param callback Invoked with a single `ResizeObserverEntry` any time\n * the `target` resizes\n */\n\nfunction _ref() {}\n\nfunction useResizeObserver(target, callback) {\n const resizeObserver = getResizeObserver();\n const storedCallback = useLatest(callback);\n useLayoutEffect(() => {\n let didUnsubscribe = false;\n const targetEl = target && 'current' in target ? target.current : target;\n if (!targetEl) return _ref;\n\n function cb(entry, observer) {\n if (didUnsubscribe) return;\n storedCallback.current(entry, observer);\n }\n\n resizeObserver.subscribe(targetEl, cb);\n return () => {\n didUnsubscribe = true;\n resizeObserver.unsubscribe(targetEl, cb);\n };\n }, [target, resizeObserver, storedCallback]);\n return resizeObserver.observer;\n}\n\nfunction createResizeObserver() {\n let ticking = false;\n let allEntries = [];\n const callbacks = new Map();\n const observer = new ResizeObserver((entries, obs) => {\n allEntries = allEntries.concat(entries);\n\n function _ref2() {\n const triggered = new Set();\n\n for (let i = 0; i < allEntries.length; i++) {\n if (triggered.has(allEntries[i].target)) continue;\n triggered.add(allEntries[i].target);\n const cbs = callbacks.get(allEntries[i].target);\n cbs === null || cbs === void 0 ? void 0 : cbs.forEach(cb => cb(allEntries[i], obs));\n }\n\n allEntries = [];\n ticking = false;\n }\n\n if (!ticking) {\n window.requestAnimationFrame(_ref2);\n }\n\n ticking = true;\n });\n return {\n observer,\n\n subscribe(target, callback) {\n var _callbacks$get;\n\n observer.observe(target);\n const cbs = (_callbacks$get = callbacks.get(target)) !== null && _callbacks$get !== void 0 ? _callbacks$get : [];\n cbs.push(callback);\n callbacks.set(target, cbs);\n },\n\n unsubscribe(target, callback) {\n var _callbacks$get2;\n\n const cbs = (_callbacks$get2 = callbacks.get(target)) !== null && _callbacks$get2 !== void 0 ? _callbacks$get2 : [];\n\n if (cbs.length === 1) {\n observer.unobserve(target);\n callbacks.delete(target);\n return;\n }\n\n const cbIndex = cbs.indexOf(callback);\n if (cbIndex !== -1) cbs.splice(cbIndex, 1);\n callbacks.set(target, cbs);\n }\n\n };\n}\n\nlet _resizeObserver;\n\nconst getResizeObserver = () => !_resizeObserver ? _resizeObserver = createResizeObserver() : _resizeObserver;\n\nexport default useResizeObserver;","import { MutableRefObject, useLayoutEffect, useRef, useState } from \"react\";\r\nimport useResizeObserver from \"@react-hook/resize-observer\";\r\n\r\ninterface TSize {\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport default function useElementSize<T extends HTMLElement = HTMLDivElement>(): [\r\n MutableRefObject<T | null>,\r\n TSize\r\n] {\r\n const target = useRef<T | null>(null);\r\n const [size, setSize] = useState<TSize>({\r\n width: 0,\r\n height: 0,\r\n });\r\n\r\n const setRoundedSize = ({ width, height }: TSize) => {\r\n setSize({ width: Math.round(width), height: Math.round(height) });\r\n };\r\n\r\n useLayoutEffect(() => {\r\n target.current && setRoundedSize(target.current.getBoundingClientRect());\r\n }, [target]);\r\n\r\n useResizeObserver(target, (entry) => {\r\n const { inlineSize: width, blockSize: height } = entry.contentBoxSize[0];\r\n setRoundedSize({ width, height });\r\n });\r\n\r\n return [target, size];\r\n}\r\n","import { TLoginStatus } from \"context/UserContext\";\r\nimport { ValidateToken } from \"api/auth/ValidateToken\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { TUser } from \"@sharedTypes/res.type\";\r\n\r\nexport default function useUser() {\r\n const [loginStatus, setLoginStatus] = useState<TLoginStatus>(\"loading\");\r\n const [sessionExpiration, setSessionExpiration] = useState(Infinity);\r\n const [user, setUser] = useState<TUser>({\r\n id: \"\",\r\n email: \"\",\r\n isAdmin: false,\r\n firstName: \"\",\r\n lastName: \"\",\r\n });\r\n\r\n useEffect(() => {\r\n const token = localStorage.getItem(\"token\");\r\n\r\n if (!token) {\r\n setLoginStatus(\"invalid\");\r\n return;\r\n }\r\n\r\n async function Token() {\r\n await ValidateToken()\r\n .then((data) => {\r\n console.log(data);\r\n localStorage.setItem(\"token\", data.token);\r\n setSessionExpiration(data.expires);\r\n setUser({ ...data.user });\r\n setLoginStatus(\"logged in\");\r\n })\r\n .catch((err) => {\r\n localStorage.removeItem(\"token\");\r\n setLoginStatus(\"invalid\");\r\n console.error(err);\r\n });\r\n }\r\n\r\n Token();\r\n }, []);\r\n\r\n return { loginStatus, sessionExpiration, user, setUser };\r\n}\r\n","import { useState, useEffect } from \"react\";\r\n\r\nconst useWindowSize = (ref?: HTMLElement) => {\r\n const [windowSize, setWindowSize] = useState({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n };\r\n const element = ref ? ref : window;\r\n\r\n element.addEventListener(\"resize\", handleResize);\r\n\r\n return () => {\r\n element.removeEventListener(\"resize\", handleResize);\r\n };\r\n }, [ref]);\r\n\r\n return windowSize;\r\n};\r\n\r\nexport default useWindowSize;\r\n","// package imports\r\nimport React from \"react\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport { createBrowserRouter, RouterProvider } from \"react-router-dom\";\r\nimport \"App.css\";\r\nimport \"Bootstrap.css\";\r\nimport \"./init/InitializeAxios\";\r\n\r\nimport App from \"App\";\r\nimport SearchPage from \"components/navigation/SearchPage\";\r\nimport Home from \"components/main_pages/Home\";\r\nimport Codex from \"components/main_pages/Codex\";\r\nimport FocusHome from \"components/main_pages/FocusHome\";\r\nimport Videos from \"components/main_pages/Videos\";\r\nimport PathwayRoot from \"components/pathways/PathwayRoot\";\r\nimport ConceptRoot from \"components/concepts/ConceptRoot\";\r\nimport Tools from \"components/tools/ToolsHome\";\r\nimport Team from \"components/main_pages/Team\";\r\nimport Login from \"components/auth/Login\";\r\nimport Register from \"components/auth/Register\";\r\nimport Payment from \"components/auth/Payment\";\r\nimport { AdminLogin, UserLogin } from \"components/auth/LoginWall\";\r\nimport Account from \"components/auth/Account\";\r\nimport Support from \"components/auth/Support\";\r\nimport ForgotPassword from \"components/auth/ForgotPassword\";\r\nimport EditAccount from \"components/auth/EditAccount\";\r\nimport FocusRoot from \"components/focuses/FocusRoot\";\r\nimport ErrorPage from \"components/main_pages/ErrorPage\";\r\nimport Dashboard, { Loader as DashboardLoader } from \"components/main_pages/Dashboard\";\r\nimport Map from \"components/focuses/maps/MainMap\";\r\nimport QrCode from \"components/main_pages/QrCode\";\r\nimport ToolsRoot from \"components/tools/ToolsRoot\";\r\nimport AnimationTest from \"components/main_pages/AnimationTest\";\r\nimport CommandmentsHome from \"components/main_pages/CommandmentsHome\";\r\nimport CommandmentRoot from \"components/commandments/CommandmentsRoot\";\r\n\r\nconst router = createBrowserRouter([\r\n {\r\n path: \"/\",\r\n element: <App />,\r\n errorElement: <ErrorPage />,\r\n children: [\r\n {\r\n path: \"/\",\r\n element: <Home />,\r\n errorElement: <ErrorPage />,\r\n },\r\n\r\n {\r\n path: \"/animationtest\",\r\n element: <AnimationTest />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/tools\",\r\n element: <Tools />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/login\",\r\n element: <Login />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/register\",\r\n element: <Register />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/forgotpassword\",\r\n element: <ForgotPassword />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/payment\",\r\n element: <Payment />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/codex\",\r\n element: <Codex />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/videos\",\r\n element: <Videos />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/FocusHome\",\r\n element: <FocusHome />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/commandments\",\r\n element: <CommandmentsHome />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/team\",\r\n element: <Team />,\r\n errorElement: <ErrorPage />,\r\n },\r\n\r\n {\r\n path: \"/map\",\r\n element: <Map />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/qr\",\r\n element: <QrCode />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/commandment/:commandmentId\",\r\n element: <CommandmentRoot />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/focus/:focusId\",\r\n element: <FocusRoot />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user\",\r\n element: <UserLogin />,\r\n errorElement: <ErrorPage />,\r\n children: [\r\n {\r\n path: \"/user/search\",\r\n element: <SearchPage />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/pathway/:pathwayId\",\r\n element: <PathwayRoot />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/concept/:categoryId/:conceptId/\",\r\n element: <ConceptRoot />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/concept/:categoryId/:conceptId/:pathwayId\",\r\n element: <ConceptRoot />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/tool/:toolId\",\r\n element: <ToolsRoot />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/account\",\r\n element: <Account />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/account/support\",\r\n element: <Support />,\r\n errorElement: <ErrorPage />,\r\n },\r\n {\r\n path: \"/user/account/editaccount\",\r\n element: <EditAccount />,\r\n errorElement: <ErrorPage />,\r\n },\r\n ],\r\n },\r\n {\r\n path: \"/admin\",\r\n element: <AdminLogin />,\r\n errorElement: <ErrorPage />,\r\n children: [\r\n {\r\n path: \"/admin/dashboard\",\r\n element: <Dashboard />,\r\n errorElement: <ErrorPage />,\r\n loader: DashboardLoader,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n]);\r\n\r\nReactDOM.createRoot(document.getElementById(\"root\") as HTMLElement).render(\r\n <React.StrictMode>\r\n <RouterProvider router={router} />\r\n </React.StrictMode>,\r\n);\r\n","import constants from \"Constants\";\nimport axios from \"axios\";\n\naxios.defaults.baseURL = constants.apiUrl;\naxios.defaults.headers.common[\"Authorization\"] = `Bearer ${localStorage.getItem(\"token\")}`;\n","export const animation = {\r\n v: \"5.9.0\",\r\n fr: 24,\r\n ip: 0,\r\n op: 239,\r\n w: 5760,\r\n h: 5760,\r\n nm: \"New Vector Zen\",\r\n ddd: 0,\r\n assets: [],\r\n layers: [\r\n {\r\n ddd: 0,\r\n ind: 1,\r\n ty: 3,\r\n nm: \"Mini Circle Control\",\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [2880, 2880, 0], ix: 2, l: 2 },\r\n a: { a: 0, k: [2880, 2880, 0], ix: 1, l: 2 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6, l: 2 },\r\n },\r\n ao: 0,\r\n ef: [\r\n {\r\n ty: 5,\r\n nm: \"Delay\",\r\n np: 3,\r\n mn: \"ADBE Slider Control\",\r\n ix: 1,\r\n en: 1,\r\n ef: [\r\n {\r\n ty: 0,\r\n nm: \"Slider\",\r\n mn: \"ADBE Slider Control-0001\",\r\n ix: 1,\r\n v: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.483], y: [0.815] }, o: { x: [0.004], y: [0.387] }, t: 3, s: [0] },\r\n { t: 57, s: [3] },\r\n ],\r\n ix: 1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n ty: 5,\r\n nm: \"Animation\",\r\n np: 3,\r\n mn: \"ADBE Slider Control\",\r\n ix: 2,\r\n en: 1,\r\n ef: [\r\n {\r\n ty: 0,\r\n nm: \"Slider\",\r\n mn: \"ADBE Slider Control-0001\",\r\n ix: 1,\r\n v: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.257], y: [1] }, o: { x: [0.291], y: [0.001] }, t: 0, s: [0] },\r\n { t: 24.0244140625, s: [100] },\r\n ],\r\n ix: 1,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n ip: 0,\r\n op: 719.91991991992,\r\n st: 0,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 2,\r\n ty: 1,\r\n nm: \"White Solid 2\",\r\n td: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [2880, 2880, 0], ix: 2, l: 2 },\r\n a: { a: 0, k: [2880, 2880, 0], ix: 1, l: 2 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6, l: 2 },\r\n },\r\n ao: 0,\r\n ef: [\r\n {\r\n ty: 5,\r\n nm: \"Fractal Noise\",\r\n np: 33,\r\n mn: \"ADBE Fractal Noise\",\r\n ix: 1,\r\n en: 1,\r\n ef: [\r\n {\r\n ty: 7,\r\n nm: \"Fractal Type\",\r\n mn: \"ADBE Fractal Noise-0001\",\r\n ix: 1,\r\n v: { a: 0, k: 1, ix: 1 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Noise Type\",\r\n mn: \"ADBE Fractal Noise-0002\",\r\n ix: 2,\r\n v: { a: 0, k: 3, ix: 2 },\r\n },\r\n { ty: 7, nm: \"Invert\", mn: \"ADBE Fractal Noise-0003\", ix: 3, v: { a: 0, k: 0, ix: 3 } },\r\n {\r\n ty: 0,\r\n nm: \"Contrast\",\r\n mn: \"ADBE Fractal Noise-0004\",\r\n ix: 4,\r\n v: { a: 0, k: 119, ix: 4 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Brightness\",\r\n mn: \"ADBE Fractal Noise-0005\",\r\n ix: 5,\r\n v: { a: 0, k: 48, ix: 5 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Overflow\",\r\n mn: \"ADBE Fractal Noise-0006\",\r\n ix: 6,\r\n v: { a: 0, k: 4, ix: 6 },\r\n },\r\n { ty: 6, nm: \"Transform\", mn: \"ADBE Fractal Noise-0007\", ix: 7, v: 0 },\r\n {\r\n ty: 0,\r\n nm: \"Rotation\",\r\n mn: \"ADBE Fractal Noise-0008\",\r\n ix: 8,\r\n v: { a: 0, k: 0, ix: 8 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Uniform Scaling\",\r\n mn: \"ADBE Fractal Noise-0009\",\r\n ix: 9,\r\n v: { a: 0, k: 1, ix: 9 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Scale\",\r\n mn: \"ADBE Fractal Noise-0010\",\r\n ix: 10,\r\n v: { a: 0, k: 100, ix: 10 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Scale Width\",\r\n mn: \"ADBE Fractal Noise-0011\",\r\n ix: 11,\r\n v: { a: 0, k: 100, ix: 11 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Scale Height\",\r\n mn: \"ADBE Fractal Noise-0012\",\r\n ix: 12,\r\n v: { a: 0, k: 100, ix: 12 },\r\n },\r\n {\r\n ty: 3,\r\n nm: \"Offset Turbulence\",\r\n mn: \"ADBE Fractal Noise-0013\",\r\n ix: 13,\r\n v: { a: 0, k: [2880, 2880], ix: 13 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Perspective Offset\",\r\n mn: \"ADBE Fractal Noise-0031\",\r\n ix: 14,\r\n v: { a: 0, k: 0, ix: 14 },\r\n },\r\n { ty: 6, nm: \"\", mn: \"ADBE Fractal Noise-0014\", ix: 15, v: 0 },\r\n {\r\n ty: 0,\r\n nm: \"Complexity\",\r\n mn: \"ADBE Fractal Noise-0015\",\r\n ix: 16,\r\n v: { a: 0, k: 6, ix: 16 },\r\n },\r\n { ty: 6, nm: \"Sub Settings\", mn: \"ADBE Fractal Noise-0016\", ix: 17, v: 0 },\r\n {\r\n ty: 0,\r\n nm: \"Sub Influence (%)\",\r\n mn: \"ADBE Fractal Noise-0017\",\r\n ix: 18,\r\n v: { a: 0, k: 70, ix: 18 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Sub Scaling\",\r\n mn: \"ADBE Fractal Noise-0018\",\r\n ix: 19,\r\n v: { a: 0, k: 56, ix: 19 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Sub Rotation\",\r\n mn: \"ADBE Fractal Noise-0019\",\r\n ix: 20,\r\n v: { a: 0, k: 0, ix: 20 },\r\n },\r\n {\r\n ty: 3,\r\n nm: \"Sub Offset\",\r\n mn: \"ADBE Fractal Noise-0020\",\r\n ix: 21,\r\n v: { a: 0, k: [0, 0], ix: 21 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Center Subscale\",\r\n mn: \"ADBE Fractal Noise-0021\",\r\n ix: 22,\r\n v: { a: 0, k: 0, ix: 22 },\r\n },\r\n { ty: 6, nm: \"\", mn: \"ADBE Fractal Noise-0022\", ix: 23, v: 0 },\r\n {\r\n ty: 0,\r\n nm: \"Evolution\",\r\n mn: \"ADBE Fractal Noise-0023\",\r\n ix: 24,\r\n v: {\r\n a: 0,\r\n k: 0,\r\n ix: 24,\r\n x: \"var $bm_rt;\\nposterizeTime(5);\\n$bm_rt = random(10000);\",\r\n },\r\n },\r\n { ty: 6, nm: \"Evolution Options\", mn: \"ADBE Fractal Noise-0024\", ix: 25, v: 0 },\r\n {\r\n ty: 7,\r\n nm: \"Cycle Evolution\",\r\n mn: \"ADBE Fractal Noise-0025\",\r\n ix: 26,\r\n v: { a: 0, k: 0, ix: 26 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Cycle (in Revolutions)\",\r\n mn: \"ADBE Fractal Noise-0026\",\r\n ix: 27,\r\n v: { a: 0, k: 1, ix: 27 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Random Seed\",\r\n mn: \"ADBE Fractal Noise-0027\",\r\n ix: 28,\r\n v: { a: 0, k: 0, ix: 28 },\r\n },\r\n { ty: 6, nm: \"Random Seed\", mn: \"ADBE Fractal Noise-0028\", ix: 29, v: 0 },\r\n {\r\n ty: 0,\r\n nm: \"Opacity\",\r\n mn: \"ADBE Fractal Noise-0029\",\r\n ix: 30,\r\n v: { a: 0, k: 100, ix: 30 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Blending Mode\",\r\n mn: \"ADBE Fractal Noise-0030\",\r\n ix: 31,\r\n v: { a: 0, k: 2, ix: 31 },\r\n },\r\n ],\r\n },\r\n ],\r\n sw: 5760,\r\n sh: 5760,\r\n sc: \"#ffffff\",\r\n ip: 0,\r\n op: 725,\r\n st: 0,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 3,\r\n ty: 4,\r\n nm: \"Layer 1 Outlines\",\r\n tt: 3,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [3032, 2683.999, 0], ix: 2, l: 2 },\r\n a: { a: 0, k: [2226.133, 2442.5, 0], ix: 1, l: 2 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6, l: 2 },\r\n },\r\n ao: 0,\r\n ef: [\r\n {\r\n ty: 5,\r\n nm: \"Turbulent Displace\",\r\n np: 16,\r\n mn: \"ADBE Turbulent Displace\",\r\n ix: 1,\r\n en: 1,\r\n ef: [\r\n {\r\n ty: 7,\r\n nm: \"Displacement\",\r\n mn: \"ADBE Turbulent Displace-0001\",\r\n ix: 1,\r\n v: { a: 0, k: 1, ix: 1 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Amount\",\r\n mn: \"ADBE Turbulent Displace-0002\",\r\n ix: 2,\r\n v: { a: 0, k: 35, ix: 2 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Size\",\r\n mn: \"ADBE Turbulent Displace-0003\",\r\n ix: 3,\r\n v: { a: 0, k: 4, ix: 3 },\r\n },\r\n {\r\n ty: 3,\r\n nm: \"Offset (Turbulence)\",\r\n mn: \"ADBE Turbulent Displace-0004\",\r\n ix: 4,\r\n v: { a: 0, k: [2880, 2880], ix: 4 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Complexity\",\r\n mn: \"ADBE Turbulent Displace-0005\",\r\n ix: 5,\r\n v: { a: 0, k: 1, ix: 5 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Evolution\",\r\n mn: \"ADBE Turbulent Displace-0006\",\r\n ix: 6,\r\n v: {\r\n a: 0,\r\n k: 0,\r\n ix: 6,\r\n x: \"var $bm_rt;\\nposterizeTime(4);\\n$bm_rt = random(10000);\",\r\n },\r\n },\r\n { ty: 6, nm: \"Evolution Options\", mn: \"ADBE Turbulent Displace-0007\", ix: 7, v: 0 },\r\n {\r\n ty: 7,\r\n nm: \"Cycle Evolution\",\r\n mn: \"ADBE Turbulent Displace-0008\",\r\n ix: 8,\r\n v: { a: 0, k: 0, ix: 8 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Cycle (in Revolutions)\",\r\n mn: \"ADBE Turbulent Displace-0009\",\r\n ix: 9,\r\n v: { a: 0, k: 1, ix: 9 },\r\n },\r\n {\r\n ty: 0,\r\n nm: \"Random Seed\",\r\n mn: \"ADBE Turbulent Displace-0010\",\r\n ix: 10,\r\n v: { a: 0, k: 0, ix: 10 },\r\n },\r\n { ty: 6, nm: \"Random Seed\", mn: \"ADBE Turbulent Displace-0011\", ix: 11, v: 0 },\r\n {\r\n ty: 7,\r\n nm: \"Pinning\",\r\n mn: \"ADBE Turbulent Displace-0012\",\r\n ix: 12,\r\n v: { a: 0, k: 3, ix: 12 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Resize Layer\",\r\n mn: \"ADBE Turbulent Displace-0013\",\r\n ix: 13,\r\n v: { a: 0, k: 0, ix: 13 },\r\n },\r\n {\r\n ty: 7,\r\n nm: \"Antialiasing for Best Quality\",\r\n mn: \"ADBE Turbulent Displace-0014\",\r\n ix: 14,\r\n v: { a: 0, k: 1, ix: 14 },\r\n },\r\n ],\r\n },\r\n ],\r\n shapes: [\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -1050.245],\r\n [1050.245, 0],\r\n [0, 1050.245],\r\n [-1050.246, 0],\r\n ],\r\n o: [\r\n [0, 1050.245],\r\n [-1050.246, 0],\r\n [0, -1050.245],\r\n [1050.245, 0],\r\n ],\r\n v: [\r\n [1901.637, 0],\r\n [0.001, 1901.637],\r\n [-1901.637, 0],\r\n [0.001, -1901.637],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.26], y: [1] }, o: { x: [0.333], y: [0] }, t: 86, s: [0] },\r\n { t: 106, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: -132, ix: 3 },\r\n m: 1,\r\n ix: 2,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 2441.217], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"Outer Circle\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n o: [\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n v: [\r\n [-1591.911, -919.091],\r\n [0, -1838.18],\r\n [1591.911, -919.091],\r\n [1591.911, 919.09],\r\n [0, 1838.18],\r\n [-1591.911, 919.09],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.335], y: [1] }, o: { x: [0.333], y: [0] }, t: 81, s: [0] },\r\n { t: 101, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: 137, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 2442.503], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"Outer Hexagon\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 2,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n o: [\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n v: [\r\n [-510.125, -294.521],\r\n [-510.125, 294.521],\r\n [0, 589.042],\r\n [510.125, 294.521],\r\n [510.125, -294.521],\r\n [0, -589.042],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.367], y: [1] }, o: { x: [0.333], y: [0] }, t: 71, s: [0] },\r\n { t: 91, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: -25, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 2442.502], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"Inner Hexagon\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 3,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.125);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 15, ix: 3 },\r\n m: 1,\r\n ix: 2,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 2442.5], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"1\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.25);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 82, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [1526.816, 2038.695], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"2\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 2,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.375);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 21, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [1526.816, 2846.251], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"3\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 3,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.5);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -40, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 3250.001], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"4\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 4,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.625);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -100, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2925.448, 2846.251], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"5\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 5,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.75);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -160, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2925.448, 2038.751], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"6\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 6,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(0.875);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -220, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 1635.001], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"7\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 7,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 445.97],\r\n [445.97, 0],\r\n [0, -445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, -445.97],\r\n [-445.97, 0],\r\n [0, 445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, -807.5],\r\n [-807.5, 0],\r\n [0, 807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 20, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [1526.818, 1231.251], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"8\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 8,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 445.97],\r\n [445.97, 0],\r\n [0, -445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, -445.97],\r\n [-445.97, 0],\r\n [0, 445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, -807.5],\r\n [-807.5, 0],\r\n [0, 807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.125);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 78, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [827.5, 2442.501], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"9\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 9,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 445.97],\r\n [445.97, 0],\r\n [0, -445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, -445.97],\r\n [-445.97, 0],\r\n [0, 445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, -807.5],\r\n [-807.5, 0],\r\n [0, 807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.25);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 139, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [1526.818, 3653.751], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"10\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 10,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 445.97],\r\n [445.97, 0],\r\n [0, -445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, -445.97],\r\n [-445.97, 0],\r\n [0, 445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, -807.5],\r\n [-807.5, 0],\r\n [0, 807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.375);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 200, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2925.448, 3653.75], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"11\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 11,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 445.97],\r\n [445.97, 0],\r\n [0, -445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, -445.97],\r\n [-445.97, 0],\r\n [0, 445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, -807.5],\r\n [-807.5, 0],\r\n [0, 807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.5);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 259, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [3624.764, 2442.5], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"12\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 12,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 445.97],\r\n [445.97, 0],\r\n [0, -445.97],\r\n [-445.969, 0],\r\n ],\r\n o: [\r\n [0, -445.97],\r\n [-445.969, 0],\r\n [0, 445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, -807.5],\r\n [-807.5, 0],\r\n [0, 807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.625);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 321, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2925.448, 1231.25], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"13\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 13,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.969, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.969, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.75);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 140, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [827.502, 1635.001], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"14\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 14,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(1.875);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 81, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [827.5, 3250.002], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"15\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 15,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(2);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: 20, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 4057.499], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"16\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 16,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.969, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.969, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(2.125);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -40, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [3624.766, 3249.999], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"17\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 17,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.969, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.969, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(2.25);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -101, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [3624.766, 1635], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"18\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 18,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"gr\",\r\n it: [\r\n {\r\n ind: 0,\r\n ty: \"sh\",\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, -445.97],\r\n [445.97, 0],\r\n [0, 445.97],\r\n [-445.97, 0],\r\n ],\r\n o: [\r\n [0, 445.97],\r\n [-445.97, 0],\r\n [0, -445.97],\r\n [445.97, 0],\r\n ],\r\n v: [\r\n [807.5, 0],\r\n [0, 807.5],\r\n [-807.5, 0],\r\n [0, -807.5],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: \"Path 1\",\r\n mn: \"ADBE Vector Shape - Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"st\",\r\n c: { a: 0, k: [0, 0, 0, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 50, ix: 5 },\r\n lc: 2,\r\n lj: 2,\r\n bm: 0,\r\n nm: \"Stroke 1\",\r\n mn: \"ADBE Vector Graphic - Stroke\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tm\",\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 0,\r\n k: 0,\r\n ix: 2,\r\n x: \"var $bm_rt;\\nvar delay;\\ndelay = thisComp.layer('Mini Circle Control').effect('Delay')('Slider').valueAtTime(2.375);\\n$bm_rt = thisComp.layer('Mini Circle Control').effect('Animation')('Slider').valueAtTime($bm_sub(time, delay));\",\r\n },\r\n o: { a: 0, k: -160, ix: 3 },\r\n m: 1,\r\n ix: 3,\r\n nm: \"Trim Paths 1\",\r\n mn: \"ADBE Vector Filter - Trim\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.132, 827.5], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"19\",\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 19,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n {\r\n ty: \"tr\",\r\n p: { a: 0, k: [2226.133, 2442.5], ix: 2 },\r\n a: { a: 0, k: [2226.133, 2442.5], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: \"Transform\",\r\n },\r\n ],\r\n nm: \"Mini Circles\",\r\n np: 19,\r\n cix: 2,\r\n bm: 0,\r\n ix: 4,\r\n mn: \"ADBE Vector Group\",\r\n hd: false,\r\n },\r\n ],\r\n ip: 0,\r\n op: 719.91991991992,\r\n st: 0,\r\n bm: 0,\r\n },\r\n ],\r\n markers: [],\r\n};\r\n","import { TCategories } from \"types/JsonType\";\r\n\r\nexport const Categories = {\r\n CorporateStrategy: { name: \"Corporate Strategy\" },\r\n Growth: { name: \"Growth\" },\r\n IndustryStructure: { name: \"Industry Structure\" },\r\n Innovation: { name: \"Innovation\" },\r\n InternationalStrategy: { name: \"International Strategy\" },\r\n Cost: { name: \"Cost\" },\r\n ProblemSolving: { name: \"Problem Solving\" },\r\n Investments: { name: \"Investments\" },\r\n Marketing: { name: \"Marketing\" },\r\n Leadership: { name: \"Leadership\" },\r\n Marketplaces: { name: \"Marketplaces\" },\r\n Acquisition: { name: \"Acquisition\" },\r\n Economics: { name: \"Economics\" },\r\n Entrepreneurship: { name: \"Entrepreneurship\" },\r\n MISC: { name: \"MISC\" },\r\n} as const satisfies TCategories;\r\n\r\nexport default Categories as TCategories;\r\n","import { TCategories, TConcept, TConcepts, TPathways, TFocuses } from \"types/JsonType\";\r\nimport Focuses from \"./Focuses\";\r\nimport Pathways from \"./Pathways\";\r\n\r\nexport type TConceptView = TConcept & {\r\n pathwayId?: string;\r\n color?: string;\r\n};\r\n\r\nexport type TCodexView = {\r\n id: string;\r\n name: string;\r\n concepts: TConceptView[];\r\n url?: string;\r\n focus?: string;\r\n color?: string;\r\n};\r\n\r\nexport function GetCodexCategories(Categories: TCategories, Concepts: TConcepts) {\r\n let CodexCategories: TCodexView[] = [];\r\n for (let categoryId in Categories) {\r\n const category = Categories[categoryId];\r\n CodexCategories.push({\r\n id: categoryId,\r\n name: category.name,\r\n concepts: [],\r\n });\r\n for (let conceptId in Concepts) {\r\n if (Concepts[conceptId].category === categoryId) {\r\n CodexCategories[CodexCategories.length - 1].concepts.push(Concepts[conceptId]);\r\n }\r\n\r\n CodexCategories[CodexCategories.length - 1].concepts.forEach((concept) => {\r\n Object.keys(Pathways).forEach((pathwayId) => {\r\n if (Pathways[pathwayId].concepts.includes(concept.id as any)) {\r\n concept.color = Focuses[Pathways[pathwayId].focus].color;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n CodexCategories = CodexCategories.filter((category) => category.concepts.length > 0);\r\n\r\n return CodexCategories;\r\n}\r\n\r\nexport function GetCodexPathways(Pathways: TPathways, Concepts: TConcepts) {\r\n let CodexPathways: TCodexView[] = [];\r\n for (let pathwayId in Pathways) {\r\n const pathway = Pathways[pathwayId];\r\n CodexPathways.push({\r\n id: pathwayId,\r\n name: pathway.name,\r\n url: pathway.url,\r\n focus: pathway.focus,\r\n color: Focuses[pathway.focus].color,\r\n concepts: [],\r\n });\r\n for (let i = 0; i < pathway.concepts.length; i++) {\r\n const conceptId = pathway.concepts[i];\r\n if (Concepts[conceptId]) {\r\n CodexPathways[CodexPathways.length - 1].concepts.push(Concepts[conceptId]);\r\n }\r\n CodexPathways[CodexPathways.length - 1].concepts.forEach((concept) => {\r\n concept.pathwayId = pathwayId;\r\n });\r\n }\r\n }\r\n CodexPathways = CodexPathways.filter((pathway) => pathway.concepts.length > 0);\r\n return CodexPathways;\r\n}\r\n\r\nexport function GetCodexFocuses(Focuses: TFocuses, Pathways: TPathways, Concepts: TConcepts) {\r\n let CodexFocuses: TCodexView[] = [];\r\n Object.values(Focuses).forEach((focus) => {\r\n CodexFocuses.push({\r\n id: focus.id,\r\n name: `${focus.letter} - ${focus.name}`,\r\n url: focus.url,\r\n color: focus.color,\r\n concepts: [],\r\n });\r\n const CodexPathways = GetCodexPathways(Pathways, Concepts);\r\n for (let i = 0; i < CodexPathways.length; i++) {\r\n const pathway = CodexPathways[i];\r\n if (pathway.focus === focus.id) {\r\n CodexFocuses[CodexFocuses.length - 1].concepts.push(...pathway.concepts);\r\n }\r\n CodexPathways[CodexPathways.length - 1].concepts.forEach((concept) => {\r\n concept.pathwayId = pathway.id;\r\n });\r\n }\r\n });\r\n\r\n CodexFocuses = CodexFocuses.filter((focus) => focus.concepts.length > 0);\r\n\r\n return CodexFocuses;\r\n}\r\n","import { TCommandments } from \"types/JsonType\";\n\nexport const Commandments = {\n NorthStar: {\n id: \"NorthStar\",\n name: \"Commandment #1 – Thou Shalt Follow Your North Star\",\n subTitle: \"…to align purpose, direction, and action.\",\n url: \"/commandment/NorthStar\",\n filePath: \"components/commandments/pages/1-NorthStar\",\n summary:\n 'Your mission, vision, and values are the guiding principles—or \"North Star\"—at the core of your strategy, shaping both long-term goals and everyday decisions. Mission answers the question, “Why do we exist?” and provides a sense of purpose. Vision articulates, “Where are we headed?” and offers direction and ambition. Values define, “How do we act?” and set the tone for decision-making and behavior. Together, they ensure that the organization stays aligned, resilient, and consistent in its actions. A strong North Star helps businesses navigate short-term complexities while maintaining focus on long-term objectives.',\n type: \"Commandment\",\n num: 1,\n },\n ReallyMatter: {\n id: \"ReallyMatter\",\n name: \"Commandment #2 – Thou Shalt REALLY MATTER by Providing Unique Value\",\n subTitle: \"…and be irreplaceable in the eyes of your customers.\",\n url: \"/commandment/ReallyMatter\",\n filePath: \"components/commandments/pages/2-ReallyMatter\",\n summary:\n \"If your company disappeared tomorrow and no one noticed, you’re failing to deliver unique value. To truly matter, you need a unique value proposition: a compelling reason for customers to choose your business over alternatives. This could be achieved through offering the lowest cost (cost leadership), superior quality or features (differentiation), or innovation that redefines the market (disruption). Center your strategy around what makes your business different—whether it’s a key resource, technology, brand, or process—and build relentlessly on those strengths. A strong focus on your unique advantages not only reinforces your competitive position but also ensures your strategy guides decisions at every level of the organization. Companies that truly matter don’t just compete; they solve real problems, inspire loyalty, and stand apart in their market.\",\n type: \"Commandment\",\n num: 2,\n },\n CompeteWin: {\n id: \"CompeteWin\",\n name: \"Commandment #3 – Thou Shalt Compete Where You Can Win\",\n subTitle: \"…because great managers usually don’t overcome bad fundamentals.\",\n url: \"/commandment/CompeteWin\",\n filePath: \"components/commandments/pages/3-CompeteWin\",\n summary:\n \"Success comes from choosing the right battlefield. Compete where you can leverage your strengths to create the most value. Identify the areas where your company has a competitive advantage, whether that’s superior technology, cost structure, customer insights, or distribution channels. Attempting to compete in markets or segments where you’re outmatched can quickly deplete resources and reduce profitability. By focusing on where you can win, you not only maximize returns but also build the foundation for long-term success. Strategic focus helps you stay nimble, resilient, and capable of adapting as competitive forces and market dynamics evolve.\",\n type: \"Commandment\",\n num: 3,\n },\n Moat: {\n id: \"Moat\",\n name: \"Commandment #4 – Thou Shalt Build and Defend Strategic Moats\",\n subTitle: \"…because imitation is the greatest flattery.\",\n url: \"/commandment/Moat\",\n filePath: \"components/commandments/pages/4-Moat\",\n summary:\n \"A strategic moat is the unique advantage that protects your business from competitors. It’s the barrier that keeps rivals at bay and allows you to maintain long-term profitability. Whether through network effects, intellectual property (IP), brand loyalty, economies of scale, or high switching costs, a strong moat keeps your business safe from competitive threats. Building a moat is not just about gaining an advantage; it’s about maintaining and defending it relentlessly. Over time, a business must continuously invest in strengthening and expanding its moat, whether through innovation, customer engagement, or scaling its operations. Without a moat, your competitive position is vulnerable to erosion, and even the most successful strategies can falter.\",\n type: \"Commandment\",\n num: 4,\n },\n Capabilities: {\n id: \"Capabilities\",\n name: \"Commandment #5 – Thou Shalt Align Strategy with Capabilities\",\n subTitle: \"…because this is what you are capable of actually doing.\",\n url: \"/commandment/Capabilities\",\n filePath: \"components/commandments/pages/5-Capabilities\",\n summary:\n \"A strategy is only as good as the organization’s ability to execute it. No matter how bold your strategic ambitions, they need to align with your company’s capabilities, resources, and culture. If you pursue a strategy that your organization cannot deliver—whether due to lack of expertise, insufficient resources, or cultural misalignment—you risk failure. The key to success lies in optimizing your strategy around what your organization does best. Focus on your unique strengths—whether in technology, talent, or processes—and use these as the foundation for your strategic goals. Where gaps exist, look for ways to either build the necessary capabilities internally or partner with others to fill them. This approach ensures your strategy is grounded in your company’s core strengths, making it both achievable and sustainable over time.\",\n type: \"Commandment\",\n num: 5,\n },\n Expand: {\n id: \"Expand\",\n name: \"Commandment #6 – Thou Shalt Expand Only When It Creates Value\",\n subTitle: \"…because unfocused growth can undermine your edge.\",\n url: \"/commandment/Expand\",\n filePath: \"components/commandments/pages/6-Expand\",\n summary:\n \"Growth is often seen as the ultimate sign of success, but not all growth is beneficial. Expanding your business should not be about growth for growth’s sake. Instead, any expansion—whether through diversification, mergers, or acquisitions—should be evaluated based on the value it adds to the business. Use frameworks like the “better-off test” and the “ownership test” to guide your decision-making. The “better-off test” asks whether expansion will improve your ability to compete in the market. The “ownership test” evaluates whether you are better off owning or partnering with another entity. The key is to ensure that any move aligns with your core strategy and enhances your competitive position. Expanding just for the sake of growth—including overpaying for acquisitions or entering unrelated markets without clear synergies—can dilute your resources and distract from your core business, so make sure growth adds real, long-term value to your company.\",\n type: \"Commandment\",\n num: 6,\n },\n GainsAndGoals: {\n id: \"GainsAndGoals\",\n name: \"Commandment #7 – Thou Shalt Balance Short-Term Gains with Long-Term Goals\",\n subTitle: \"…because fighting fires can be all-consuming.\",\n url: \"/commandment/GainsAndGoals\",\n filePath: \"components/commandments/pages/7-GainsAndGoals\",\n summary:\n \"While short-term financial performance is important, businesses should never sacrifice long-term value creation just to meet quarterly goals or annual targets. Strategic decisions should always balance the immediate financial outcomes with investments that ensure sustainable growth, innovation, and resilience. Short-term gains can be tempting, but they should never come at the expense of the business’s future position or market leadership. By focusing too much on immediate results, businesses risk undermining the very foundation on which they rely for future success. Strive to align short-term goals with a longer-term vision that ensures ongoing innovation, talent development, and operational efficiency.\",\n type: \"Commandment\",\n num: 7,\n },\n Innovate: {\n id: \"Innovate\",\n name: \"Commandment #8 – Thou Shalt Adapt, Learn, and Innovate\",\n subTitle: \"…because competitors you have never heard of are coming for you.\",\n url: \"/commandment/Innovate\",\n filePath: \"components/commandments/pages/8-Innovate\",\n summary:\n \"Stay ahead by continuously learning and adapting. Markets, technologies, and customer expectations evolve quickly, and what works today might fail tomorrow. Innovation isn't just about new products—it's about rethinking how you deliver value and how you operate. Build a culture of experimentation where failure is seen as part of the process. Adapt quickly, disrupt yourself before others do, and always be ready to pivot. Embrace change, encourage creativity, and look for new ways to solve problems. Staying flexible and innovative is essential for long-term success and staying competitive in a fast-changing world.\",\n type: \"Commandment\",\n num: 8,\n },\n Levels: {\n id: \"Levels\",\n name: \"Commandment #9 – Thou Shalt Relentlessly Implement Strategy Across Levels\",\n subTitle: \"…because execution turns vision into victory.\",\n url: \"/commandment/Levels\",\n filePath: \"components/commandments/pages/9-Levels\",\n summary:\n \"A strategy is only as effective as its execution. Ensure alignment across all levels of the organization, from leadership to front-line employees, by setting clear, actionable objectives and defining measurable outcomes. Mobilize resources, streamline communication, and eliminate barriers to progress. The real test of strategy lies in its ability to guide decisions and actions consistently, bridging vision and day-to-day realities.\",\n type: \"Commandment\",\n num: 9,\n },\n Lead: {\n id: \"Lead\",\n name: \"Commandment #10 – Thou Shalt Lead Strategically\",\n subTitle: \"…because that is what everyone needs.\",\n url: \"/commandment/Lead\",\n filePath: \"components/commandments/pages/10-Lead\",\n summary:\n \"Be a visionary leader. Set the strategic direction with clarity and purpose, empowering your team to carry out that vision. A strategic leader makes bold, long-term decisions that shape the future of the company but remains flexible enough to adapt when necessary. Lead by example—your strategic thinking should be reflected in both your daily actions and big decisions. Inspire your team to align with the vision, ensuring everyone understands their role in the company’s success. Foster accountability at all levels, ensuring that every decision supports the broader strategic objectives. True strategic leadership guides the organization toward sustainable success, balancing immediate goals with long-term growth.\",\n type: \"Commandment\",\n num: 10,\n },\n} satisfies TCommandments;\n\nexport default Commandments as TCommandments;\n","import { TConcepts } from \"types/JsonType\";\r\n\r\nexport const Concepts = {\r\n Differentiation: {\r\n url: \"/user/concept/Growth/Differentiation\",\r\n filePath: \"components/concepts/pages/Differentiation\",\r\n id: \"Differentiation\",\r\n name: \"Differentiation\",\r\n category: \"Growth\",\r\n summary:\r\n \"Differentiation is a business strategy that focuses on creating unique features or benefits in a product or service to stand out from competitors and attract customers.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n AdjacentMarketExpansion: {\r\n url: \"/user/concept/Growth/AdjacentMarketExpansion\",\r\n filePath: \"components/concepts/pages/AdjacentMarketExpansion\",\r\n id: \"AdjacentMarketExpansion\",\r\n name: \"Adjacent Market Expansion\",\r\n category: \"Growth\",\r\n summary:\r\n \"Adjacent Market Expansion is a business strategy that involves entering new markets related to a company's existing products or services, leveraging existing capabilities to drive growth and capitalize on market opportunities.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n BlueOcean: {\r\n url: \"/user/concept/Innovation/BlueOcean\",\r\n filePath: \"components/concepts/pages/BlueOcean\",\r\n id: \"BlueOcean\",\r\n name: \"Blue Ocean Strategy\",\r\n category: \"Innovation\",\r\n summary:\r\n \"Blue Ocean Strategy is a business theory that focuses on creating uncontested market space by developing innovative products or services that appeal to new customers and avoid direct competition in existing markets.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n Cage: {\r\n url: \"/user/concept/Growth/Cage\",\r\n filePath: \"components/concepts/pages/Cage\",\r\n id: \"Cage\",\r\n name: \"CAGE\",\r\n category: \"Growth\",\r\n summary:\r\n \"CAGE is a business strategy framework used to analyze the differences between countries, considering cultural, administrative, geographic, and economic factors, to identify opportunities and challenges in international expansion.\",\r\n essential: false,\r\n type: \"Concept\",\r\n },\r\n ConsumptionChain: {\r\n url: \"/user/concept/Innovation/ConsumptionChain\",\r\n filePath: \"components/concepts/pages/ConsumptionChain\",\r\n id: \"ConsumptionChain\",\r\n name: \"Consumption Chain\",\r\n category: \"Innovation\",\r\n summary:\r\n \"The consumption chain in business strategy refers to the series of steps a customer goes through from product awareness to purchase and use. Understanding this helps businesses plan their marketing and sales tactics effectively.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n EntryModes: {\r\n url: \"/user/concept/Entrepreneurship/EntryModes\",\r\n filePath: \"components/concepts/pages/EntryModes\",\r\n id: \"EntryModes\",\r\n name: \"Entry Modes\",\r\n category: \"Entrepreneurship\",\r\n summary:\r\n \"Entry modes in business strategy refer to the ways a company enters a new market, such as exporting, licensing, franchising, joint ventures, or wholly-owned subsidiaries, each with its own advantages and risks.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n ExperienceCurve: {\r\n url: \"/user/concept/Cost/ExperienceCurve\",\r\n filePath: \"components/concepts/pages/ExperienceCurve\",\r\n id: \"ExperienceCurve\",\r\n name: \"Experience Curve\",\r\n category: \"Cost\",\r\n summary:\r\n \"The Experience Curve is a business strategy concept that suggests costs decrease as a company gains experience in production, sales, and operations, leading to improved efficiency, profitability, and competitive advantage.\",\r\n essential: false,\r\n type: \"Concept\",\r\n },\r\n IndirectAssault: {\r\n url: \"/user/concept/Entrepreneurship/IndirectAssault\",\r\n filePath: \"components/concepts/pages/IndirectAssault\",\r\n id: \"IndirectAssault\",\r\n name: \"Indirect Assault\",\r\n category: \"Entrepreneurship\",\r\n summary:\r\n \"Indirect assault in business strategy refers to subtly undermining a competitor by targeting their weaknesses or market gaps, rather than directly challenging their strengths. It is typically done through innovation, differentiators, or niche marketing.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n InternationalStrategy: {\r\n url: \"/user/concept/InternationalStrategy/InternationalStrategy\",\r\n filePath: \"components/concepts/pages/InternationalStrategy\",\r\n id: \"InternationalStrategy\",\r\n name: \"International Strategy\",\r\n category: \"InternationalStrategy\",\r\n summary:\r\n \"International Strategy is a business plan that guides a company's expansion into global markets, considering factors like market entry modes, cultural differences, regulatory environments, and competitive landscapes.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n JobsToBeDoneConcept: {\r\n url: \"/user/concept/Innovation/JobsToBeDoneConcept\",\r\n filePath: \"components/concepts/pages/JobsToBeDoneConcept\",\r\n id: \"JobsToBeDoneConcept\",\r\n name: \"Jobs to be Done\",\r\n category: \"Innovation\",\r\n summary:\r\n \"The Jobs to be Done framework offers a lens through which businesses can understand the core needs or tasks that customers are trying to accomplish with their product or service, leading to customer-centric innovation and strategic decisions.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n PortersGenericStrategies: {\r\n url: \"/user/concept/IndustryStructure/PortersGenericStrategies\",\r\n filePath: \"components/concepts/pages/PortersGenericStrategies\",\r\n id: \"PortersGenericStrategies\",\r\n name: \"Porter's Generic Strategies\",\r\n category: \"IndustryStructure\",\r\n summary:\r\n \"Porter's Generic Strategies are four fundamental approaches to achieving competitive advantage in an industry: cost leadership, differentiation, focus, and horizontal integration.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n PortersFiveForces: {\r\n url: \"/user/concept/IndustryStructure/PortersFiveForces\",\r\n filePath: \"components/concepts/pages/PortersFiveForces\",\r\n id: \"PortersFiveForces\",\r\n name: \"Porter's Five Forces\",\r\n category: \"IndustryStructure\",\r\n summary:\r\n '\"Porter\\'s Five Forces\" is a strategic business tool that analyzes competitive environment by examining five forces: supplier power, buyer power, the threat of new entrants, substitute products, and intra-industry competition.',\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n ScaleCurve: {\r\n url: \"/user/concept/Cost/ScaleCurve\",\r\n filePath: \"components/concepts/pages/ScaleCurve\",\r\n id: \"ScaleCurve\",\r\n name: \"Scale Curve\",\r\n category: \"Cost\",\r\n summary:\r\n \"The Scale Curve strategy in business pertains to the concept that with increased production scale and accumulated experience, costs per unit consistently decrease, thereby improving profitability and offering competitive advantage.\",\r\n essential: false,\r\n type: \"Concept\",\r\n },\r\n StrategyCanvas: {\r\n url: \"/user/concept/IndustryStructure/StrategyCanvas\",\r\n filePath: \"components/concepts/pages/StrategyCanvas\",\r\n id: \"StrategyCanvas\",\r\n name: \"Strategy Canvas\",\r\n category: \"IndustryStructure\",\r\n summary:\r\n \"The Strategy Canvas is a tool in strategic management & marketing, used to visualize a company's competitive position in relation to its rivals, highlighting factors that affect competition and potential areas for innovation.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n SunkCostFallacy: {\r\n url: \"/user/concept/Investments/SunkCostFallacy\",\r\n filePath: \"components/concepts/pages/SunkCostFallacy\",\r\n id: \"SunkCostFallacy\",\r\n name: \"Sunk Cost Fallacy\",\r\n category: \"Investments\",\r\n summary:\r\n \"The Sunk Cost Fallacy in business strategy refers to the justification of increased investment in a project due to the considerable resources already spent, rather than considering its future viability and potential return on investment.\",\r\n essential: false,\r\n type: \"Concept\",\r\n },\r\n ThreeHorizons: {\r\n url: \"/user/concept/Growth/ThreeHorizons\",\r\n filePath: \"components/concepts/pages/ThreeHorizons\",\r\n id: \"ThreeHorizons\",\r\n name: \"Three Horizons Framework\",\r\n category: \"Growth\",\r\n summary:\r\n \"The Three Horizons Framework is a strategic model that helps businesses plan for future growth by visualizing their short-term, medium-term, and long-term goals across the three 'horizons' of growth, innovation and transformation.\",\r\n essential: true,\r\n type: \"Concept\",\r\n },\r\n TripleA: {\r\n url: \"/user/concept/InternationalStrategy/TripleA\",\r\n filePath: \"components/concepts/pages/TripleA\",\r\n id: \"TripleA\",\r\n name: \"The AAA Triangle\",\r\n category: \"InternationalStrategy\",\r\n summary:\r\n \"The AAA Triangle is a business strategy model that emphasizes three elements: agility, adaptation, and alignment. It guides firms to quickly respond to market changes, adapt to different environments, and align operations with strategy.\",\r\n essential: false,\r\n type: \"Concept\",\r\n },\r\n} as const satisfies TConcepts;\r\n\r\nexport default Concepts as TConcepts;\r\n","import { TFocuses } from \"types/JsonType\";\r\n\r\nexport const Focuses = {\r\n FoundationInPurpose: {\r\n url: \"/focus/FoundationInPurpose\",\r\n filePath: \"components/focuses/pages/FoundationInPurpose\",\r\n id: \"FoundationInPurpose\",\r\n name: \"Foundation in Purpose\",\r\n question: \"Why you are in business\",\r\n color: \"#00FF0020\",\r\n num: 1,\r\n letter: \"F\",\r\n summary:\r\n \"Your company's purpose is more than just a tagline—it's the driving force behind resilience, value creation, and meaningful impact. Authentic purpose attracts loyal customers, engaged employees, and supportive investors. Today, where employees seek meaning and consumers align with purpose-driven brands, its importance is paramount. Studies show that employees connected to their organization's purpose report higher resilience, better health, and increased engagement. Join us on this pathway to define and integrate purpose effectively, driving culture, performance, and success. What you will do and what will you not do.\",\r\n imgSrc: require(\"lib/img/focuses/FoundationInPurpose.jpg\"),\r\n type: \"Focus\",\r\n },\r\n OperatingArena: {\r\n url: \"/focus/OperatingArena\",\r\n filePath: \"components/focuses/pages/OperatingArena\",\r\n id: \"OperatingArena\",\r\n name: \"Operating Arena\",\r\n question: \"Who is your target audience\",\r\n color: \"#00FFFF20\",\r\n num: 2,\r\n letter: \"O\",\r\n summary:\r\n \"Your company's Operating Arena defines where and how you compete, focusing on identifying the most effective areas within the industry where your business can excel. This strategic analysis requires understanding of industry trends, competitive dynamics, and customer needs. By pinpointing where your unique capabilities align with market opportunities, you can position your business for sustainable success. The Operating Arena is essential for navigating market complexities and seizing competitive advantages. Embrace this pathway to strategically locate your business in the marketplace, ensuring you leverage strengths while avoiding overextended commitments. What will your strategic focus be, and what opportunities will you forgo?\",\r\n imgSrc: require(\"lib/img/focuses/OperatingArena.jpg\"),\r\n type: \"Focus\",\r\n },\r\n CustomerUnmetNeeds: {\r\n url: \"/focus/CustomerUnmetNeeds\",\r\n filePath: \"components/focuses/pages/CustomerUnmetNeeds\",\r\n id: \"CustomerUnmetNeeds\",\r\n name: \"Customer Unmet Needs\",\r\n question: \"How to offer something no one else does\",\r\n color: \"#FF00FF20\",\r\n num: 3,\r\n letter: \"C\",\r\n summary:\r\n \"Every customer has needs (and wants) that must be met. Of all the needs your customers have, which ones are currently unaddressed or only poorly addressed? Businesses will stand out from the competition if they can understand what their customers are still trying to accomplish, what about existing solutions frustrates customers, and how they can offer unique solutions to both better meet these needs and reduce or eliminate the elements that frustrate customers.\",\r\n imgSrc: require(\"lib/img/focuses/CustomerUnmetNeeds.jpg\"),\r\n type: \"Focus\",\r\n },\r\n UnifiedBusinessModel: {\r\n url: \"/focus/UnifiedBusinessModel\",\r\n filePath: \"components/focuses/pages/UnifiedBusinessModel\",\r\n id: \"UnifiedBusinessModel\",\r\n name: \"Unified Business Model\",\r\n question: \"How to deliver value to customers\",\r\n color: \"#FFFF0020\",\r\n num: 4,\r\n letter: \"U\",\r\n summary:\r\n \"Once the customers have been identified and the unique value proposition has been developed, it's time to look internally at how your business operates. How do the day-to-day operating activities support your targeted strategy? This includes key activities, key resources, and other factors across the organization that allow you to deliver value to customers. By developing these daily activities in alignment with your intended strategy, you can determine what activities need to be done and, more importantly, what should not be done.\",\r\n imgSrc: require(\"lib/img/focuses/UnifiedBusinessModel.jpg\"),\r\n type: \"Focus\",\r\n },\r\n SafeguardsAgainstImitation: {\r\n url: \"/focus/SafeguardsAgainstImitation\",\r\n filePath: \"components/focuses/pages/SafeguardsAgainstImitation\",\r\n id: \"SafeguardsAgainstImitation\",\r\n name: \"Safeguards Against Imitation\",\r\n question: \"How to prevent imitation\",\r\n color: \"#FF000020\",\r\n num: 5,\r\n letter: \"S\",\r\n summary:\r\n \"In speaking to venture capitalists, they will readily admit (whether its true or not) that they have heard every new business idea 10 or more times. Unfortunately, its not enough to have a great idea. Because of the capitalist market, competitors will see your good idea and try to copy it and monopolize on it. Safeguards describe the protective barriers to these changes and attacks to ensure youir company stays relevant and sales remain strong. If not, there is a bigger fish with more resources can come and take it all away.\",\r\n imgSrc: require(\"lib/img/focuses/SafeguardsAgainstImitation.jpg\"),\r\n type: \"Focus\",\r\n },\r\n} as const satisfies TFocuses;\r\n\r\nexport default Focuses as TFocuses;\r\n","import { TPathways } from \"types/JsonType\";\r\n\r\nexport const Pathways = {\r\n DefineMissionPathway: {\r\n url: \"/user/pathway/DefineMissionPathway\",\r\n id: \"DefineMissionPathway\",\r\n question: \"What is my company's purpose?\",\r\n focus: \"FoundationInPurpose\",\r\n name: \"Define Mission\",\r\n imgSrc: require(\"lib/img/pathways/DefineMissionPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/FoundationInPurpose/DefineMissionPathway\",\r\n summary:\r\n \"The mission of a company defines what the purpose of the company is, or why the company exists. Each Mission has a strategic element and a motivation element. Not only does the mission send a message to those outside the company, it also sends a message to those inside the company, and the mission's effect on both must be considered.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n DefineVisionPathway: {\r\n url: \"/user/pathway/DefineVisionPathway\",\r\n id: \"DefineVisionPathway\",\r\n question: \"What is my company's mission, vision, and values?\",\r\n focus: \"FoundationInPurpose\",\r\n name: \"Define Vision\",\r\n imgSrc: require(\"lib/img/pathways/DefineVisionPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/FoundationInPurpose/DefineVisionPathway\",\r\n summary:\r\n \"The vision of a company describes what the future will look like if the organization has achieved its mission. This can be a viewpoint outside of the company itself, or a statement that goes hand-in-hand with the mission statement. Some examples of unique visions include Patagonia, with the mission, \\\"Save our Home Planet\\\" which doubles as a mission and vision, and Tesla's, which is 'an electric car without compromises.' \",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n DefineValuesPathway: {\r\n url: \"/user/pathway/DefineValuesPathway\",\r\n id: \"DefineValuesPathway\",\r\n question: \"What are my company's values?\",\r\n focus: \"FoundationInPurpose\",\r\n name: \"Define Values\",\r\n imgSrc: require(\"lib/img/pathways/DefineValuesPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/FoundationInPurpose/DefineValuesPathway\",\r\n summary:\r\n \"After the mission and vision are defined, the values are set to define how they will fulfill the company mission and vision. It describes what behaviors will be rewarded and what behaviors will not be tolerated. The values define the culture of the company and how management will act in day-to-day business.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n AlignmentPathway: {\r\n url: \"/user/pathway/AlignmentPathway\",\r\n id: \"AlignmentPathway\",\r\n question: \"How do I align my company with its purpose?\",\r\n focus: \"FoundationInPurpose\",\r\n name: \"Alignment\",\r\n imgSrc: require(\"lib/img/pathways/AlignmentPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/FoundationInPurpose/AlignmentPathway\",\r\n summary:\r\n \"Your company's mission, vision, and value statements might win an award in corporate america, but if no one decides to adopt and follow them, they might as well be tossed out with the garbage. Alignment of employees, upper management, and the mission, vision, and values of the company must be aligned. A company can survive with out proper alignment but if it can be achieved, it is seen that a company's productivity and employee engagement increase significantly. \",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n EthicsPathway: {\r\n url: \"/user/pathway/EthicsPathway\",\r\n id: \"EthicsPathway\",\r\n question: \"How do I integrate ethics into my company?\",\r\n focus: \"FoundationInPurpose\",\r\n name: \"Ethics\",\r\n imgSrc: require(\"lib/img/pathways/EthicsPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/FoundationInPurpose/EthicsPathway\",\r\n summary:\r\n \"Problems arise daily in any buisness and it is difficult to decide what decision to make when there is so much on the line. Do we risk losing the company to help the employees? Do I whistleblow on my supplier, knowing they may take us down with them? Should I save the company and all its employees when all I have to do is lie? These decisions push our sense of ethical behavior, and unethical behavior can influence future decision making significantly. This pathway gives guidance how to respond to these situation and how to navigate them.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n CustomerIdentificationPathway: {\r\n url: \"/user/pathway/CustomerIdentificationPathway\",\r\n id: \"CustomerIdentificationPathway\",\r\n question: \"Who exactly am I serving and where are they located?\",\r\n focus: \"OperatingArena\",\r\n name: \"Customer Identification\",\r\n imgSrc: require(\"lib/img/pathways/CustomerIdentificationPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/OperatingArena/CustomerIdentificationPathway\",\r\n summary:\r\n \"Customer Identification is a critical first step in formulating a business strategy, focusing on deeply understanding the specific demographics, lifestyles, behaviors, needs, and preferences of potential customers. This process utilizes both quantitative and qualitative data to align product development, marketing, and customer experience with the evolving needs of the target audience, enhancing market acceptance and fostering business growth.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n JobsToBeDonePathway: {\r\n url: \"/user/pathway/JobsToBeDonePathway\",\r\n id: \"JobsToBeDonePathway\",\r\n question: \"What specific needs does my audience have?\",\r\n focus: \"OperatingArena\",\r\n name: \"Jobs to be Done\",\r\n imgSrc: require(\"lib/img/pathways/JobsToBeDonePathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/OperatingArena/JobsToBeDonePathway\",\r\n summary:\r\n \"Understanding Jobs to be Done involves identifying the specific needs or tasks that customers seek to accomplish using a product or service, focusing on the desired outcomes rather than the product itself. This perspective dives deep into customer motivations, allowing businesses to align their offerings more closely with what customers truly value. By grasping why customers make their purchasing decisions, companies can better innovate and precisely meet their needs, discovering new market opportunities and driving customer-centric innovation for ongoing success.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n EvaluateIndustryPathway: {\r\n url: \"/user/pathway/EvaluateIndustryPathway\",\r\n id: \"EvaluateIndustryPathway\",\r\n question: \"Who uses my product, and who buys it?\",\r\n focus: \"OperatingArena\",\r\n name: \"Evaluate Industry Focus\",\r\n imgSrc: require(\"lib/img/pathways/EvaluateIndustryPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/OperatingArena/EvaluateIndustryPathway\",\r\n summary:\r\n \"Evaluating industry focus involves a thorough analysis of the broader industry context to identify where a business can most effectively compete. This assessment encompasses industry trends, competitive dynamics, regulatory frameworks, and technological advancements. The goal is to align the company’s strengths with market opportunities and challenges, informing strategic decisions in product development, marketing, and investments, thereby crafting a roadmap for sustainable competitive advantage.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n ChosenPositionPathway: {\r\n url: \"/user/pathway/ChosenPositionPathway\",\r\n id: \"ChosenPositionPathway\",\r\n question: \"How does my product/service meet the specific needs of my target audience?\",\r\n focus: \"OperatingArena\",\r\n name: \"Chosen Position\",\r\n imgSrc: require(\"lib/img/pathways/ChosenPositionPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/OperatingArena/ChosenPositionPathway\",\r\n summary:\r\n \"Choosing your market position involves defining how your brand and offerings are perceived, focusing on a unique value proposition that differentiates your business. This strategic decision influences all facets of business strategy—product development, marketing, sales, and customer service—to ensure alignment with this position. It involves understanding your strengths, customer needs, and the competitive landscape to establish a niche that leverages your unique capabilities for sustainable competitive advantage and long-term success.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n SegmentsPathway: {\r\n url: \"/user/pathway/SegmentsPathway\",\r\n id: \"SegmentsPathway\",\r\n question: \"How do I convey my understanding of my audience's needs?\",\r\n focus: \"OperatingArena\",\r\n name: \"Segments\",\r\n imgSrc: require(\"lib/img//pathways/SegmentsPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/OperatingArena/SegmentsPathway\",\r\n summary:\r\n \"Market segmentation involves dividing a broad target market into subsets of consumers with shared needs and interests, allowing businesses to focus resources on the most profitable segments. By understanding demographic, geographic, psychographic, and behavioral factors, companies can tailor their offerings to meet specific consumer needs, enhancing satisfaction and competitive advantage. Effective segmentation enables targeted marketing strategies, optimizes resource allocation, and ensures agility in adapting to market changes, fostering long-term growth.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n CJobsToBeDonePathway: {\r\n url: \"/user/pathway/CJobsToBeDonePathway\",\r\n id: \"CJobsToBeDonePathway\",\r\n question: \"What is the job to be done?\",\r\n focus: \"CustomerUnmetNeeds\",\r\n name: \"Jobs to be Done\",\r\n imgSrc: require(\"lib/img/pathways/CJobsToBeDonePathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/CustomerUnmetNeeds/CJobsToBeDonePathway\",\r\n summary:\r\n 'Customers purchase products and services to help them solve their needs. In other words, customers \"hire\" products and services to help them complete \"jobs\". Knowing what \"jobs\" your customers want done will explain what your products and services should accomplish.',\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n PainPointsPathway: {\r\n url: \"/user/pathway/PainPointsPathway\",\r\n id: \"PainPointsPathway\",\r\n question: \"What are the pain points of doing this job?\",\r\n focus: \"CustomerUnmetNeeds\",\r\n name: \"Pain Points\",\r\n imgSrc: require(\"lib/img/pathways/PainPointsPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/CustomerUnmetNeeds/PainPointsPathway\",\r\n summary:\r\n 'Because no product or service is perfect, customers always experience some level of frustration when using them. These are pain points. Businesses can uncover pain points by seeing customers engage with their current solutions as they complete their \"jobs\".',\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n UniqueValuePathway: {\r\n url: \"/user/pathway/UniqueValuePathway\",\r\n id: \"UniqueValuePathway\",\r\n question: \"How can you do the job and address the pain points in a way no competitors do?\",\r\n focus: \"CustomerUnmetNeeds\",\r\n name: \"Unique Value\",\r\n imgSrc: require(\"lib/img/pathways/UniqueValuePathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/CustomerUnmetNeeds/UniqueValuePathway\",\r\n summary:\r\n \"Once customers' jobs to be done and pain points are discovered, you understand what a product or service must achieve. Product differentiation explains how to create products and services that meet customers' needs, reduce pains, and are unique to alternatives.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n ExistingRAndCPathway: {\r\n url: \"/user/pathway/ExistingRAndCPathway\",\r\n id: \"ExistingRAndCPathway\",\r\n question: \"What are the existing resources and capabilities?\",\r\n focus: \"UnifiedBusinessModel\",\r\n name: \"Existing Resources & Capabilities\",\r\n imgSrc: require(\"lib/img/pathways/ExistingRAndCPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/UnifiedBusinessModel/ExistingRAndCPathway\",\r\n summary:\r\n \"To best understand how firm activities need to shift to accommodate your value proposition, you need to know how your firm currently functions. What resources and capabilities currently exist to deliver value to customers within the organization?\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n AnalyzeFirmActivitiesPathway: {\r\n url: \"/user/pathway/AnalyzeFirmActivitiesPathway\",\r\n id: \"AnalyzeFirmActivitiesPathway\",\r\n question: \"What are the firm's activities?\",\r\n focus: \"UnifiedBusinessModel\",\r\n name: \"Analyze Firm Activities\",\r\n imgSrc: require(\"lib/img/pathways/AnalyzeFirmActivitiesPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway\",\r\n summary:\r\n \"Based on your targeted unique value proposition, what resources and capabilities need to be added, changed, or removed? There are many factors that could be considered here. Focus on those activities that actually provide value.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n ImplementChangesPathway: {\r\n url: \"/user/pathway/ImplementChangesPathway\",\r\n id: \"ImplementChangesPathway\",\r\n question: \"How do I implement changes to my firm's activities?\",\r\n focus: \"UnifiedBusinessModel\",\r\n name: \"Implement Changes\",\r\n imgSrc: require(\"lib/img/pathways/ImplementChangesPathway.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/UnifiedBusinessModel/ImplementChangesPathway\",\r\n summary:\r\n \"Once you know where your organization stands and what needs to be changed, how will these be implemented and monitored? Changes should be prioritized based on impact to your unique value add. Methods for monitoring alignment should also be considered.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n CapabilitiesAdvantagePathway: {\r\n url: \"/user/pathway/CapabilitiesAdvantagePathway\",\r\n id: \"CapabilitiesAdvantagePathway\",\r\n question: \"What are the capabilities that give us an advantage?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Capabilities Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway\",\r\n summary:\r\n \"Capabilities advantages describe a company's internal capabilities to perform activities better than other companies. This relates to functional skills, such as research and development, supply chain, trade secrets, expertise, learning curve, data and analytics dominance, etc. it describes the skills that the company developed within itself.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n LocationAdvantagePathway: {\r\n url: \"/user/pathway/LocationAdvantagePathway\",\r\n id: \"LocationAdvantagePathway\",\r\n question: \"What are the location advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Location Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/LocationAdvantagePathway\",\r\n summary:\r\n \"Location advantages refer to the benefits of where the physical building is located. These advantages could come from the city, county, state, or country, or the proximity to key resources or culture.\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n SwitchingCostAdvantagePathway: {\r\n url: \"/user/pathway/SwitchingCostAdvantagePathway\",\r\n id: \"SwitchingCostAdvantagePathway\",\r\n question: \"What are the switching cost advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Switching Cost Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway\",\r\n summary: \"SUMMARY\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n TimingAdvantagePathway: {\r\n url: \"/user/pathway/TimingAdvantagePathway\",\r\n id: \"TimingAdvantagePathway\",\r\n question: \"What are the timing advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Timing Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/TimingAdvantagePathway\",\r\n summary: \"SUMMARY\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n ManufacturingAdvantagePathway: {\r\n url: \"/user/pathway/ManufacturingAdvantagePathway\",\r\n id: \"ManufacturingAdvantagePathway\",\r\n question: \"What are the manufacturing advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Manufacturing Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway\",\r\n summary: \"SUMMARY\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n ResourceAdvantagePathway: {\r\n url: \"/user/pathway/ResourceAdvantagePathway\",\r\n id: \"ResourceAdvantagePathway\",\r\n question: \"What are the resource advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Resource Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/ResourceAdvantagePathway\",\r\n summary: \"SUMMARY\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n NetworkAdvantagePathway: {\r\n url: \"/user/pathway/NetworkAdvantagePathway\",\r\n id: \"NetworkAdvantagePathway\",\r\n question: \"What are the network advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Network Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/NetworkAdvantagePathway\",\r\n summary: \"SUMMARY\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n CustomerAdvantagePathway: {\r\n url: \"/user/pathway/CustomerAdvantagePathway\",\r\n id: \"CustomerAdvantagePathway\",\r\n question: \"What are the customer advantages?\",\r\n focus: \"SafeguardsAgainstImitation\",\r\n name: \"Customer Advantage\",\r\n imgSrc: require(\"lib/img/DaVinciPillars.jpg\"),\r\n type: \"Pathway\",\r\n filePath: \"components/pathways/pages/SafeguardsAgainstImitation/CustomerAdvantagePathway\",\r\n summary: \"SUMMARY\",\r\n concepts: [\"Cage\", \"EntryModes\", \"ConsumptionChain\"],\r\n },\r\n} as const satisfies TPathways;\r\n\r\nexport default Pathways as TPathways;\r\n","import { TStudent } from \"types/JsonType\";\r\n\r\nexport const Students = [\r\n {\r\n firstName: \"Corban\",\r\n lastName: \"Procuniar\",\r\n imgSrc: require(\"lib/img/team/c_procuniar.jpg\"),\r\n major: \"Masters in Information Systems Management\",\r\n role: \"Web Developer\",\r\n started: new Date(\"2023/10/28\"),\r\n ended: null,\r\n linkedin: \"https://www.linkedin.com/in/corbanprocuniar\",\r\n },\r\n {\r\n firstName: \"Tyler\",\r\n lastName: \"Hill\",\r\n imgSrc: require(\"lib/img/team/t_hill.jpg\"),\r\n major: \"Strategic Management\",\r\n role: \"Research Assistant\",\r\n started: new Date(\"2024/01/01\"),\r\n ended: new Date(\"2024/12/01\"),\r\n linkedin: \"https://www.linkedin.com/in/tylerhillconnect/\",\r\n },\r\n {\r\n firstName: \"Jonah\",\r\n lastName: \"Heninger\",\r\n imgSrc: require(\"lib/img/team/j_heninger.jpg\"),\r\n major: \"Strategic Management\",\r\n role: \"Research Assistant\",\r\n started: new Date(\"2024/04/01\"),\r\n ended: null,\r\n linkedin: \"https://www.linkedin.com/in/jonah-heninger-b22977292\",\r\n },\r\n {\r\n firstName: \"Davis\",\r\n lastName: \"Rush\",\r\n imgSrc: require(\"lib/img/team/d_rush.jpg\"),\r\n major: \"Strategic Management\",\r\n role: \"Research Assistant\",\r\n started: new Date(\"2024/04/01\"),\r\n ended: null,\r\n linkedin: \"https://www.linkedin.com/in/davis-rush-1654a8294\",\r\n },\r\n {\r\n firstName: \"Andrés\",\r\n lastName: \"Rich\",\r\n imgSrc: require(\"lib/img/team/a_rich.jpg\"),\r\n major: \"Advertising Content Creating\",\r\n role: \"Media Specialist\",\r\n started: new Date(\"2024/02/01\"),\r\n ended: null,\r\n linkedin: \"https://www.linkedin.com/in/andr%C3%A9s-rich/\",\r\n },\r\n {\r\n firstName: \"Calvin\",\r\n lastName: \"Scott\",\r\n imgSrc: require(\"lib/img/team/c_scott.jpg\"),\r\n major: \"Advertising\",\r\n role: \"Media Manager/Creator\",\r\n started: new Date(\"2024/02/01\"),\r\n ended: null,\r\n linkedin: \"https://www.linkedin.com/in/calvin-scott-5925722a4/\",\r\n },\r\n {\r\n firstName: \"Mason\",\r\n lastName: \"Briggs\",\r\n imgSrc: require(\"lib/img/team/m_briggs.jpg\"),\r\n major: \"Strategic Management\",\r\n role: \"Research Assistant\",\r\n started: new Date(\"2025/02/05\"),\r\n ended: null,\r\n linkedin: \"www.linkedin.com/in/mason-briggs-9971652b7\",\r\n },\r\n {\r\n firstName: \"Preston\",\r\n lastName: \"Pond\",\r\n imgSrc: require(\"lib/img/team/p_pond.jpg\"),\r\n major: \"Strategic Management\",\r\n role: \"Research Assistant\",\r\n started: new Date(\"2024/01/01\"),\r\n ended: new Date(\"2024/12/01\"),\r\n linkedin: \"https://www.linkedin.com/in/prestonpond/\",\r\n },\r\n /*\r\n\r\n {\r\n firstName: \"\",\r\n lastName: \"\",\r\n imgSrc: require(\"lib/img/team/c_scott.jpg\"),\r\n major: \"\",\r\n role: \"\",\r\n started: new Date(\"\"),\r\n ended: null,\r\n linkedin: \"\",\r\n },\r\n\r\n\r\n */\r\n] as const satisfies TStudent[];\r\n\r\nexport default Students as TStudent[];\r\n","import { TTools } from \"types/JsonType\";\r\n\r\nexport const Tools = {\r\n PortersFiveForcesCalculator: {\r\n url: \"/user/tool/PortersFiveForcesCalculator\",\r\n name: \"Porter's Five Forces Calculator\",\r\n summary:\r\n \"Analyze the attractiveness of an industry with the Porter's Five Forces tool. Use either the simple calculator to get a ballpark estimate in seconds, or use the advanced calculator for an in depth answer you can trust.\",\r\n imgSrc: require(\"lib/img/tools/PortersFiveForces.jpg\"),\r\n filePath: \"components/tools/pages/PortersFiveForcesCalculator\",\r\n type: \"Tool\",\r\n },\r\n ThreeHorizonsCalculator: {\r\n url: \"/user/tool/ThreeHorizonsCalculator\",\r\n name: \"Three Horizons Calculator\",\r\n summary: \"DESCRIPTION\",\r\n imgSrc: require(\"lib/img/tools/ThreeHorizons.jpg\"),\r\n type: \"Tool\",\r\n filePath: \"components/tools/pages/ThreeHorizonsCalculator\",\r\n },\r\n StrategyCanvasCalculator: {\r\n url: \"/user/tool/StrategyCanvasCalculator\",\r\n name: \"Strategy Canvas Calculator\",\r\n summary: \"DESCRIPTION\",\r\n imgSrc: require(\"lib/img/tools/StrategyCanvas.jpg\"),\r\n type: \"Tool\",\r\n filePath: \"components/tools/pages/StrategyCanvasCalculator\",\r\n },\r\n} as const satisfies TTools;\r\n\r\nexport default Tools as TTools;\r\n","import { TVideo } from \"types/JsonType\";\r\n\r\nconst Videos = [\r\n {\r\n name: \"Why International Business\",\r\n summary:\r\n \"How international business differs from domestic business. What factors you need to consider when doing business in a foreign environment\",\r\n url: \"https://youtu.be/lMdhfBQUhtI?si=sAvQjFL9mT2SzaFy\",\r\n thumbnail: \"https://img.youtube.com/vi/lMdhfBQUhtI/maxresdefault.jpg\",\r\n type: \"Video\",\r\n },\r\n {\r\n name: \"PEST Analysis\",\r\n summary:\r\n \"How to conduct a PEST analysis for your company. Professor Morris discusses how a PEST analysis can help you determine the risks and opportunities associated with entering a foreign market.\",\r\n url: \"https://www.youtube.com/watch?v=mCdcdf-b8AU\",\r\n thumbnail: \"https://img.youtube.com/vi/mCdcdf-b8AU/maxresdefault.jpg\",\r\n type: \"Video\",\r\n },\r\n {\r\n name: \"International Strategy\",\r\n summary:\r\n \"How do you win in a global market? This video shows how to position your company in a global market, depending upon your objectives.\",\r\n url: \"https://www.youtube.com/watch?v=z7M1vQTvkx4\",\r\n thumbnail: \"https://img.youtube.com/vi/z7M1vQTvkx4/maxresdefault.jpg\",\r\n type: \"Video\",\r\n },\r\n {\r\n name: \"The Problem With Globalization\",\r\n summary:\r\n \"Globalization is not what most people expected. We thought this rising tide would lift all boats, but it hasn't. Globalization can be redirected to improve the lives of people all over the world. But it will require us to think differently.\",\r\n url: \"https://www.youtube.com/watch?v=uZXJYE0ZY0s\",\r\n thumbnail: \"https://img.youtube.com/vi/uZXJYE0ZY0s/maxresdefault.jpg\",\r\n type: \"Video\",\r\n },\r\n {\r\n name: \"Foreign Direct Investment Explained\",\r\n summary:\r\n \"Learn what foreign direct investment (FDI) is and how it affects you. We explore the investments that countries make in foreign countries and how the balance of FDI influences the economic well-being of a country. \",\r\n url: \"https://www.youtube.com/watch?v=QI8zEyplFn4\",\r\n thumbnail: \"https://img.youtube.com/vi/QI8zEyplFn4/maxresdefault.jpg\",\r\n type: \"Video\",\r\n },\r\n {\r\n name: \"International Business Explained: Why Go International?\",\r\n summary:\r\n \"What is international business and why should companies go international? Learn from Shad Morris, Professor of International Business at Brigham Young University, as he teaches what benefits companies receive from international expansion.\",\r\n url: \"https://youtu.be/doN0_-I8ftA\",\r\n thumbnail: \"https://img.youtube.com/vi/doN0_-I8ftA/maxresdefault.jpg\",\r\n type: \"Video\",\r\n },\r\n] as const satisfies TVideo[];\r\n\r\nexport default Videos as TVideo[];\r\n","import Categories from \"lib/data/Categories\";\r\nimport { TCategory, TConcepts, TPathways, TFocus, TFocuses } from \"types/JsonType\";\r\nimport ConceptsData from \"lib/data/Concepts\";\r\nimport PathwaysData from \"lib/data/Pathways\";\r\nimport FocusData from \"lib/data/Focuses\";\r\n\r\ntype TConceptView = {\r\n id: string;\r\n url: string;\r\n name: string;\r\n category: TCategory;\r\n summary: string;\r\n essential: boolean;\r\n};\r\n\r\ntype TFullConceptsView = {\r\n [key: string]: TConceptView;\r\n};\r\n\r\nexport type TPathwayView = {\r\n id: string;\r\n question: string;\r\n focus: string;\r\n name: string;\r\n imgSrc: string;\r\n url: string;\r\n concepts: {\r\n [key: string]: TConceptView;\r\n };\r\n};\r\n\r\ntype TFullPathwaysView = {\r\n [key: string]: TPathwayView;\r\n};\r\n\r\nexport type TFocusView = TFocus & {\r\n pathways: {\r\n [key: string]: TPathwayView;\r\n };\r\n};\r\n\r\nexport type TFullFocusView = {\r\n [key: string]: TFocusView;\r\n};\r\n\r\nconst focusesList = Object.keys(FocusData);\r\nconst pathwaysList = Object.keys(PathwaysData);\r\nconst conceptsList = Object.keys(ConceptsData);\r\n\r\nexport function GetConceptsView(Concepts: TConcepts = ConceptsData) {\r\n const ConceptsView: TFullConceptsView = {};\r\n\r\n conceptsList.forEach((conceptId) => {\r\n ConceptsView[conceptId] = {\r\n ...Concepts[conceptId],\r\n category: Categories[Concepts[conceptId].category],\r\n };\r\n });\r\n return ConceptsView;\r\n}\r\n\r\nexport function GetPathwaysView(\r\n Pathways: TPathways = PathwaysData,\r\n Concepts: TConcepts = ConceptsData\r\n) {\r\n const PathwaysView: TFullPathwaysView = {};\r\n const ConceptsView = GetConceptsView(Concepts);\r\n\r\n pathwaysList.forEach((pathwayId) => {\r\n PathwaysView[pathwayId] = {\r\n ...Pathways[pathwayId],\r\n concepts: {},\r\n };\r\n Pathways[pathwayId].concepts.forEach((conceptId) => {\r\n PathwaysView[pathwayId].concepts[conceptId] = ConceptsView[conceptId];\r\n });\r\n });\r\n return PathwaysView;\r\n}\r\n\r\nexport function GetFocusesView(\r\n Focuses: TFocuses = FocusData,\r\n Pathways: TPathways = PathwaysData,\r\n Concepts: TConcepts = ConceptsData\r\n) {\r\n const FocusesView: TFullFocusView = {};\r\n const PathwaysView = GetPathwaysView(Pathways, Concepts);\r\n\r\n focusesList.forEach((focusId) => {\r\n FocusesView[focusId] = {\r\n ...Focuses[focusId],\r\n pathways: {},\r\n };\r\n });\r\n\r\n pathwaysList.forEach((pathwayId) => {\r\n const pathway = Pathways[pathwayId];\r\n FocusesView[pathway.focus].pathways[pathwayId] = PathwaysView[pathwayId];\r\n });\r\n\r\n return FocusesView;\r\n}\r\n","import { Concepts } from \"lib/data/Concepts\";\r\nimport { Focuses } from \"lib/data/Focuses\";\r\nimport { Categories } from \"lib/data/Categories\";\r\nimport { Commandments } from \"lib/data/Commandments\";\r\n\r\nexport type TFocusKeys = keyof typeof Focuses;\r\nexport type TConceptsKeys = keyof typeof Concepts;\r\nexport type TCategoriesKeys = keyof typeof Categories;\r\nexport type TCommandmentsKeys = keyof typeof Commandments;\r\n\r\nexport type TCommandment = {\r\n id: string;\r\n name: string;\r\n subTitle: string;\r\n url: string;\r\n filePath: string;\r\n summary: string;\r\n type: \"Commandment\";\r\n num: number;\r\n};\r\n\r\nexport type TCommandments = {\r\n [key: string]: TCommandment;\r\n};\r\n\r\nexport const defaultCommandment: TCommandment = {\r\n id: \"\",\r\n name: \"\",\r\n subTitle: \"\",\r\n url: \"\",\r\n summary: \"\",\r\n filePath: \"\",\r\n type: \"Commandment\",\r\n num: 0,\r\n};\r\n\r\nexport type TFocus = {\r\n id: string;\r\n name: string;\r\n question: string;\r\n color: string;\r\n url: string;\r\n num: number;\r\n summary: string;\r\n letter: string;\r\n imgSrc: string;\r\n filePath: string;\r\n type: \"Focus\";\r\n};\r\nexport type TFocuses = {\r\n [key: string]: TFocus;\r\n};\r\nexport const defaultFocus: TFocus = {\r\n filePath: \"\",\r\n id: \"\",\r\n name: \"\",\r\n question: \"\",\r\n color: \"\",\r\n url: \"\",\r\n num: 0,\r\n letter: \"\",\r\n summary: \"\",\r\n imgSrc: \"\",\r\n type: \"Focus\",\r\n};\r\n\r\nexport type TPathway = {\r\n id: string;\r\n question: string;\r\n focus: TFocusKeys;\r\n name: string;\r\n imgSrc: string;\r\n url: string;\r\n concepts: TConceptsKeys[];\r\n summary: string;\r\n filePath: string;\r\n type: \"Pathway\";\r\n};\r\nexport type TPathways = {\r\n [key: string]: TPathway;\r\n};\r\nexport const defaultPathway: TPathway = {\r\n filePath: \"\",\r\n id: \"\",\r\n question: \"\",\r\n focus: \"FoundationInPurpose\",\r\n name: \"\",\r\n imgSrc: \"\",\r\n url: \"\",\r\n concepts: [],\r\n type: \"Pathway\",\r\n summary: \"\",\r\n};\r\n\r\nexport type TConcept = {\r\n id: string;\r\n url: string;\r\n name: string;\r\n category: TCategoriesKeys;\r\n summary: string;\r\n essential: boolean;\r\n filePath: string;\r\n type: \"Concept\";\r\n};\r\nexport type TConcepts = {\r\n [key: string]: TConcept;\r\n};\r\nexport const defaultConcept: TConcept = {\r\n id: \"\",\r\n url: \"\",\r\n name: \"\",\r\n category: \"Economics\",\r\n essential: false,\r\n summary: \"\",\r\n filePath: \"\",\r\n type: \"Concept\",\r\n};\r\n\r\nexport type TTool = {\r\n name: string;\r\n url: string;\r\n filePath: string;\r\n summary: string;\r\n imgSrc: string;\r\n type: \"Tool\";\r\n};\r\nexport type TTools = {\r\n [key: string]: TTool;\r\n};\r\n\r\nexport type TCategory = {\r\n name: string;\r\n};\r\nexport type TCategories = {\r\n [key: string]: TCategory;\r\n};\r\n\r\nexport type TStudent = {\r\n firstName: string;\r\n lastName: string;\r\n major: string;\r\n role: string;\r\n imgSrc: string;\r\n linkedin: string;\r\n started: Date;\r\n ended: Date | null;\r\n};\r\n\r\nexport type TVideo = {\r\n name: string;\r\n summary: string;\r\n url: string;\r\n thumbnail: string;\r\n type: \"Video\";\r\n};\r\n","export default function GetFuncParams(func: (...params: any) => any) {\r\n // String representation of the function code\r\n let str: string = func.toString();\r\n\r\n // Remove comments of the form /* ... */\r\n // Removing comments of the form //\r\n // Remove body of the function { ... }\r\n // removing '=>' if func is arrow function\r\n str = str\r\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, \"\")\r\n .replace(/\\/\\/(.)*/g, \"\")\r\n .replace(/{[\\s\\S]*}/, \"\")\r\n .replace(/=>/g, \"\")\r\n .trim();\r\n\r\n // Start parameter names after first '('\r\n let start = str.indexOf(\"(\") + 1;\r\n\r\n // End parameter names is just before last ')'\r\n let end = str.length - 1;\r\n\r\n let result = str.substring(start, end).split(\", \");\r\n\r\n let params: string[] = [];\r\n\r\n result.forEach((element) => {\r\n // Removing any default value\r\n element = element.replace(/=[\\s\\S]*/g, \"\").trim();\r\n\r\n if (element.length > 0) params.push(element);\r\n });\r\n\r\n return params;\r\n}\r\n","export default function PasswordValidator(password: string) {\r\n let errors = [];\r\n if (password.length < 8) {\r\n errors.push(\"8 characters\");\r\n }\r\n if (!password.match(/[a-z]/)) {\r\n errors.push(\"1 lowercase letter\");\r\n }\r\n if (!password.match(/[A-Z]/)) {\r\n errors.push(\"1 uppercase letter\");\r\n }\r\n if (!password.match(/[0-9]/)) {\r\n errors.push(\"1 number\");\r\n }\r\n\r\n return errors;\r\n}\r\n","export function SetDocumentTitle(title: string) {\r\n document.title = `${title} - Strategy Unlocked`;\r\n}\r\n","/* \r\n CanvasJS Chart - v3.8.1 GA - https://canvasjs.com/ \r\n Copyright 2024 fenopix\r\n\r\n --------------------- License Information --------------------\r\n CanvasJS Chart is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details.\r\n https://canvasjs.com/license/\r\n\r\n\r\n ---------------------Free for Non-Commercial Use--------------------\r\n \r\n For non-commercial purposes you can use the software for free under Creative Commons Attribution-NonCommercial 3.0 License.\r\n A credit Link is added to the chart which should be preserved. Refer to the following link for further details on the same.\r\n https://creativecommons.org/licenses/by-nc/3.0/deed.en_US\r\n */\r\n\r\n/*tslint:disable*/\r\n/*eslint-disable*/\r\n/*jshint ignore:start*/\r\n(function(){function pa(d,l){d.prototype=db(l.prototype);d.prototype.constructor=d;d.base=l.prototype}function db(d){function l(){}l.prototype=d;return new l}function Ya(d,l,Q){\"millisecond\"===Q?d.setMilliseconds(d.getMilliseconds()+1*l):\"second\"===Q?d.setSeconds(d.getSeconds()+1*l):\"minute\"===Q?d.setMinutes(d.getMinutes()+1*l):\"hour\"===Q?d.setHours(d.getHours()+1*l):\"day\"===Q?d.setDate(d.getDate()+1*l):\"week\"===Q?d.setDate(d.getDate()+7*l):\"month\"===Q?d.setMonth(d.getMonth()+1*l):\"year\"===Q&&d.setFullYear(d.getFullYear()+\n1*l);return d}function da(d,l){var Q=!1;0>d&&(Q=!0,d*=-1);d=\"\"+d;for(l=l?l:1;d.length<l;)d=\"0\"+d;return Q?\"-\"+d:d}function Ga(d){if(!d)return d;d=d.replace(/^\\s\\s*/,\"\");for(var l=/\\s/,Q=d.length;l.test(d.charAt(--Q)););return d.slice(0,Q+1)}function za(d){d.roundRect=function(d,Q,p,v,ra,E,B,t){B&&(this.fillStyle=B);t&&(this.strokeStyle=t);\"undefined\"===typeof ra&&(ra=5);this.lineWidth=E;this.beginPath();this.moveTo(d+ra,Q);this.lineTo(d+p-ra,Q);this.quadraticCurveTo(d+p,Q,d+p,Q+ra);this.lineTo(d+\np,Q+v-ra);this.quadraticCurveTo(d+p,Q+v,d+p-ra,Q+v);this.lineTo(d+ra,Q+v);this.quadraticCurveTo(d,Q+v,d,Q+v-ra);this.lineTo(d,Q+ra);this.quadraticCurveTo(d,Q,d+ra,Q);this.closePath();B&&this.fill();t&&0<E&&this.stroke()}}function Sa(d,l){return d-l}function T(d){var l=((d&16711680)>>16).toString(16),Q=((d&65280)>>8).toString(16);d=((d&255)>>0).toString(16);l=2>l.length?\"0\"+l:l;Q=2>Q.length?\"0\"+Q:Q;d=2>d.length?\"0\"+d:d;return\"#\"+l+Q+d}function eb(d,l){var Q=this.length>>>0,p=Number(l)||0,p=0>p?Math.ceil(p):\nMath.floor(p);for(0>p&&(p+=Q);p<Q;p++)if(p in this&&this[p]===d)return p;return-1}function p(d){return null===d||\"undefined\"===typeof d}function Da(d){d.indexOf||(d.indexOf=eb);return d}function fb(d){if(wa.fSDec)d[ja(\"`eeDwdouMhrudods\")](ja(\"e`u`@ohl`uhnoHuds`uhnoDoe\"),function(){wa._fTWm&&wa._fTWm(d)})}function Za(d,l,Q){Q=Q||\"normal\";var p=d+\"_\"+l+\"_\"+Q,v=$a[p];if(isNaN(v)){try{if(!sa){var ra=document.body;sa=document.createElement(\"span\");sa.innerHTML=\"\";var E=document.createTextNode(\"Mpgyi\");\nsa.appendChild(E);ra.appendChild(sa)}sa.style.display=\"\";Z(sa,{position:\"absolute\",left:\"0px\",top:\"-20000px\",padding:\"0px\",margin:\"0px\",border:\"none\",whiteSpace:\"pre\",lineHeight:\"normal\",fontFamily:d,fontSize:l+\"px\",fontWeight:Q});v=Math.round(sa.offsetHeight);sa.style.display=\"none\"}catch(B){v=Math.ceil(1.1*l)}v=Math.max(v,l);$a[p]=v}return v}function H(d,l){var p=[];if(p={solid:[],shortDash:[3,1],shortDot:[1,1],shortDashDot:[3,1,1,1],shortDashDotDot:[3,1,1,1,1,1],dot:[1,2],dash:[4,2],dashDot:[4,\n2,1,2],longDash:[8,2],longDashDot:[8,2,1,2],longDashDotDot:[8,2,1,2,1,2]}[d||\"solid\"])for(var v=0;v<p.length;v++)p[v]*=l;else p=[];return p}function V(d,l,Q,v,ia){v=v||[];ia=p(ia)?gb?{passive:!1,capture:!1}:!1:ia;v.push([d,l,Q,ia]);return d.addEventListener?(d.addEventListener(l,Q,ia),Q):d.attachEvent?(v=function(l){l=l||window.event;l.preventDefault=l.preventDefault||function(){l.returnValue=!1};l.stopPropagation=l.stopPropagation||function(){l.cancelBubble=!0};Q.call(d,l)},d.attachEvent(\"on\"+l,\nv),v):!1}function hb(d){if(d._menuButton)d.exportEnabled?(Z(d._menuButton,{backgroundColor:d.toolbar.itemBackgroundColor,color:d.toolbar.fontColor}),La(d._menuButton),ta(d,d._menuButton,\"menu\")):xa(d._menuButton);else if(d.exportEnabled&&v){var l=!1;d._menuButton=document.createElement(\"button\");ta(d,d._menuButton,\"menu\");d._toolBar.appendChild(d._menuButton);V(d._menuButton,\"touchstart\",function(d){l=!0},d.allDOMEventHandlers);V(d._menuButton,\"click\",function(){\"none\"!==d._dropdownMenu.style.display||\nd._dropDownCloseTime&&500>=(new Date).getTime()-d._dropDownCloseTime.getTime()||(d._dropdownMenu.style.display=\"block\",d._menuButton.blur(),d._dropdownMenu.focus())},d.allDOMEventHandlers,!0);V(d._menuButton,\"mousemove\",function(){l||(Z(d._menuButton,{backgroundColor:d.toolbar.itemBackgroundColorOnHover,color:d.toolbar.fontColorOnHover}),0>=navigator.userAgent.search(\"MSIE\")&&Z(d._menuButton.childNodes[0],{WebkitFilter:\"invert(100%)\",filter:\"invert(100%)\"}))},d.allDOMEventHandlers,!0);V(d._menuButton,\n\"mouseout\",function(){l||(Z(d._menuButton,{backgroundColor:d.toolbar.itemBackgroundColor,color:d.toolbar.fontColor}),0>=navigator.userAgent.search(\"MSIE\")&&Z(d._menuButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}))},d.allDOMEventHandlers,!0)}if(d.exportEnabled&&d._dropdownMenu){Z(d._dropdownMenu,{backgroundColor:d.toolbar.itemBackgroundColor,color:d.toolbar.fontColor});for(var p=d._dropdownMenu.childNodes,$=[d._cultureInfo.printText,d._cultureInfo.saveJPGText,d._cultureInfo.savePNGText],\nia=0;ia<$.length;ia++)Z(p[ia],{backgroundColor:d.toolbar.itemBackgroundColor,color:d.toolbar.fontColor}),p[ia].innerHTML=$[ia]}else!d._dropdownMenu&&(d.exportEnabled&&v)&&(l=!1,d._dropdownMenu=document.createElement(\"div\"),d._dropdownMenu.setAttribute(\"tabindex\",-1),p=-1!==d.theme.indexOf(\"dark\")?\"black\":\"#888888\",Z(d._dropdownMenu,{position:\"absolute\",zIndex:1,userSelect:\"none\",MozUserSeelct:\"none\",WebkitUserSelect:\"none\",msUserSelect:\"none\",cursor:\"pointer\",right:\"0px\",top:\"25px\",minWidth:\"120px\",\noutline:0,fontSize:\"14px\",fontFamily:\"Arial, Helvetica, sans-serif\",padding:\"5px 0px 5px 0px\",textAlign:\"left\",lineHeight:\"10px\",backgroundColor:d.toolbar.itemBackgroundColor,boxShadow:\"2px 2px 10px\"+p}),d._dropdownMenu.style.display=\"none\",d._toolBar.appendChild(d._dropdownMenu),V(d._dropdownMenu,\"blur\",function(){xa(d._dropdownMenu);d._dropDownCloseTime=new Date},d.allDOMEventHandlers,!0),p=document.createElement(\"div\"),Z(p,{padding:\"12px 8px 12px 8px\"}),p.innerHTML=d._cultureInfo.printText,p.style.backgroundColor=\nd.toolbar.itemBackgroundColor,p.style.color=d.toolbar.fontColor,d._dropdownMenu.appendChild(p),V(p,\"touchstart\",function(d){l=!0},d.allDOMEventHandlers),V(p,\"mousemove\",function(){l||(this.style.backgroundColor=d.toolbar.itemBackgroundColorOnHover,this.style.color=d.toolbar.fontColorOnHover)},d.allDOMEventHandlers,!0),V(p,\"mouseout\",function(){l||(this.style.backgroundColor=d.toolbar.itemBackgroundColor,this.style.color=d.toolbar.fontColor)},d.allDOMEventHandlers,!0),V(p,\"click\",function(){d.print();\nxa(d._dropdownMenu)},d.allDOMEventHandlers,!0),p=document.createElement(\"div\"),Z(p,{padding:\"12px 8px 12px 8px\"}),p.innerHTML=d._cultureInfo.saveJPGText,p.style.backgroundColor=d.toolbar.itemBackgroundColor,p.style.color=d.toolbar.fontColor,d._dropdownMenu.appendChild(p),V(p,\"touchstart\",function(d){l=!0},d.allDOMEventHandlers),V(p,\"mousemove\",function(){l||(this.style.backgroundColor=d.toolbar.itemBackgroundColorOnHover,this.style.color=d.toolbar.fontColorOnHover)},d.allDOMEventHandlers,!0),V(p,\n\"mouseout\",function(){l||(this.style.backgroundColor=d.toolbar.itemBackgroundColor,this.style.color=d.toolbar.fontColor)},d.allDOMEventHandlers,!0),V(p,\"click\",function(){d.exportChart({format:\"jpeg\",fileName:d.exportFileName});xa(d._dropdownMenu)},d.allDOMEventHandlers,!0),p=document.createElement(\"div\"),Z(p,{padding:\"12px 8px 12px 8px\"}),p.innerHTML=d._cultureInfo.savePNGText,p.style.backgroundColor=d.toolbar.itemBackgroundColor,p.style.color=d.toolbar.fontColor,d._dropdownMenu.appendChild(p),V(p,\n\"touchstart\",function(d){l=!0},d.allDOMEventHandlers),V(p,\"mousemove\",function(){l||(this.style.backgroundColor=d.toolbar.itemBackgroundColorOnHover,this.style.color=d.toolbar.fontColorOnHover)},d.allDOMEventHandlers,!0),V(p,\"mouseout\",function(){l||(this.style.backgroundColor=d.toolbar.itemBackgroundColor,this.style.color=d.toolbar.fontColor)},d.allDOMEventHandlers,!0),V(p,\"click\",function(){d.exportChart({format:\"png\",fileName:d.exportFileName});xa(d._dropdownMenu)},d.allDOMEventHandlers,!0))}function ab(d,\nl,p){d*=ma;l*=ma;d=p.getImageData(d,l,2,2).data;l=!0;for(p=0;4>p;p++)if(d[p]!==d[p+4]|d[p]!==d[p+8]|d[p]!==d[p+12]){l=!1;break}return l?d[0]<<16|d[1]<<8|d[2]:0}function na(d,l,p){return d in l?l[d]:p[d]}function Ma(d,l,Q,$){v&&bb?($=!p($)&&$?d.getContext(\"2d\",{willReadFrequently:!0}):d.getContext(\"2d\"),Na=$.webkitBackingStorePixelRatio||$.mozBackingStorePixelRatio||$.msBackingStorePixelRatio||$.oBackingStorePixelRatio||$.backingStorePixelRatio||1,ma=Ta/Na,d.width=l*ma,d.height=Q*ma,Ta!==Na&&(d.style.width=\nl+\"px\",d.style.height=Q+\"px\",$.scale(ma,ma))):(d.width=l,d.height=Q)}function ib(d){if(!jb){var l=!1,p=!1;\"undefined\"===typeof qa.Chart.creditHref?(d.creditHref=ja(\"iuuqr;..b`ow`rkr/bnl.\"),d.creditText=ja(\"B`ow`rKR/bnl\")):(l=d.updateOption(\"creditText\"),p=d.updateOption(\"creditHref\"));if(d.creditHref&&d.creditText){d._creditLink||(d._creditLink=document.createElement(\"a\"),d._creditLink.setAttribute(\"class\",\"canvasjs-chart-credit\"),d._creditLink.setAttribute(\"title\",\"JavaScript Charts\"),Z(d._creditLink,\n{outline:\"none\",margin:\"0px\",position:\"absolute\",right:\"2px\",top:d.height-14+\"px\",color:\"dimgrey\",textDecoration:\"none\",fontSize:\"11px\",fontFamily:\"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif\"}),d._creditLink.setAttribute(\"tabIndex\",-1),d._creditLink.setAttribute(\"target\",\"_blank\"));if(0===d.renderCount||l||p)d._creditLink.setAttribute(\"href\",d.creditHref),d._creditLink.innerHTML=d.creditText;d._creditLink&&d.creditHref&&d.creditText?(d._creditLink.parentElement||d._canvasJSContainer.appendChild(d._creditLink),\nd._creditLink.style.top=d.height-14+\"px\"):d._creditLink.parentElement&&d._canvasJSContainer.removeChild(d._creditLink)}}}function va(d,l,p){Ha&&(this.canvasCount|=0,window.console.log(++this.canvasCount));var $=document.createElement(\"canvas\");$.setAttribute(\"class\",\"canvasjs-chart-canvas\");Ma($,d,l,p);v||\"undefined\"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement($);return $}function Z(d,l){for(var p in l)d.style[p]=l[p]}function ta(d,l,p){l.getAttribute(\"state\")||(l.style.backgroundColor=\nd.toolbar.itemBackgroundColor,l.style.color=d.toolbar.fontColor,l.style.border=\"none\",Z(l,{WebkitUserSelect:\"none\",MozUserSelect:\"none\",msUserSelect:\"none\",userSelect:\"none\"}));l.getAttribute(\"state\")!==p&&(l.setAttribute(\"state\",p),l.setAttribute(\"type\",\"button\"),Z(l,{padding:\"5px 12px\",cursor:\"pointer\",\"float\":\"left\",width:\"40px\",height:\"25px\",outline:\"0px\",verticalAlign:\"baseline\",lineHeight:\"0\"}),l.innerHTML=\"<img src='\"+kb[p].image+\"' alt='\"+d._cultureInfo[p+\"Text\"]+\"' />\",Z(l.childNodes[0],\n{height:\"95%\",pointerEvents:\"none\"}));l.setAttribute(\"title\",d._cultureInfo[p+\"Text\"])}function La(){for(var d=null,l=0;l<arguments.length;l++)d=arguments[l],d.style&&(d.style.display=\"inline\")}function xa(){for(var d=null,l=0;l<arguments.length;l++)(d=arguments[l])&&d.style&&(d.style.display=\"none\")}function Ua(d,l,p,v,ia){if(null===d||\"undefined\"===typeof d)return\"undefined\"===typeof p?l:p;d=parseFloat(d.toString())*(0<=d.toString().indexOf(\"%\")?l/100:1);\"undefined\"!==typeof v&&(d=Math.min(v,d),\n\"undefined\"!==typeof ia&&(d=Math.max(ia,d)));return!isNaN(d)&&d<=l&&0<=d?d:\"undefined\"===typeof p?l:p}function K(d,l,v,$,ia){this._defaultsKey=d;this._themeOptionsKey=l;this._index=$;this.parent=ia;this._eventListeners=[];d={};this.theme&&p(this.parent)&&p(l)&&p($)?d=p(this.predefinedThemes[this.theme])?this.predefinedThemes.light1:this.predefinedThemes[this.theme]:this.parent&&(this.parent.themeOptions&&this.parent.themeOptions[l])&&(null===$?d=this.parent.themeOptions[l]:0<this.parent.themeOptions[l].length&&\n($=Math.min(this.parent.themeOptions[l].length-1,$),d=this.parent.themeOptions[l][$]));this.themeOptions=d;this.options=v?v:{_isPlaceholder:!0};this.setOptions(this.options,d)}function Ea(d,l,p,v,ia){\"undefined\"===typeof ia&&(ia=0);this._padding=ia;this._x1=d;this._y1=l;this._x2=p;this._y2=v;this._rightOccupied=this._leftOccupied=this._bottomOccupied=this._topOccupied=this._padding}function ka(d,l){ka.base.constructor.call(this,\"TextBlock\",null,l,null,null);this.ctx=d;this._isDirty=!0;this._wrappedText=\nnull;this._initialize()}function Va(d,l){Va.base.constructor.call(this,\"Toolbar\",\"toolbar\",l,null,d);this.chart=d;this.canvas=d.canvas;this.ctx=this.chart.ctx;this.optionsName=\"toolbar\"}function Aa(d,l){Aa.base.constructor.call(this,\"Title\",\"title\",l,null,d);this.chart=d;this.canvas=d.canvas;this.ctx=this.chart.ctx;this.optionsName=\"title\";if(p(this.options.margin)&&d.options.subtitles)for(var v=d.options.subtitles,$=0;$<v.length;$++)if((p(v[$].horizontalAlign)&&\"center\"===this.horizontalAlign||v[$].horizontalAlign===\nthis.horizontalAlign)&&(p(v[$].verticalAlign)&&\"top\"===this.verticalAlign||v[$].verticalAlign===this.verticalAlign)&&!v[$].dockInsidePlotArea===!this.dockInsidePlotArea){this.margin=0;break}\"undefined\"===typeof this.options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize));this.height=this.width=null;this.bounds={x1:null,y1:null,x2:null,y2:null}}function Ia(d,l,p){Ia.base.constructor.call(this,\"Subtitle\",\"subtitles\",l,p,d);this.chart=d;this.canvas=d.canvas;this.ctx=this.chart.ctx;\nthis.optionsName=\"subtitles\";this.isOptionsInArray=!0;\"undefined\"===typeof this.options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize));this.height=this.width=null;this.bounds={x1:null,y1:null,x2:null,y2:null}}function Wa(){this.pool=[]}function Ja(d){var l;d&&Ka[d]&&(l=Ka[d]);Ja.base.constructor.call(this,\"CultureInfo\",null,l,null,null)}var Ha=!1,wa={},v=!!document.createElement(\"canvas\").getContext,qa={Chart:{width:500,height:400,zoomEnabled:!1,zoomType:\"x\",backgroundColor:\"white\",\ntheme:\"light1\",animationEnabled:!1,animationDuration:1200,dataPointWidth:null,dataPointMinWidth:null,dataPointMaxWidth:null,colorSet:\"colorSet1\",culture:\"en\",creditText:\"CanvasJS\",interactivityEnabled:!0,exportEnabled:!1,exportFileName:\"Chart\",rangeChanging:null,rangeChanged:null,publicProperties:{title:\"readWrite\",subtitles:\"readWrite\",toolbar:\"readWrite\",toolTip:\"readWrite\",legend:\"readWrite\",axisX:\"readWrite\",axisY:\"readWrite\",axisX2:\"readWrite\",axisY2:\"readWrite\",data:\"readWrite\",options:\"readWrite\",\nbounds:\"readOnly\",container:\"readOnly\",selectedColorSet:\"readOnly\"}},Title:{padding:0,text:null,verticalAlign:\"top\",horizontalAlign:\"center\",fontSize:20,fontFamily:\"Calibri\",fontWeight:\"normal\",fontColor:\"black\",fontStyle:\"normal\",borderThickness:0,borderColor:\"black\",cornerRadius:0,backgroundColor:v?\"transparent\":null,margin:5,wrap:!0,maxWidth:null,dockInsidePlotArea:!1,publicProperties:{options:\"readWrite\",bounds:\"readOnly\",chart:\"readOnly\"}},Subtitle:{padding:0,text:null,verticalAlign:\"top\",horizontalAlign:\"center\",\nfontSize:14,fontFamily:\"Calibri\",fontWeight:\"normal\",fontColor:\"black\",fontStyle:\"normal\",borderThickness:0,borderColor:\"black\",cornerRadius:0,backgroundColor:null,margin:2,wrap:!0,maxWidth:null,dockInsidePlotArea:!1,publicProperties:{options:\"readWrite\",bounds:\"readOnly\",chart:\"readOnly\"}},Toolbar:{itemBackgroundColor:\"white\",itemBackgroundColorOnHover:\"#2196f3\",buttonBorderColor:\"#2196f3\",buttonBorderThickness:1,fontColor:\"black\",fontColorOnHover:\"white\",publicProperties:{options:\"readWrite\",chart:\"readOnly\"}},\nLegend:{name:null,verticalAlign:\"center\",horizontalAlign:\"right\",fontSize:14,fontFamily:\"calibri\",fontWeight:\"normal\",fontColor:\"black\",fontStyle:\"normal\",cursor:null,itemmouseover:null,itemmouseout:null,itemmousemove:null,itemclick:null,dockInsidePlotArea:!1,reversed:!1,backgroundColor:v?\"transparent\":null,borderColor:v?\"transparent\":null,borderThickness:0,cornerRadius:0,maxWidth:null,maxHeight:null,markerMargin:null,itemMaxWidth:null,itemWidth:null,itemWrap:!0,itemTextFormatter:null,publicProperties:{options:\"readWrite\",\nbounds:\"readOnly\",chart:\"readOnly\"}},ToolTip:{enabled:!0,shared:!1,animationEnabled:!0,content:null,contentFormatter:null,reversed:!1,backgroundColor:v?\"rgba(255,255,255,.9)\":\"rgb(255,255,255)\",borderColor:null,borderThickness:2,cornerRadius:5,fontSize:14,fontColor:\"black\",fontFamily:\"Calibri, Arial, Georgia, serif;\",fontWeight:\"normal\",fontStyle:\"italic\",updated:null,hidden:null,publicProperties:{options:\"readWrite\",chart:\"readOnly\"}},Axis:{minimum:null,maximum:null,viewportMinimum:null,viewportMaximum:null,\ninterval:null,intervalType:null,reversed:!1,logarithmic:!1,logarithmBase:10,title:null,titleFontColor:\"black\",titleFontSize:20,titleFontFamily:\"arial\",titleFontWeight:\"normal\",titleFontStyle:\"normal\",titleWrap:!0,titleMaxWidth:null,titleBackgroundColor:v?\"transparent\":null,titleBorderColor:v?\"transparent\":null,titleBorderThickness:0,titleCornerRadius:0,labelAngle:0,labelFontFamily:\"arial\",labelFontColor:\"black\",labelFontSize:12,labelFontWeight:\"normal\",labelFontStyle:\"normal\",labelAutoFit:!0,labelWrap:!0,\nlabelMaxWidth:null,labelFormatter:null,labelBackgroundColor:v?\"transparent\":null,labelBorderColor:v?\"transparent\":null,labelBorderThickness:0,labelCornerRadius:0,labelPlacement:\"outside\",labelTextAlign:\"left\",prefix:\"\",suffix:\"\",includeZero:!1,tickLength:5,tickColor:\"black\",tickThickness:1,tickPlacement:\"outside\",lineColor:\"black\",lineThickness:1,lineDashType:\"solid\",gridColor:\"#A0A0A0\",gridThickness:0,gridDashType:\"solid\",interlacedColor:v?\"transparent\":null,valueFormatString:null,margin:2,publicProperties:{options:\"readWrite\",\nstripLines:\"readWrite\",scaleBreaks:\"readWrite\",crosshair:\"readWrite\",bounds:\"readOnly\",chart:\"readOnly\"}},StripLine:{value:null,startValue:null,endValue:null,color:\"orange\",opacity:null,thickness:2,lineDashType:\"solid\",label:\"\",labelPlacement:\"inside\",labelAlign:\"far\",labelWrap:!0,labelMaxWidth:null,labelBackgroundColor:null,labelBorderColor:v?\"transparent\":null,labelBorderThickness:0,labelCornerRadius:0,labelFontFamily:\"arial\",labelFontColor:\"orange\",labelFontSize:12,labelFontWeight:\"normal\",labelFontStyle:\"normal\",\nlabelFormatter:null,showOnTop:!1,publicProperties:{options:\"readWrite\",axis:\"readOnly\",bounds:\"readOnly\",chart:\"readOnly\"}},ScaleBreaks:{autoCalculate:!1,collapsibleThreshold:\"25%\",maxNumberOfAutoBreaks:2,spacing:8,type:\"straight\",color:\"#FFFFFF\",fillOpacity:0.9,lineThickness:2,lineColor:\"#E16E6E\",lineDashType:\"solid\",publicProperties:{options:\"readWrite\",customBreaks:\"readWrite\",axis:\"readOnly\",autoBreaks:\"readOnly\",bounds:\"readOnly\",chart:\"readOnly\"}},Break:{startValue:null,endValue:null,spacing:8,\ntype:\"straight\",color:\"#FFFFFF\",fillOpacity:0.9,lineThickness:2,lineColor:\"#E16E6E\",lineDashType:\"solid\",publicProperties:{options:\"readWrite\",scaleBreaks:\"readOnly\",bounds:\"readOnly\",chart:\"readOnly\"}},Crosshair:{enabled:!1,snapToDataPoint:!1,color:\"grey\",opacity:null,thickness:2,lineDashType:\"solid\",label:\"\",labelWrap:!0,labelMaxWidth:null,labelBackgroundColor:v?\"grey\":null,labelBorderColor:v?\"grey\":null,labelBorderThickness:0,labelCornerRadius:0,labelFontFamily:v?\"Calibri, Optima, Candara, Verdana, Geneva, sans-serif\":\n\"calibri\",labelFontSize:12,labelFontColor:\"#fff\",labelFontWeight:\"normal\",labelFontStyle:\"normal\",labelFormatter:null,valueFormatString:null,updated:null,hidden:null,publicProperties:{options:\"readWrite\",axis:\"readOnly\",bounds:\"readOnly\",chart:\"readOnly\"}},DataSeries:{name:null,dataPoints:null,label:\"\",bevelEnabled:!1,highlightEnabled:!0,cursor:\"default\",indexLabel:\"\",indexLabelPlacement:\"auto\",indexLabelOrientation:\"horizontal\",indexLabelTextAlign:\"left\",indexLabelFontColor:\"black\",indexLabelFontSize:12,\nindexLabelFontStyle:\"normal\",indexLabelFontFamily:\"Arial\",indexLabelFontWeight:\"normal\",indexLabelBackgroundColor:null,indexLabelLineColor:\"gray\",indexLabelLineThickness:1,indexLabelLineDashType:\"solid\",indexLabelMaxWidth:null,indexLabelWrap:!0,indexLabelFormatter:null,lineThickness:2,lineDashType:\"solid\",connectNullData:!1,nullDataLineDashType:\"dash\",color:null,lineColor:null,risingColor:\"white\",fallingColor:\"red\",fillOpacity:null,startAngle:0,radius:null,innerRadius:null,neckHeight:null,neckWidth:null,\nreversed:!1,valueRepresents:null,linkedDataSeriesIndex:null,whiskerThickness:2,whiskerDashType:\"solid\",whiskerColor:null,whiskerLength:null,stemThickness:2,stemColor:null,stemDashType:\"solid\",upperBoxColor:\"white\",lowerBoxColor:\"white\",type:\"column\",xValueType:\"number\",axisXType:\"primary\",axisYType:\"primary\",axisXIndex:0,axisYIndex:0,xValueFormatString:null,yValueFormatString:null,zValueFormatString:null,percentFormatString:null,showInLegend:null,legendMarkerType:null,legendMarkerColor:null,legendText:null,\nlegendMarkerBorderColor:v?\"transparent\":null,legendMarkerBorderThickness:0,markerType:\"circle\",markerColor:null,markerSize:null,markerBorderColor:v?\"transparent\":null,markerBorderThickness:0,mouseover:null,mouseout:null,mousemove:null,click:null,toolTipContent:null,visible:!0,publicProperties:{options:\"readWrite\",axisX:\"readWrite\",axisY:\"readWrite\",chart:\"readOnly\"}},TextBlock:{x:0,y:0,width:null,height:null,maxWidth:null,maxHeight:null,padding:0,angle:0,text:\"\",horizontalAlign:\"center\",textAlign:\"left\",\nfontSize:12,fontFamily:\"calibri\",fontWeight:\"normal\",fontColor:\"black\",fontStyle:\"normal\",borderThickness:0,borderColor:\"black\",cornerRadius:0,backgroundColor:null,textBaseline:\"top\"},CultureInfo:{decimalSeparator:\".\",digitGroupSeparator:\",\",zoomText:\"Zoom\",panText:\"Pan\",resetText:\"Reset\",menuText:\"More Options\",saveJPGText:\"Save as JPEG\",savePNGText:\"Save as PNG\",printText:\"Print\",days:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),shortDays:\"Sun Mon Tue Wed Thu Fri Sat\".split(\" \"),\nmonths:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \")}},Ka={en:{}},B=v?\"Trebuchet MS, Helvetica, sans-serif\":\"Arial\",Fa=v?\"Impact, Charcoal, sans-serif\":\"Arial\",Ba={colorSet1:\"#4F81BC #C0504E #9BBB58 #23BFAA #8064A1 #4AACC5 #F79647 #7F6084 #77A033 #33558B #E59566\".split(\" \"),colorSet2:\"#6D78AD #51CDA0 #DF7970 #4C9CA0 #AE7D99 #C9D45C #5592AD #DF874D #52BCA8 #8E7AA3 #E3CB64 #C77B85 #C39762 #8DD17E #B57952 #FCC26C\".split(\" \"),\ncolorSet3:\"#8CA1BC #36845C #017E82 #8CB9D0 #708C98 #94838D #F08891 #0366A7 #008276 #EE7757 #E5BA3A #F2990B #03557B #782970\".split(\" \")},I,ca,O,W,X;ca=\"#333333\";O=\"#000000\";I=\"#666666\";X=W=\"#000000\";var ea=20,t=14,Xa={colorSet:\"colorSet1\",backgroundColor:\"#FFFFFF\",title:{fontFamily:Fa,fontSize:32,fontColor:ca,fontWeight:\"normal\",verticalAlign:\"top\",margin:5},subtitles:[{fontFamily:Fa,fontSize:t,fontColor:ca,fontWeight:\"normal\",verticalAlign:\"top\",margin:5}],data:[{indexLabelFontFamily:B,indexLabelFontSize:t,\nindexLabelFontColor:ca,indexLabelFontWeight:\"normal\",indexLabelLineThickness:1}],axisX:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:ca,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:0,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,\nlabelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,lineDashType:\"solid\"}}],axisX2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:ca,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:0,gridColor:I,stripLines:[{labelFontFamily:B,\nlabelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,lineDashType:\"solid\"}}],axisY:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:ca,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,\nlabelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:1,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,\nlineDashType:\"solid\"}}],axisY2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:ca,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:1,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",\nlabelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,lineDashType:\"solid\"}}],legend:{fontFamily:B,fontSize:14,fontColor:ca,fontWeight:\"bold\",verticalAlign:\"bottom\",horizontalAlign:\"center\"},toolTip:{fontFamily:B,fontSize:14,fontStyle:\"normal\",cornerRadius:0,borderThickness:1},toolbar:{itemBackgroundColor:\"white\",itemBackgroundColorOnHover:\"#2196f3\",buttonBorderColor:\"#2196f3\",buttonBorderThickness:1,fontColor:\"black\",\nfontColorOnHover:\"white\"}};O=ca=\"#F5F5F5\";I=\"#FFFFFF\";W=\"#40BAF1\";X=\"#F5F5F5\";var ea=20,t=14,cb={colorSet:\"colorSet2\",title:{fontFamily:B,fontSize:33,fontColor:\"#3A3A3A\",fontWeight:\"bold\",verticalAlign:\"top\",margin:5},subtitles:[{fontFamily:B,fontSize:t,fontColor:\"#3A3A3A\",fontWeight:\"normal\",verticalAlign:\"top\",margin:5}],data:[{indexLabelFontFamily:B,indexLabelFontSize:t,indexLabelFontColor:\"#666666\",indexLabelFontWeight:\"normal\",indexLabelLineThickness:1}],axisX:[{titleFontFamily:B,titleFontSize:ea,\ntitleFontColor:\"#666666\",titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:\"#666666\",labelFontWeight:\"normal\",lineThickness:1,lineColor:\"#BBBBBB\",tickThickness:1,tickColor:\"#BBBBBB\",gridThickness:1,gridColor:\"#BBBBBB\",stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FFA500\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FFA500\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:\"black\",\ncolor:\"black\",thickness:1,lineDashType:\"dot\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,lineDashType:\"solid\"}}],axisX2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:\"#666666\",titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:\"#666666\",labelFontWeight:\"normal\",lineThickness:1,lineColor:\"#BBBBBB\",tickColor:\"#BBBBBB\",tickThickness:1,gridThickness:1,gridColor:\"#BBBBBB\",stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FFA500\",\nlabelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FFA500\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:\"black\",color:\"black\",thickness:1,lineDashType:\"dot\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,lineDashType:\"solid\"}}],axisY:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:\"#666666\",titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:\"#666666\",\nlabelFontWeight:\"normal\",lineThickness:0,lineColor:\"#BBBBBB\",tickColor:\"#BBBBBB\",tickThickness:1,gridThickness:1,gridColor:\"#BBBBBB\",stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FFA500\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FFA500\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:\"black\",color:\"black\",thickness:1,lineDashType:\"dot\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",\nlineThickness:1,lineDashType:\"solid\"}}],axisY2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:\"#666666\",titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:\"#666666\",labelFontWeight:\"normal\",lineThickness:0,lineColor:\"#BBBBBB\",tickColor:\"#BBBBBB\",tickThickness:1,gridThickness:1,gridColor:\"#BBBBBB\",stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FFA500\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FFA500\",thickness:1}],crosshair:{labelFontFamily:B,\nlabelFontSize:t,labelFontColor:\"#EEEEEE\",labelFontWeight:\"normal\",labelBackgroundColor:\"black\",color:\"black\",thickness:1,lineDashType:\"dot\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#BBBBBB\",lineThickness:1,lineDashType:\"solid\"}}],legend:{fontFamily:B,fontSize:14,fontColor:\"#3A3A3A\",fontWeight:\"bold\",verticalAlign:\"bottom\",horizontalAlign:\"center\"},toolTip:{fontFamily:B,fontSize:14,fontStyle:\"normal\",cornerRadius:0,borderThickness:1},toolbar:{itemBackgroundColor:\"white\",itemBackgroundColorOnHover:\"#2196f3\",\nbuttonBorderColor:\"#2196f3\",buttonBorderThickness:1,fontColor:\"black\",fontColorOnHover:\"white\"}};O=ca=\"#F5F5F5\";I=\"#FFFFFF\";W=\"#40BAF1\";X=\"#F5F5F5\";ea=20;t=14;Fa={colorSet:\"colorSet12\",backgroundColor:\"#2A2A2A\",title:{fontFamily:Fa,fontSize:32,fontColor:ca,fontWeight:\"normal\",verticalAlign:\"top\",margin:5},subtitles:[{fontFamily:Fa,fontSize:t,fontColor:ca,fontWeight:\"normal\",verticalAlign:\"top\",margin:5}],toolbar:{itemBackgroundColor:\"#666666\",itemBackgroundColorOnHover:\"#FF7372\",buttonBorderColor:\"#FF7372\",\nbuttonBorderThickness:1,fontColor:\"#F5F5F5\",fontColorOnHover:\"#F5F5F5\"},data:[{indexLabelFontFamily:B,indexLabelFontSize:t,indexLabelFontColor:O,indexLabelFontWeight:\"normal\",indexLabelLineThickness:1}],axisX:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:0,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",\nlabelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],axisX2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",\nlineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:0,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],\naxisY:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:1,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,\ncolor:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],axisY2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:1,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,\ncolor:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],legend:{fontFamily:B,fontSize:14,fontColor:ca,fontWeight:\"bold\",verticalAlign:\"bottom\",horizontalAlign:\"center\"},toolTip:{fontFamily:B,fontSize:14,fontStyle:\"normal\",cornerRadius:0,borderThickness:1,\nfontColor:O,backgroundColor:\"rgba(0, 0, 0, .7)\"}};I=\"#FFFFFF\";O=ca=\"#FAFAFA\";W=\"#40BAF1\";X=\"#F5F5F5\";var ea=20,t=14,Oa={light1:Xa,light2:cb,dark1:Fa,dark2:{colorSet:\"colorSet2\",backgroundColor:\"#32373A\",title:{fontFamily:B,fontSize:32,fontColor:ca,fontWeight:\"normal\",verticalAlign:\"top\",margin:5},subtitles:[{fontFamily:B,fontSize:t,fontColor:ca,fontWeight:\"normal\",verticalAlign:\"top\",margin:5}],toolbar:{itemBackgroundColor:\"#666666\",itemBackgroundColorOnHover:\"#FF7372\",buttonBorderColor:\"#FF7372\",\nbuttonBorderThickness:1,fontColor:\"#F5F5F5\",fontColorOnHover:\"#F5F5F5\"},data:[{indexLabelFontFamily:B,indexLabelFontSize:t,indexLabelFontColor:O,indexLabelFontWeight:\"normal\",indexLabelLineThickness:1}],axisX:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:0,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",\nlabelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],axisX2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",\nlineThickness:1,lineColor:I,tickThickness:1,tickColor:I,gridThickness:0,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],\naxisY:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:0,lineColor:I,tickThickness:1,tickColor:I,gridThickness:1,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,color:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,\ncolor:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],axisY2:[{titleFontFamily:B,titleFontSize:ea,titleFontColor:O,titleFontWeight:\"normal\",labelFontFamily:B,labelFontSize:t,labelFontColor:O,labelFontWeight:\"normal\",lineThickness:0,lineColor:I,tickThickness:1,tickColor:I,gridThickness:1,gridColor:I,stripLines:[{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#FF7300\",labelFontWeight:\"normal\",labelBackgroundColor:null,\ncolor:\"#FF7300\",thickness:1}],crosshair:{labelFontFamily:B,labelFontSize:t,labelFontColor:\"#000000\",labelFontWeight:\"normal\",labelBackgroundColor:X,color:W,thickness:1,lineDashType:\"dash\"},scaleBreaks:{type:\"zigzag\",spacing:\"2%\",lineColor:\"#777777\",lineThickness:1,lineDashType:\"solid\",color:\"#111111\"}}],legend:{fontFamily:B,fontSize:14,fontColor:ca,fontWeight:\"bold\",verticalAlign:\"bottom\",horizontalAlign:\"center\"},toolTip:{fontFamily:B,fontSize:14,fontStyle:\"normal\",cornerRadius:0,borderThickness:1,\nfontColor:O,backgroundColor:\"rgba(0, 0, 0, .7)\"}},theme1:Xa,theme2:cb,theme3:Xa},U={numberDuration:1,yearDuration:314496E5,monthDuration:2592E6,weekDuration:6048E5,dayDuration:864E5,hourDuration:36E5,minuteDuration:6E4,secondDuration:1E3,millisecondDuration:1,dayOfWeekFromInt:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \")};(function(){wa.fSDec=function(d){for(var l=\"\",p=0;p<d.length;p++)l+=String.fromCharCode(Math.ceil(d.length/57/5)^d.charCodeAt(p));return l};delete qa[wa.fSDec(\"Bi`su\")][wa.fSDec(\"bsdehuIsdg\")];\nwa.pro={sCH:qa[wa.fSDec(\"Bi`su\")][wa.fSDec(\"bsdehuIsdg\")]}})();var gb=function(){var d=!1;try{var l=Object.defineProperty&&Object.defineProperty({},\"passive\",{get:function(){d=!0;return!1}});window.addEventListener&&(window.addEventListener(\"test\",null,l),window.removeEventListener(\"test\",null,l))}catch(p){d=!1}return d}(),$a={},sa=null,lb=function(){this.ctx.clearRect(0,0,this.width,this.height);this.backgroundColor&&(this.ctx.fillStyle=this.backgroundColor,this.ctx.fillRect(0,0,this.width,this.height))},\nya=function(d){d.width=1;d.height=1;d.getContext(\"2d\")&&d.getContext(\"2d\").clearRect(0,0,1,1)},mb=function(d,l,p){l=Math.min(this.width,this.height);return Math.max(\"theme4\"===this.theme?0:300<=l?12:11,Math.round(l*(d/400)))},Ca=function(){var d=/D{1,4}|M{1,4}|Y{1,4}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|f{1,3}|t{1,2}|T{1,2}|K|z{1,3}|\"[^\"]*\"|'[^']*'/g,l=\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),p=\"Sun Mon Tue Wed Thu Fri Sat\".split(\" \"),v=\"January February March April May June July August September October November December\".split(\" \"),\nia=\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),B=/\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,E=/[^-+\\dA-Z]/g;return function(t,H,P){var I=P?P.days:l,T=P?P.months:v,V=P?P.shortDays:p,U=P?P.shortMonths:ia;P=\"\";var Z=!1;t=t&&t.getTime?t:t?new Date(t):new Date;if(isNaN(t))throw SyntaxError(\"invalid date\");\"UTC:\"===H.slice(0,4)&&(H=H.slice(4),Z=!0);P=Z?\"getUTC\":\"get\";var K=t[P+\"Date\"](),N=t[P+\"Day\"](),\nY=t[P+\"Month\"](),a=t[P+\"FullYear\"](),e=t[P+\"Hours\"](),c=t[P+\"Minutes\"](),b=t[P+\"Seconds\"](),f=t[P+\"Milliseconds\"](),h=Z?0:t.getTimezoneOffset();return P=H.replace(d,function(r){switch(r){case \"D\":return K;case \"DD\":return da(K,2);case \"DDD\":return V[N];case \"DDDD\":return I[N];case \"M\":return Y+1;case \"MM\":return da(Y+1,2);case \"MMM\":return U[Y];case \"MMMM\":return T[Y];case \"Y\":return parseInt(String(a).slice(-2));case \"YY\":return da(String(a).slice(-2),2);case \"YYY\":return da(String(a).slice(-3),\n3);case \"YYYY\":return da(a,4);case \"h\":return e%12||12;case \"hh\":return da(e%12||12,2);case \"H\":return e;case \"HH\":return da(e,2);case \"m\":return c;case \"mm\":return da(c,2);case \"s\":return b;case \"ss\":return da(b,2);case \"f\":return da(String(f),3).slice(0,1);case \"ff\":return da(String(f),3).slice(0,2);case \"fff\":return da(String(f),3).slice(0,3);case \"t\":return 12>e?\"a\":\"p\";case \"tt\":return 12>e?\"am\":\"pm\";case \"T\":return 12>e?\"A\":\"P\";case \"TT\":return 12>e?\"AM\":\"PM\";case \"K\":return Z?\"UTC\":(String(t).match(B)||\n[\"\"]).pop().replace(E,\"\");case \"z\":return(0<h?\"-\":\"+\")+Math.floor(Math.abs(h)/60);case \"zz\":return(0<h?\"-\":\"+\")+da(Math.floor(Math.abs(h)/60),2);case \"zzz\":return(0<h?\"-\":\"+\")+da(Math.floor(Math.abs(h)/60),2)+da(Math.abs(h)%60,2);default:return r.slice(1,r.length-1)}})}}(),nb=function(d){var l=0>d;if(1>Math.abs(d)){var p=parseInt(d.toString().split(\"e-\")[1]);p&&(d=(l?-1*d:d)*Math.pow(10,p-1),d=\"0.\"+Array(p).join(\"0\")+d.toString().substring(2),d=l?\"-\"+d:d)}else p=parseInt(d.toString().split(\"+\")[1]),\n20<p&&(p-=20,d/=Math.pow(10,p),d=d.toString()+Array(p+1).join(\"0\"));return String(d)},fa=function(d,l,p){if(null===d)return\"\";if(!isFinite(d))return d;d=Number(d);var v=0>d?!0:!1;v&&(d*=-1);var B=p?p.decimalSeparator:\".\",t=p?p.digitGroupSeparator:\",\",E=\"\";l=String(l);var E=1,H=p=\"\",I=-1,P=[],T=[],V=0,U=0,Z=0,K=!1,O=0,H=l.match(/\"[^\"]*\"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\\u2030|./g);l=null;for(var N=0;H&&N<H.length;N++)if(l=H[N],\".\"===l&&0>I)I=N;else{if(\"%\"===l)E*=100;else if(\"\\u2030\"===l){E*=1E3;continue}else if(\",\"===\nl[0]&&\".\"===l[l.length-1]){E/=Math.pow(1E3,l.length-1);I=N+l.length-1;continue}else\"E\"!==l[0]&&\"e\"!==l[0]||\"0\"!==l[l.length-1]||(K=!0);0>I?(P.push(l),\"#\"===l||\"0\"===l?V++:\",\"===l&&Z++):(T.push(l),\"#\"!==l&&\"0\"!==l||U++)}K&&(l=Math.floor(d),H=-Math.floor(Math.log(d)/Math.LN10+1),O=0===d?0:0===l?-(V+H):nb(l).length-V,E/=Math.pow(10,O));0>I&&(I=N);E=(d*E).toFixed(U);l=E.split(\".\");E=(l[0]+\"\").split(\"\");d=(l[1]+\"\").split(\"\");E&&\"0\"===E[0]&&E.shift();for(K=H=N=U=I=0;0<P.length;)if(l=P.pop(),\"#\"===l||\"0\"===\nl)if(I++,I===V){var Y=E,E=[];if(\"0\"===l)for(l=V-U-(Y?Y.length:0);0<l;)Y.unshift(\"0\"),l--;for(;0<Y.length;)p=Y.pop()+p,K++,0===K%H&&(N===Z&&0<Y.length)&&(p=t+p)}else 0<E.length?(p=E.pop()+p,U++,K++):\"0\"===l&&(p=\"0\"+p,U++,K++),0===K%H&&(N===Z&&0<E.length)&&(p=t+p);else\"E\"!==l[0]&&\"e\"!==l[0]||\"0\"!==l[l.length-1]||!/[eE][+-]*[0]+/.test(l)?\",\"===l?(N++,H=K,K=0,0<E.length&&(p=t+p)):p=1<l.length&&('\"'===l[0]&&'\"'===l[l.length-1]||\"'\"===l[0]&&\"'\"===l[l.length-1])?l.slice(1,l.length-1)+p:l+p:(l=0>O?l.replace(\"+\",\n\"\").replace(\"-\",\"\"):l.replace(\"-\",\"\"),p+=l.replace(/[0]+/,function(a){return da(O,a.length)}));t=\"\";for(P=!1;0<T.length;)l=T.shift(),\"#\"===l||\"0\"===l?0<d.length&&0!==Number(d.join(\"\"))?(t+=d.shift(),P=!0):\"0\"===l&&(t+=\"0\",P=!0):1<l.length&&('\"'===l[0]&&'\"'===l[l.length-1]||\"'\"===l[0]&&\"'\"===l[l.length-1])?t+=l.slice(1,l.length-1):\"E\"!==l[0]&&\"e\"!==l[0]||\"0\"!==l[l.length-1]||!/[eE][+-]*[0]+/.test(l)?t+=l:(l=0>O?l.replace(\"+\",\"\").replace(\"-\",\"\"):l.replace(\"-\",\"\"),t+=l.replace(/[0]+/,function(a){return da(O,\na.length)}));p+=(P?B:\"\")+t;return v?\"-\"+p:p},Pa=function(d){var l=0,p=0;d=d||window.event;d.offsetX||0===d.offsetX?(l=d.offsetX,p=d.offsetY):d.layerX||0==d.layerX?(l=d.layerX,p=d.layerY):(l=d.pageX-d.target.offsetLeft,p=d.pageY-d.target.offsetTop);return{x:l,y:p}},bb=!0,Ta=window.devicePixelRatio||1,Na=1,ma=bb?Ta/Na:1,ba=function(d,l,p,v,t,B,E,H,I,P,T,U,V){\"undefined\"===typeof V&&(V=1);E=E||0;H=H||\"black\";var K=15<v-l&&15<t-p?8:0.35*Math.min(v-l,t-p);d.beginPath();d.moveTo(l,p);d.save();d.fillStyle=\nB;d.globalAlpha=V;d.fillRect(l,p,v-l,t-p);d.globalAlpha=1;0<E&&(V=0===E%2?0:0.5,d.beginPath(),d.lineWidth=E,d.strokeStyle=H,d.moveTo(l,p),d.rect(l-V,p-V,v-l+2*V,t-p+2*V),d.stroke());d.restore();!0===I&&(d.save(),d.beginPath(),d.moveTo(l,p),d.lineTo(l+K,p+K),d.lineTo(v-K,p+K),d.lineTo(v,p),d.closePath(),E=d.createLinearGradient((v+l)/2,p+K,(v+l)/2,p),E.addColorStop(0,B),E.addColorStop(1,\"rgba(255, 255, 255, .4)\"),d.fillStyle=E,d.fill(),d.restore());!0===P&&(d.save(),d.beginPath(),d.moveTo(l,t),d.lineTo(l+\nK,t-K),d.lineTo(v-K,t-K),d.lineTo(v,t),d.closePath(),E=d.createLinearGradient((v+l)/2,t-K,(v+l)/2,t),E.addColorStop(0,B),E.addColorStop(1,\"rgba(255, 255, 255, .4)\"),d.fillStyle=E,d.fill(),d.restore());!0===T&&(d.save(),d.beginPath(),d.moveTo(l,p),d.lineTo(l+K,p+K),d.lineTo(l+K,t-K),d.lineTo(l,t),d.closePath(),E=d.createLinearGradient(l+K,(t+p)/2,l,(t+p)/2),E.addColorStop(0,B),E.addColorStop(1,\"rgba(255, 255, 255, 0.1)\"),d.fillStyle=E,d.fill(),d.restore());!0===U&&(d.save(),d.beginPath(),d.moveTo(v,\np),d.lineTo(v-K,p+K),d.lineTo(v-K,t-K),d.lineTo(v,t),E=d.createLinearGradient(v-K,(t+p)/2,v,(t+p)/2),E.addColorStop(0,B),E.addColorStop(1,\"rgba(255, 255, 255, 0.1)\"),d.fillStyle=E,E.addColorStop(0,B),E.addColorStop(1,\"rgba(255, 255, 255, 0.1)\"),d.fillStyle=E,d.fill(),d.closePath(),d.restore())},ja=function(d){for(var p=\"\",v=0;v<d.length;v++)p+=String.fromCharCode(Math.ceil(d.length/57/5)^d.charCodeAt(v));return p},jb=window&&(window[ja(\"mnb`uhno\")]&&window[ja(\"mnb`uhno\")].href&&window[ja(\"mnb`uhno\")].href.indexOf&&\n(-1!==window[ja(\"mnb`uhno\")].href.indexOf(ja(\"b`ow`rkr/bnl\"))||-1!==window[ja(\"mnb`uhno\")].href.indexOf(ja(\"gdonqhy/bnl\"))||-1!==window[ja(\"mnb`uhno\")].href.indexOf(ja(\"gheemd\"))))&&-1===window[ja(\"mnb`uhno\")].href.indexOf(ja(\"gheemd\")),kb={reset:{image:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAeCAYAAABJ/8wUAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPjSURBVFhHxVdJaFNRFP1J/jwkP5MxsbaC1WJEglSxOFAXIsFpVRE3ggi1K90obioRRBA33XXnQnciirhQcMCdorgQxBkXWlREkFKsWkv5npvckp/XnzRpKh64kLw733fffe9L/wrL0+mVUdO8uTSZ3MBL/we2qg4rkuSpodCELstXE46ziVkLQ6FQcGOmeSSq6wd4aV50d3drWjj8kQKZJTUc9kxFGenv79dZrDksTSTWWJp2QYtEPiErysyzdX0LsxsCQR8keX8gs6RHIk8ysdgKFg2G53mhuOPsshTlBjKaFo1g7SqLNoShKLdFXT8huQ/paLSbxatYnc2mHMM4hr18Vi8TIvCmXF3vYrW6cF23gGTOk0M1wA4RKvOmq6vLZRVJipvmSWT6tZ6CSEYkco5V50VPT4+D7RwOqi6RiSZm0fJ+vggSqkeoypdsNmuyelNwbXsbgvkWYMtzDWNvWaijoyOBqE+hVK8abcssUeXQ/YfKyi0gFYv1Ipgfoj34fYGTJLOYJA0ODirok32GLN8XhUWCwSes1hIwBg6LydJ/tEeRRapAdUp+wSAiZchtZZWWgAZ+JNpD8peYXQVK9UwUxNpzOK8pq97kURZhYTCKBwPD7h2zK+js7Myi7D8Fod+0TkMI8+EMAngLGc/WtBFWawkFHFnoj/t9KLgGmF0B3QfkxC+EarxkdhnFYlFLY06USqUwL7UMjICHfh/wOc2sCqhpxGbCkLvL7EUDbF73+6DkmVWB6zi7xUDQSLeYvWjAILvm9zEnkJhlbRcDQZcv6Kg2AipyT/Axw6wKlqVSqxDdjF8Izfod13qURdrG/nxehY+xGh+h0CSzKygGvSNQIcc097BI24jb9hax6kj2E7OrMFX1il+ICEf2NrPbhiXLl+fYl+U7zK4iYdsDcyLGf+ofFlkwcN+s10KhmpuYhhtm0hCLVIFL0MDsqNlDIqy9x2CLs1jL6OvrI7vPRbtohXG6eFmsFnHDGAp6n9AgyuVySRZrGvROxRgIfLXhzjrNYnNBUxNX/dMgRWT1mt4XLDovaApD53E9W3ilNX5M55LJHpRtIsgAvciR4WWcgK2Dvb1YqgXevmF8z2zEBTcKG39EfSKsT9EbhVUaI2FZO+oZIqImxol6j66/hcAu4sSN4vc1ZPoKeoE6RGhYL2YYA+ymOSSi0Z0wWntbtkGUWCvfSDXIxONraZ/FY90KUfNTpfC5spnNLgxoYNnR9RO4F8ofXEHOgogCQE99w+fF2Xw+b7O59rEOsyRqGEfpVoaDMQQ1CZrG46bcM6AZ0C/wPqNfHliqejyTySxh9TqQpL+xmbIlkB9SlAAAAABJRU5ErkJggg==\"},\npan:{image:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAICSURBVEhLxZbPahNRGMUn/5MpuAiBEAIufQGfzr5E40YptBXajYzudCEuGqS+gGlrFwquDGRTutBdYfydzJ3LzeQmJGZue+Dw/Z17Mnfmu5Pof9Hr9Z61Wq0bWZMKj263O6xWq99wU9lOpzPMKgEhEcRucNOcioOK+0RzBhNvt9tPV4nmVF19+OWhVqt9xXgFXZq+8lCv119UKpUJ7iX2FmvFTKz8RH34YdBsNk8wVtjE4fGYwm8wrrDi3WBG5oKXZGRSS9hGuNFojLTe2lFz5xThWZIktayyiE2FdT3rzXBXz7krKiL8c17wAKFDjCus2AvW+YGZ9y2JF0VFRuMPfI//rsCE/C+s26s4gQu9ul7r4NteKx7H8XOC724xNNGbaNu++IrBqbOV7Tj3FgMRvc/YKOr3+3sE47wgEt/Bl/gaK5cHbNU11vYSXylfpK7XOvjuumPp4Wcoipu30Qsez2uMXYz4lfI+mOmwothY+SLiXJy7mKVpWs3Si0CoOMfeI9Od43Wic+jO+ZVv+crsm9QSNhUW9LXSeoPBYLXopthGuFQgdIxxhY+UDwlt1x5CZ1hX+NTUdt/OIvjKaDSmuOJfaIVNPKX+W18j/PLA2/kR44p5Sd8HbHngT/yTfNRWUXX14ZcL3wmX0+TLf8YO7CGT8yFE5zB3/gney25/OETRP9CtPDFe5jShAAAAAElFTkSuQmCC\"},\nzoom:{image:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALWSURBVEhLvZZLaBNRFIabyftBIgEfqCCBoCC6MYqiXYiIj4U76U4X7sUHbhQhUBfixhZEUBDB16YuFERaUaQLK7ooCOJj4UKtYEFU0EptShO/A9Ph3js3k8lo/eHnP7n3nP/M3LlzMz1hkUwmNziOcyKRSFyFt+LxeD/c2Wq1Ym7Kv0M2m11Os1OxWGycn1OwZXCGuXfwIhezkd9/jRgNT2L4ldhs1pbkX5OLJe4euVxuGQaPCa3mnUjtJx7BDuKusJTCV6jVVGHTMuYRjxma7yIOhTgFY6jNaAKew2xPKpVay9ganmkvj+M448/MfJdT5K5Gg4HJacRngPFgqVRaRNwW1B4i7yehWfsEDdz1K+A01AoxPIqGAiuwGfkOTY8+1A6u7AyiFTB2Hu0KPIrdiOnzHLWDybeImvy+Wq2mZa5bUHsD0Zpz+KxHdWQymV6kAb1ElqeORgJLvgnRdj1+R1AfzkIvSUjxVjQSarVakrueIPT8+H1F5jSUy+WXiJrUYBVWyVxU4PEU8TzhfaijUqnMIWrjaY492eWRwdKOIqrnIxnXwLLeRLwk2GQzrEMjg0avEbXxkIxr4OoOImpj2QwyFgms1koa/SZUG8s+0iGnEhNfCNXEhzIXBVz0McTzEvJ+70P9oNFtxEzei3aFYrFYxmuSUPWSv9Yi9IMm2xE1We56Mp1OV4nDwqFmBDV9gk9AEh4gZtFHNt8W4kAUCoXF5MorY9Z/kDni9nDv7hc0i2fhgLvTtX8a99PoMPPagTFPxofRzmDJ9yM+AyEmTfgGysYbQcfhDzPPJDmX0c7gDg4gs9BqFIWhm/Nct5H8gtBq1I7UfIbtvmIuoaGQcp+fdpbbSM43eEH5wrwLbXmhm/fU63VHXjcuok7hEByFY/AeHGC8L5/PL3HT5xGH1uYwfPOICGo+CBcU0vwO1BqzUqILDl/z/9VYIMfpddiAc47jDP8BsUpb13wOLRwAAAAASUVORK5CYII=\"},\nmenu:{image:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAeCAYAAABE4bxTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADoSURBVFhH7dc9CsJAFATgRxIIBCwCqZKATX5sbawsY2MvWOtF9AB6AU8gguAJbD2AnZ2VXQT/Ko2TYGCL2OYtYQc+BuYA+1hCtnCVwMm27SGaXpDJIAiCvCkVR05hGOZNN3HkFMdx3nQRR06+76/R1IcFLJlNQEWlmWlBTwJtKLKHynehZqnjOGM0PYWRVXk61C37p7xlZ3Hk5HneCk1dmMH811xGoKLSzDiQwIBZB4ocoPJdqNkDt2yKlueWRVGUtzy3rPwo3sWRU3nLjuLI6OO67oZM00wMw3hrmpZx0XU9syxrR0T0BeMpb9dneSR2AAAAAElFTkSuQmCC\"}};\nK.prototype.setOptions=function(d,p){if(qa[this._defaultsKey]){var v=qa[this._defaultsKey],t;for(t in v)\"publicProperties\"!==t&&v.hasOwnProperty(t)&&(this[t]=d&&t in d?d[t]:p&&t in p?p[t]:v[t])}else Ha&&window.console&&console.log(\"defaults not set\")};K.prototype.get=function(d){var p=qa[this._defaultsKey];if(\"options\"===d)return this.options&&this.options._isPlaceholder?null:this.options;if(p.hasOwnProperty(d)||p.publicProperties&&p.publicProperties.hasOwnProperty(d))return this[d];window.console&&\nwindow.console.log('Property \"'+d+\"\\\" doesn't exist. Please check for typo.\")};K.prototype.set=function(d,p,v){v=\"undefined\"===typeof v?!0:v;var t=qa[this._defaultsKey];if(\"options\"===d)this.createUserOptions(p);else if(t.hasOwnProperty(d)||t.publicProperties&&t.publicProperties.hasOwnProperty(d)&&\"readWrite\"===t.publicProperties[d])this.options._isPlaceholder&&this.createUserOptions(),this.options[d]=p;else{window.console&&(t.publicProperties&&t.publicProperties.hasOwnProperty(d)&&\"readOnly\"===t.publicProperties[d]?\nwindow.console.log('Property \"'+d+'\" is read-only.'):window.console.log('Property \"'+d+\"\\\" doesn't exist. Please check for typo.\"));return}v&&(this.stockChart||this.chart||this).render()};K.prototype.addTo=function(d,p,v,t){t=\"undefined\"===typeof t?!0:t;var B=qa[this._defaultsKey];B.hasOwnProperty(d)||B.publicProperties&&B.publicProperties.hasOwnProperty(d)&&\"readWrite\"===B.publicProperties[d]?(this.options._isPlaceholder&&this.createUserOptions(),\"undefined\"===typeof this.options[d]&&(this.options[d]=\n[]),d=this.options[d],v=\"undefined\"===typeof v||null===v?d.length:v,d.splice(v,0,p),t&&(this.stockChart||this.chart||this).render()):window.console&&(B.publicProperties&&B.publicProperties.hasOwnProperty(d)&&\"readOnly\"===B.publicProperties[d]?window.console.log('Property \"'+d+'\" is read-only.'):window.console.log('Property \"'+d+\"\\\" doesn't exist. Please check for typo.\"))};K.prototype.createUserOptions=function(d){if(\"undefined\"!==typeof d||this.options._isPlaceholder)if(this.parent.options._isPlaceholder&&\nthis.parent.createUserOptions(),this.isOptionsInArray){this.parent.options[this.optionsName]||(this.parent.options[this.optionsName]=[]);var p=this.parent.options[this.optionsName],v=p.length;this.options._isPlaceholder||(Da(p),v=p.indexOf(this.options));this.options=\"undefined\"===typeof d?{}:d;p[v]=this.options}else this.options=\"undefined\"===typeof d?{}:d,d=this.parent.options,this.optionsName?p=this.optionsName:(p=this._defaultsKey)&&0!==p.length?(v=p.charAt(0).toLowerCase(),1<p.length&&(v=v.concat(p.slice(1))),\np=v):p=void 0,d[p]=this.options};K.prototype.remove=function(d){d=\"undefined\"===typeof d?!0:d;if(this.isOptionsInArray){var p=this.parent.options[this.optionsName];Da(p);var v=p.indexOf(this.options);0<=v&&p.splice(v,1)}else delete this.parent.options[this.optionsName];d&&(this.stockChart||this.chart||this).render()};K.prototype.updateOption=function(d){!qa[this._defaultsKey]&&(Ha&&window.console)&&console.log(\"defaults not set\");var l=qa[this._defaultsKey],v={},t=this[d],B=this._themeOptionsKey,\nH=this._index;this.theme&&p(this.parent)&&p(B)&&p(H)?v=p(this.predefinedThemes[this.theme])?this.predefinedThemes.light1:this.predefinedThemes[this.theme]:this.parent&&this.parent.themeOptions&&(this.options.theme&&Oa[this.options.theme]?v=Oa[this.options.theme]:this.parent.themeOptions[B]&&(null===H?v=this.parent.themeOptions[B]:0<this.parent.themeOptions[B].length&&(v=Math.min(this.parent.themeOptions[B].length-1,H),v=this.parent.themeOptions[B][v])));this.themeOptions=v;d in l&&(t=d in this.options?\nthis.options[d]:v&&d in v?v[d]:l[d]);if(t===this[d])return!1;this[d]=t;return!0};K.prototype.trackChanges=function(d){if(!this.sessionVariables)throw\"Session Variable Store not set\";this.sessionVariables[d]=this.options[d]};K.prototype.isBeingTracked=function(d){this.options._oldOptions||(this.options._oldOptions={});return this.options._oldOptions[d]?!0:!1};K.prototype.hasOptionChanged=function(d){if(!this.sessionVariables)throw\"Session Variable Store not set\";return this.sessionVariables[d]!==this.options[d]};\nK.prototype.addEventListener=function(d,p,v){d&&p&&(this._eventListeners[d]=this._eventListeners[d]||[],this._eventListeners[d].push({context:v||this,eventHandler:p}))};K.prototype.removeEventListener=function(d,p){if(d&&p&&this._eventListeners[d])for(var v=this._eventListeners[d],t=0;t<v.length;t++)if(v[t].eventHandler===p){v[t].splice(t,1);break}};K.prototype.removeAllEventListeners=function(){this._eventListeners=[]};K.prototype.dispatchEvent=function(d,p,v){if(d&&this._eventListeners[d]){p=p||\n{};for(var t=this._eventListeners[d],B=0;B<t.length;B++)t[B].eventHandler.call(t[B].context,p)}\"function\"===typeof this[d]&&this[d].call(v||this.chart,p)};Ea.prototype.registerSpace=function(d,p){\"top\"===d?this._topOccupied+=p.height:\"bottom\"===d?this._bottomOccupied+=p.height:\"left\"===d?this._leftOccupied+=p.width:\"right\"===d&&(this._rightOccupied+=p.width)};Ea.prototype.unRegisterSpace=function(d,p){\"top\"===d?this._topOccupied-=p.height:\"bottom\"===d?this._bottomOccupied-=p.height:\"left\"===d?this._leftOccupied-=\np.width:\"right\"===d&&(this._rightOccupied-=p.width)};Ea.prototype.getFreeSpace=function(){return{x1:this._x1+this._leftOccupied,y1:this._y1+this._topOccupied,x2:this._x2-this._rightOccupied,y2:this._y2-this._bottomOccupied,width:this._x2-this._x1-this._rightOccupied-this._leftOccupied,height:this._y2-this._y1-this._bottomOccupied-this._topOccupied}};Ea.prototype.reset=function(){this._rightOccupied=this._leftOccupied=this._bottomOccupied=this._topOccupied=this._padding};pa(ka,K);ka.prototype._initialize=\nfunction(){p(this.padding)||\"object\"!==typeof this.padding?this.topPadding=this.rightPadding=this.bottomPadding=this.leftPadding=Number(this.padding)|0:(this.topPadding=p(this.padding.top)?0:Number(this.padding.top)|0,this.rightPadding=p(this.padding.right)?0:Number(this.padding.right)|0,this.bottomPadding=p(this.padding.bottom)?0:Number(this.padding.bottom)|0,this.leftPadding=p(this.padding.left)?0:Number(this.padding.left)|0)};ka.prototype.render=function(d){if(0!==this.fontSize){d&&this.ctx.save();\nvar p=this.ctx.font;this.ctx.textBaseline=this.textBaseline;var v=0;this._isDirty&&this.measureText(this.ctx);this.ctx.translate(this.x,this.y+v);\"middle\"===this.textBaseline&&(v=-this._lineHeight/2);this.ctx.font=this._getFontString();this.ctx.rotate(Math.PI/180*this.angle);var t=0,B=this.topPadding,H=null;this.ctx.roundRect||za(this.ctx);(0<this.borderThickness&&this.borderColor||this.backgroundColor)&&this.ctx.roundRect(0,v,this.width,this.height,this.cornerRadius,this.borderThickness,this.backgroundColor,\nthis.borderColor);this.ctx.fillStyle=this.fontColor;for(v=0;v<this._wrappedText.lines.length;v++){H=this._wrappedText.lines[v];if(\"right\"===this.horizontalAlign||\"right\"===this.textAlign)t=this.width-H.width-this.rightPadding;else if(\"left\"===this.horizontalAlign||\"left\"===this.textAlign)t=this.leftPadding;else if(\"center\"===this.horizontalAlign||\"center\"===this.textAlign)t=(this.width-(this.leftPadding+this.rightPadding))/2-H.width/2+this.leftPadding;this.ctx.fillText(H.text,t,B);B+=H.height}this.ctx.font=\np;d&&this.ctx.restore()}};ka.prototype.setText=function(d){this.text=d;this._isDirty=!0;this._wrappedText=null};ka.prototype.measureText=function(){this._lineHeight=Za(this.fontFamily,this.fontSize,this.fontWeight);if(null===this.maxWidth)throw\"Please set maxWidth and height for TextBlock\";this._wrapText(this.ctx);this._isDirty=!1;return{width:this.width,height:this.height}};ka.prototype._getLineWithWidth=function(d,p,v){d=String(d);if(!d)return{text:\"\",width:0};var t=v=0,B=d.length-1,H=Infinity;\nfor(this.ctx.font=this._getFontString();t<=B;){var H=Math.floor((t+B)/2),E=d.substr(0,H+1);v=this.ctx.measureText(E).width;if(v<p)t=H+1;else if(v>p)B=H-1;else break}v>p&&1<E.length&&(E=E.substr(0,E.length-1),v=this.ctx.measureText(E).width);p=!0;if(E.length===d.length||\" \"===d[E.length])p=!1;p&&(d=E.split(\" \"),1<d.length&&d.pop(),E=d.join(\" \"),v=this.ctx.measureText(E).width);return{text:E,width:v}};ka.prototype._wrapText=function(){var d=new String(Ga(String(this.text))),p=[],v=this.ctx.font,t=0,\nB=0;this.ctx.font=this._getFontString();if(0===this.frontSize)B=t=0;else for(;0<d.length;){var H=this.maxHeight-(this.topPadding+this.bottomPadding),E=this._getLineWithWidth(d,this.maxWidth-(this.leftPadding+this.rightPadding),!1);E.height=this._lineHeight;p.push(E);var K=B,B=Math.max(B,E.width),t=t+E.height,d=Ga(d.slice(E.text.length,d.length));H&&t>H&&(E=p.pop(),t-=E.height,B=K)}this._wrappedText={lines:p,width:B,height:t};this.width=B+(this.leftPadding+this.rightPadding);this.height=t+(this.topPadding+\nthis.bottomPadding);this.ctx.font=v};ka.prototype._getFontString=function(){var d;d=\"\"+(this.fontStyle?this.fontStyle+\" \":\"\");d+=this.fontWeight?this.fontWeight+\" \":\"\";d+=this.fontSize?this.fontSize+\"px \":\"\";var p=this.fontFamily?this.fontFamily+\"\":\"\";!v&&p&&(p=p.split(\",\")[0],\"'\"!==p[0]&&'\"'!==p[0]&&(p=\"'\"+p+\"'\"));return d+=p};pa(Va,K);pa(Aa,K);Aa.prototype.setLayout=function(){if(this.text){var d=this.dockInsidePlotArea?this.chart.plotArea:this.chart,l=d.layoutManager.getFreeSpace(),v=l.x1,t=l.y1,\nB=0,H=0,E=this.chart._menuButton&&this.chart.exportEnabled&&\"top\"===this.verticalAlign?40:0,K,I;\"top\"===this.verticalAlign||\"bottom\"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=l.width-4-E*(\"center\"===this.horizontalAlign?2:1)),H=0.5*l.height-this.margin-2,B=0):\"center\"===this.verticalAlign&&(\"left\"===this.horizontalAlign||\"right\"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=l.height-4),H=0.5*l.width-this.margin-2):\"center\"===this.horizontalAlign&&(null===this.maxWidth&&\n(this.maxWidth=l.width-4),H=0.5*l.height-4));var P;p(this.padding)||\"number\"!==typeof this.padding?p(this.padding)||\"object\"!==typeof this.padding||(P=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,P+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):P=2*this.padding;this.wrap||(H=Math.min(H,1.5*this.fontSize+P));H=new ka(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,\nhorizontalAlign:this.horizontalAlign,textAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:H,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:\"middle\"});P=H.measureText();\"top\"===this.verticalAlign||\"bottom\"===this.verticalAlign?(\"top\"===this.verticalAlign?(t=l.y1+2+this.fontSize/2+4,I=\"top\"):\"bottom\"===this.verticalAlign&&\n(t=l.y2-2-P.height+this.fontSize/2+4,I=\"bottom\"),\"left\"===this.horizontalAlign?v=l.x1+2:\"center\"===this.horizontalAlign?v=l.x1+l.width/2-P.width/2:\"right\"===this.horizontalAlign&&(v=l.x2-2-P.width-E),K=this.horizontalAlign,this.width=P.width,this.height=P.height):\"center\"===this.verticalAlign&&(\"left\"===this.horizontalAlign?(v=l.x1+2+(this.fontSize/2+4),t=l.y2-2-(this.maxWidth/2-P.width/2),B=-90,I=\"left\",this.width=P.height,this.height=P.width):\"right\"===this.horizontalAlign?(v=l.x2-2-(this.fontSize/\n2+4),t=l.y1+2+(this.maxWidth/2-P.width/2),B=90,I=\"right\",this.width=P.height,this.height=P.width):\"center\"===this.horizontalAlign&&(t=d.y1+(d.height/2-P.height/2)+this.fontSize/2+4,v=d.x1+(d.width/2-P.width/2),I=\"center\",this.width=P.width,this.height=P.height),K=\"center\");H.x=v;H.y=t;H.angle=B;H.horizontalAlign=K;this._textBlock=H;d.layoutManager.registerSpace(I,{width:this.width+(\"left\"===I||\"right\"===I?this.margin+2:0),height:this.height+(\"top\"===I||\"bottom\"===I?this.margin+2:0)});this.bounds=\n{x1:v,y1:t,x2:v+this.width,y2:t+this.height};this.ctx.textBaseline=\"top\"}};Aa.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};pa(Ia,K);Ia.prototype.setLayout=Aa.prototype.setLayout;Ia.prototype.render=Aa.prototype.render;Wa.prototype.get=function(d,p){var v=null;0<this.pool.length?(v=this.pool.pop(),Ma(v,d,p)):v=va(d,p);return v};Wa.prototype.release=function(d){this.pool.push(d)};pa(Ja,K);var Qa={addTheme:function(d,p){Oa[d]=p},addColorSet:function(d,p){Ba[d]=p},addCultureInfo:function(d,\np){Ka[d]=p},formatNumber:function(d,p,v){v=v||\"en\";if(Ka[v])return fa(d,p||\"#,##0.##\",new Ja(v));throw\"Unknown Culture Name\";},formatDate:function(d,p,v){v=v||\"en\";if(Ka[v])return Ca(d,p||\"DD MMM YYYY\",new Ja(v));throw\"Unknown Culture Name\";}};\"undefined\"!==typeof module&&\"undefined\"!==typeof module.exports?module.exports=Qa:\"function\"===typeof define&&define.amd?define([],function(){return Qa}):(window.CanvasJS&&window.console&&window.console.log(\"CanvasJS namespace already exists. If you are loading both chart and stockchart scripts, just load stockchart alone as it includes all chart features.\"),\nwindow.CanvasJS=window.CanvasJS?window.CanvasJS:Qa);B=Qa.Chart=function(){function d(a,e){return a.x-e.x}function l(a,e,c){e=e||{};p(c)?(this.predefinedThemes=Oa,this.optionsName=this.parent=this.index=null):(this.parent=c.parent,this.index=c.index,this.predefinedThemes=c.predefinedThemes,this.optionsName=c.optionsName,this.stockChart=c.stockChart,this.panel=a,this.isOptionsInArray=c.isOptionsInArray);this.theme=p(e.theme)||p(this.predefinedThemes[e.theme])?\"light1\":e.theme;l.base.constructor.call(this,\n\"Chart\",this.optionsName,e,this.index,this.parent);var b=this;this._containerId=a;this._objectsInitialized=!1;this.overlaidCanvasCtx=this.ctx=null;this._indexLabels=[];this._panTimerId=0;this._lastTouchEventType=\"\";this._lastTouchData=null;this.isAnimating=!1;this.renderCount=0;this.disableToolTip=this.animatedRender=!1;this.canvasPool=new Wa;this.allDOMEventHandlers=[];this.panEnabled=!1;this._defaultCursor=\"default\";this.plotArea={canvas:null,ctx:null,x1:0,y1:0,x2:0,y2:0,width:0,height:0};this._dataInRenderedOrder=\n[];(this.container=\"string\"===typeof this._containerId?document.getElementById(this._containerId):this._containerId)?(this.container.innerHTML=\"\",e=a=0,a=this.options.width?this.width:0<this.container.clientWidth?this.container.clientWidth:this.width,e=this.options.height?this.height:0<this.container.clientHeight?this.container.clientHeight:this.height,this.width=a,this.height=e,this.x1=this.y1=0,this.x2=this.width,this.y2=this.height,this.selectedColorSet=\"undefined\"!==typeof Ba[this.colorSet]?Ba[this.colorSet]:\nBa.colorSet1,this._canvasJSContainer=document.createElement(\"div\"),this._canvasJSContainer.setAttribute(\"class\",\"canvasjs-chart-container\"),this._canvasJSContainer.style.position=\"relative\",this._canvasJSContainer.style.textAlign=\"left\",this._canvasJSContainer.style.cursor=\"auto\",this._canvasJSContainer.style.direction=\"ltr\",v||(this._canvasJSContainer.style.height=\"0px\"),this.container.appendChild(this._canvasJSContainer),this.canvas=va(a,e),this._preRenderCanvas=va(a,e),this.canvas.style.position=\n\"absolute\",this.canvas.style.WebkitUserSelect=\"none\",this.canvas.style.MozUserSelect=\"none\",this.canvas.style.msUserSelect=\"none\",this.canvas.style.userSelect=\"none\",this.canvas.getContext&&(this._canvasJSContainer.appendChild(this.canvas),this.ctx=this.canvas.getContext(\"2d\"),this.ctx.textBaseline=\"top\",za(this.ctx),this._preRenderCtx=this._preRenderCanvas.getContext(\"2d\"),this._preRenderCtx.textBaseline=\"top\",za(this._preRenderCtx),v?this.plotArea.ctx=this.ctx:(this.plotArea.canvas=va(a,e),this.plotArea.canvas.style.position=\n\"absolute\",this.plotArea.canvas.setAttribute(\"class\",\"plotAreaCanvas\"),this._canvasJSContainer.appendChild(this.plotArea.canvas),this.plotArea.ctx=this.plotArea.canvas.getContext(\"2d\")),this.overlaidCanvas=va(a,e),this.overlaidCanvas.style.position=\"absolute\",this.overlaidCanvas.style.webkitTapHighlightColor=\"transparent\",this.overlaidCanvas.style.WebkitUserSelect=\"none\",this.overlaidCanvas.style.MozUserSelect=\"none\",this.overlaidCanvas.style.msUserSelect=\"none\",this.overlaidCanvas.style.userSelect=\n\"none\",this.overlaidCanvas.getContext&&(this._canvasJSContainer.appendChild(this.overlaidCanvas),this.overlaidCanvasCtx=this.overlaidCanvas.getContext(\"2d\"),this.overlaidCanvasCtx.textBaseline=\"top\",za(this.overlaidCanvasCtx)),this._eventManager=new X(this),this.windowResizeHandler=V(window,\"resize\",function(){b._updateSize()&&b.render()},this.allDOMEventHandlers),this._toolBar=document.createElement(\"div\"),this._toolBar.setAttribute(\"class\",\"canvasjs-chart-toolbar\"),Z(this._toolBar,{position:\"absolute\",\nright:\"1px\",top:\"1px\"}),this._canvasJSContainer.appendChild(this._toolBar),this.bounds={x1:0,y1:0,x2:this.width,y2:this.height},V(this.overlaidCanvas,\"click\",function(a){b._mouseEventHandler(a)},this.allDOMEventHandlers),V(this.overlaidCanvas,\"mousemove\",function(a){b._mouseEventHandler(a)},this.allDOMEventHandlers),V(this.overlaidCanvas,\"mouseup\",function(a){b._mouseEventHandler(a)},this.allDOMEventHandlers),V(this.overlaidCanvas,\"mousedown\",function(a){b._mouseEventHandler(a);xa(b._dropdownMenu)},\nthis.allDOMEventHandlers),V(this.overlaidCanvas,\"mouseout\",function(a){b._mouseEventHandler(a)},this.allDOMEventHandlers),V(this.overlaidCanvas,window.navigator.msPointerEnabled?\"MSPointerDown\":\"touchstart\",function(a){b._touchEventHandler(a)},this.allDOMEventHandlers),V(this.overlaidCanvas,window.navigator.msPointerEnabled?\"MSPointerMove\":\"touchmove\",function(a){b._touchEventHandler(a)},this.allDOMEventHandlers),V(this.overlaidCanvas,window.navigator.msPointerEnabled?\"MSPointerUp\":\"touchend\",function(a){b._touchEventHandler(a)},\nthis.allDOMEventHandlers),V(this.overlaidCanvas,window.navigator.msPointerEnabled?\"MSPointerCancel\":\"touchcancel\",function(a){b._touchEventHandler(a)},this.allDOMEventHandlers),this.toolTip=new W(this,this.options.toolTip),this.data=null,this.axisX=[],this.axisX2=[],this.axisY=[],this.axisY2=[],this.sessionVariables={axisX:[],axisX2:[],axisY:[],axisY2:[]})):window.console&&window.console.log('CanvasJS Error: Chart Container with id \"'+this._containerId+'\" was not found')}function t(a,e){for(var c=\n[],b,f=0;f<a.length;f++)if(0==f)c.push(a[0]);else{var h,r,x;x=f-1;h=0===x?0:x-1;r=x===a.length-1?x:x+1;b=Math.abs((a[r].x-a[h].x)/(0===a[r].x-a[x].x?0.01:a[r].x-a[x].x))*(e-1)/2+1;var J=(a[r].x-a[h].x)/b;b=(a[r].y-a[h].y)/b;c[c.length]=a[x].x>a[h].x&&0<J||a[x].x<a[h].x&&0>J?{x:a[x].x+J/3,y:a[x].y+b/3}:{x:a[x].x,y:a[x].y+(1===c.length?0:b/9)};x=f;h=0===x?0:x-1;r=x===a.length-1?x:x+1;b=Math.abs((a[r].x-a[h].x)/(0===a[x].x-a[h].x?0.01:a[x].x-a[h].x))*(e-1)/2+1;J=(a[r].x-a[h].x)/b;b=(a[r].y-a[h].y)/b;\nc[c.length]=a[x].x>a[h].x&&0<J||a[x].x<a[h].x&&0>J?{x:a[x].x-J/3,y:a[x].y-b/3}:{x:a[x].x,y:a[x].y-b/9};c[c.length]=a[f]}return c}function B(a,e,c,b,f,h,r,x,J,k){var m=0;k?(r.color=h,x.color=h):k=1;m=J?Math.abs(f-c):Math.abs(b-e);m=0<r.trimLength?Math.abs(m*r.trimLength/100):Math.abs(m-r.length);J?(c+=m/2,f-=m/2):(e+=m/2,b-=m/2);var m=1===Math.round(r.thickness)%2?0.5:0,q=1===Math.round(x.thickness)%2?0.5:0;a.save();a.globalAlpha=k;a.strokeStyle=x.color||h;a.lineWidth=x.thickness||2;a.setLineDash&&\na.setLineDash(H(x.dashType,x.thickness));a.beginPath();J&&0<x.thickness?(a.moveTo(b-r.thickness/2,Math.round((c+f)/2)-q),a.lineTo(e+r.thickness/2,Math.round((c+f)/2)-q)):0<x.thickness&&(a.moveTo(Math.round((e+b)/2)-q,c+r.thickness/2),a.lineTo(Math.round((e+b)/2)-q,f-r.thickness/2));a.stroke();a.strokeStyle=r.color||h;a.lineWidth=r.thickness||2;a.setLineDash&&a.setLineDash(H(r.dashType,r.thickness));a.beginPath();J&&0<r.thickness?(a.moveTo(b-m,c),a.lineTo(b-m,f),a.moveTo(e+m,c),a.lineTo(e+m,f)):0<\nr.thickness&&(a.moveTo(e,c+m),a.lineTo(b,c+m),a.moveTo(e,f-m),a.lineTo(b,f-m));a.stroke();a.restore()}function I(a,e){I.base.constructor.call(this,\"Legend\",\"legend\",e,null,a);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx;this.ghostCtx=this.chart._eventManager.ghostCtx;this.items=[];this.optionsName=\"legend\";this.height=this.width=0;this.orientation=null;this.dataSeries=[];this.bounds={x1:null,y1:null,x2:null,y2:null};\"undefined\"===typeof this.options.fontSize&&(this.fontSize=this.chart.getAutoFontSize(this.fontSize));\nthis.lineHeight=Za(this.fontFamily,this.fontSize,this.fontWeight);this.horizontalSpacing=this.fontSize}function O(a,e,c,b){O.base.constructor.call(this,\"DataSeries\",\"data\",e,c,a);this.chart=a;this.canvas=a.canvas;this._ctx=a.canvas.ctx;this.index=c;this.noDataPointsInPlotArea=0;this.id=b;this.chart._eventManager.objectMap[b]={id:b,objectType:\"dataSeries\",dataSeriesIndex:c};a=e.dataPoints?e.dataPoints.length:0;this.dataPointEOs=[];for(e=0;e<a;e++)this.dataPointEOs[e]={};this.dataPointIds=[];this.plotUnit=\n[];this.axisY=this.axisX=null;this.optionsName=\"data\";this.isOptionsInArray=!0;null===this.fillOpacity&&(this.type.match(/area/i)?this.fillOpacity=0.7:this.fillOpacity=1);this.axisPlacement=this.getDefaultAxisPlacement();\"undefined\"===typeof this.options.indexLabelFontSize&&(this.indexLabelFontSize=this.chart.getAutoFontSize(this.indexLabelFontSize))}function E(a,e,c,b,f,h){E.base.constructor.call(this,\"Axis\",e,c,b,a);this.chart=a;this.canvas=a.canvas;this.ctx=a.ctx;this.intervalStartPosition=this.maxHeight=\nthis.maxWidth=0;this.labels=[];this.dataSeries=[];this._stripLineLabels=this._ticks=this._labels=null;this.dataInfo={min:Infinity,max:-Infinity,viewPortMin:Infinity,viewPortMax:-Infinity,minDiff:Infinity};this.isOptionsInArray=!0;\"axisX\"===f?(\"left\"===h||\"bottom\"===h?(this.optionsName=\"axisX\",p(this.chart.sessionVariables.axisX[b])&&(this.chart.sessionVariables.axisX[b]={}),this.sessionVariables=this.chart.sessionVariables.axisX[b]):(this.optionsName=\"axisX2\",p(this.chart.sessionVariables.axisX2[b])&&\n(this.chart.sessionVariables.axisX2[b]={}),this.sessionVariables=this.chart.sessionVariables.axisX2[b]),this.options.interval||(this.intervalType=null)):\"left\"===h||\"bottom\"===h?(this.optionsName=\"axisY\",p(this.chart.sessionVariables.axisY[b])&&(this.chart.sessionVariables.axisY[b]={}),this.sessionVariables=this.chart.sessionVariables.axisY[b]):(this.optionsName=\"axisY2\",p(this.chart.sessionVariables.axisY2[b])&&(this.chart.sessionVariables.axisY2[b]={}),this.sessionVariables=this.chart.sessionVariables.axisY2[b]);\n\"undefined\"===typeof this.options.titleFontSize&&(this.titleFontSize=this.chart.getAutoFontSize(this.titleFontSize));\"undefined\"===typeof this.options.labelFontSize&&(this.labelFontSize=this.chart.getAutoFontSize(this.labelFontSize));this.type=f;\"axisX\"!==f||c&&\"undefined\"!==typeof c.gridThickness||(this.gridThickness=0);this._position=h;this.lineCoordinates={x1:null,y1:null,x2:null,y2:null,width:null};this.labelAngle=(this.labelAngle%360+360)%360;90<this.labelAngle&&270>this.labelAngle?this.labelAngle-=\n180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new ea(this.chart,this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0<this.options.stripLines.length)for(a=0;a<this.options.stripLines.length;a++)this.stripLines.push(new P(this.chart,this.options.stripLines[a],a,++this.chart._eventManager.lastObjectId,this));this.options.crosshair&&(this.crosshair=new da(this.chart,\nthis.options.crosshair,this));this._titleTextBlock=null;this.hasOptionChanged(\"viewportMinimum\")&&null===this.viewportMinimum&&(this.options.viewportMinimum=void 0,this.sessionVariables.viewportMinimum=null);this.hasOptionChanged(\"viewportMinimum\")||isNaN(this.sessionVariables.newViewportMinimum)||null===this.sessionVariables.newViewportMinimum?this.sessionVariables.newViewportMinimum=null:this.viewportMinimum=this.sessionVariables.newViewportMinimum;this.hasOptionChanged(\"viewportMaximum\")&&null===\nthis.viewportMaximum&&(this.options.viewportMaximum=void 0,this.sessionVariables.viewportMaximum=null);this.hasOptionChanged(\"viewportMaximum\")||isNaN(this.sessionVariables.newViewportMaximum)||null===this.sessionVariables.newViewportMaximum?this.sessionVariables.newViewportMaximum=null:this.viewportMaximum=this.sessionVariables.newViewportMaximum;null!==this.minimum&&null!==this.viewportMinimum&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));null!==this.maximum&&null!==this.viewportMaximum&&\n(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.trackChanges(\"viewportMinimum\");this.trackChanges(\"viewportMaximum\")}function ea(a,e,c,b){ea.base.constructor.call(this,\"ScaleBreaks\",\"scaleBreaks\",e,null,b);this.id=c;this.chart=a;this.ctx=this.chart.ctx;this.axis=b;this.optionsName=\"scaleBreaks\";this.isOptionsInArray=!1;this._appliedBreaks=[];this.customBreaks=[];this.autoBreaks=[];\"string\"===typeof this.spacing?(this.spacing=parseFloat(this.spacing),this.spacing=isNaN(this.spacing)?\n8:(10<this.spacing?10:this.spacing)+\"%\"):\"number\"!==typeof this.spacing&&(this.spacing=8);this.autoCalculate&&(this.maxNumberOfAutoBreaks=Math.min(this.maxNumberOfAutoBreaks,5));if(this.options.customBreaks&&0<this.options.customBreaks.length){for(a=0;a<this.options.customBreaks.length;a++)this.customBreaks.push(new ca(this.chart,\"customBreaks\",this.options.customBreaks[a],a,++this.chart._eventManager.lastObjectId,this)),\"number\"===typeof this.customBreaks[a].startValue&&(\"number\"===typeof this.customBreaks[a].endValue&&\nthis.customBreaks[a].endValue!==this.customBreaks[a].startValue)&&this._appliedBreaks.push(this.customBreaks[a]);this._appliedBreaks.sort(function(a,b){return a.startValue-b.startValue});for(a=0;a<this._appliedBreaks.length-1;a++)this._appliedBreaks[a].endValue>=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log(\"CanvasJS Error: Breaks \"+a+\" and \"+(a+1)+\" are overlapping.\"),\nthis._appliedBreaks.splice(a,2),a--)}}function ca(a,e,c,b,f,h){ca.base.constructor.call(this,\"Break\",e,c,b,h);this.id=f;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=h;this.optionsName=e;this.isOptionsInArray=!0;this.type=c.type?this.type:h.type;this.fillOpacity=p(c.fillOpacity)?h.fillOpacity:this.fillOpacity;this.lineThickness=p(c.lineThickness)?h.lineThickness:this.lineThickness;this.color=c.color?this.color:h.color;this.lineColor=c.lineColor?this.lineColor:h.lineColor;this.lineDashType=\nc.lineDashType?this.lineDashType:h.lineDashType;!p(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!p(this.endValue)&&this.endValue.getTime&&(this.endValue=this.endValue.getTime());\"number\"===typeof this.startValue&&(\"number\"===typeof this.endValue&&this.endValue<this.startValue)&&(a=this.startValue,this.startValue=this.endValue,this.endValue=a);this.spacing=\"undefined\"===typeof c.spacing?h.spacing:c.spacing;\"string\"===typeof this.options.spacing?(this.spacing=\nparseFloat(this.spacing),this.spacing=isNaN(this.spacing)?0:(10<this.spacing?10:this.spacing)+\"%\"):\"number\"!==typeof this.options.spacing&&(this.spacing=h.spacing);this.size=h.parent.logarithmic?1:0}function P(a,e,c,b,f){P.base.constructor.call(this,\"StripLine\",\"stripLines\",e,c,f);this.id=b;this.chart=a;this.ctx=this.chart.ctx;this.label=this.label;this.axis=f;this.optionsName=\"stripLines\";this.isOptionsInArray=!0;this._thicknessType=\"pixel\";null!==this.startValue&&null!==this.endValue&&(this.value=\nf.logarithmic?Math.sqrt((this.startValue.getTime?this.startValue.getTime():this.startValue)*(this.endValue.getTime?this.endValue.getTime():this.endValue)):((this.startValue.getTime?this.startValue.getTime():this.startValue)+(this.endValue.getTime?this.endValue.getTime():this.endValue))/2,this._thicknessType=null)}function da(a,e,c){da.base.constructor.call(this,\"Crosshair\",\"crosshair\",e,null,c);this.chart=a;this.ctx=this.chart.ctx;this.axis=c;this.optionsName=\"crosshair\";this._thicknessType=\"pixel\"}\nfunction W(a,e){W.base.constructor.call(this,\"ToolTip\",\"toolTip\",e,null,a);this.chart=a;this.canvas=a.canvas;this.ctx=this.chart.ctx;this.currentDataPointIndex=this.currentSeriesIndex=-1;this._prevY=this._prevX=NaN;this.containerTransitionDuration=0.1;this.mozContainerTransition=this.getContainerTransition(this.containerTransitionDuration);this.optionsName=\"toolTip\";this._initialize()}function X(a){this.chart=a;this.lastObjectId=0;this.objectMap=[];this.rectangularRegionEventSubscriptions=[];this.previousDataPointEventObject=\nnull;this.ghostCanvas=va(this.chart.width,this.chart.height,!0);this.ghostCtx=this.ghostCanvas.getContext(\"2d\");this.mouseoveredObjectMaps=[]}function ja(a){this.chart=a;this.ctx=this.chart.plotArea.ctx;this.animations=[];this.animationRequestId=null}pa(l,K);l.prototype.destroy=function(){var a=this.allDOMEventHandlers;this._animator&&this._animator.cancelAllAnimations();this._panTimerId&&clearTimeout(this._panTimerId);for(var e=0;e<a.length;e++){var c=a[e][0],b=a[e][1],f=a[e][2],h=a[e][3],h=h||!1;\nc.removeEventListener?c.removeEventListener(b,f,h):c.detachEvent&&c.detachEvent(\"on\"+b,f)}this.allDOMEventHandlers=[];for(this.removeAllEventListeners();this._canvasJSContainer&&this._canvasJSContainer.hasChildNodes();)this._canvasJSContainer.removeChild(this._canvasJSContainer.lastChild);for(;this.container&&this.container.hasChildNodes();)this.container.removeChild(this.container.lastChild);for(;this._dropdownMenu&&this._dropdownMenu.hasChildNodes();)this._dropdownMenu.removeChild(this._dropdownMenu.lastChild);\nthis.container=this._canvasJSContainer=null;this.toolTip.container=null;this.canvas&&ya(this.canvas);this.overlaidCanvas&&ya(this.overlaidCanvas);this._preRenderCanvas&&ya(this._preRenderCanvas);this._breaksCanvas&&ya(this._breaksCanvas);this._eventManager&&this._eventManager.ghostCanvas&&ya(this._eventManager.ghostCanvas);this._toolBar=this._dropdownMenu=this._menuButton=this._resetButton=this._zoomButton=null};l.prototype._updateOptions=function(){var a=this;this.updateOption(\"width\");this.updateOption(\"height\");\nthis.updateOption(\"dataPointWidth\");this.updateOption(\"dataPointMinWidth\");this.updateOption(\"dataPointMaxWidth\");this.updateOption(\"interactivityEnabled\");this.updateOption(\"theme\");this.updateOption(\"colorSet\")&&(this.selectedColorSet=\"undefined\"!==typeof Ba[this.colorSet]?Ba[this.colorSet]:Ba.colorSet1);this.updateOption(\"backgroundColor\");this.backgroundColor||(this.backgroundColor=\"rgba(0,0,0,0)\");this.updateOption(\"culture\");this._cultureInfo=new Ja(this.options.culture);this.updateOption(\"animationEnabled\");\nthis.animationEnabled=this.animationEnabled&&v;this.updateOption(\"animationDuration\");this.updateOption(\"rangeChanging\");this.updateOption(\"rangeChanged\");this.updateOption(\"exportEnabled\");this.updateOption(\"exportFileName\");this.updateOption(\"zoomType\");this.toolbar=new Va(this,this.options.toolbar);if(this.options.zoomEnabled||this.panEnabled){if(this._zoomButton)Z(this._zoomButton,{borderRight:this.toolbar.buttonBorderThickness+\"px solid \"+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,\ncolor:a.toolbar.fontColor}),ta(this,this._zoomButton,\"zoom\");else{var e=!1;xa(this._zoomButton=document.createElement(\"button\"));ta(this,this._zoomButton,\"pan\");this._toolBar.appendChild(this._zoomButton);this._zoomButton.style.borderRight=this.toolbar.buttonBorderThickness+\"px solid \"+this.toolbar.buttonBorderColor;V(this._zoomButton,\"touchstart\",function(a){e=!0},this.allDOMEventHandlers);V(this._zoomButton,\"click\",function(){a.zoomEnabled?(a.zoomEnabled=!1,a.panEnabled=!0,ta(a,a._zoomButton,\"zoom\")):\n(a.zoomEnabled=!0,a.panEnabled=!1,ta(a,a._zoomButton,\"pan\"));a.render()},this.allDOMEventHandlers);V(this._zoomButton,\"mousemove\",function(){e?e=!1:(Z(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&Z(a._zoomButton.childNodes[0],{WebkitFilter:\"invert(100%)\",filter:\"invert(100%)\"}))},this.allDOMEventHandlers);V(this._zoomButton,\"mouseout\",function(){e||(Z(a._zoomButton,\n{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&Z(a._zoomButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}))},this.allDOMEventHandlers)}this._resetButton?(Z(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+\"px solid \"+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor}),this._resetButton.title=this._cultureInfo.resetText):\n(e=!1,xa(this._resetButton=document.createElement(\"button\")),ta(this,this._resetButton,\"reset\"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+\"px solid \"+this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton),V(this._resetButton,\"touchstart\",function(a){e=!0},this.allDOMEventHandlers),V(this._resetButton,\"click\",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent(\"hidden\",{chart:a,toolTip:a.toolTip},\na.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,ta(a,a._zoomButton,\"pan\"),a._defaultCursor=\"default\",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled=!1);if(a.sessionVariables.axisX)for(var b=0;b<a.sessionVariables.axisX.length;b++)a.sessionVariables.axisX[b].newViewportMinimum=null,a.sessionVariables.axisX[b].newViewportMaximum=null;if(a.sessionVariables.axisX2)for(b=0;b<a.sessionVariables.axisX2.length;b++)a.sessionVariables.axisX2[b].newViewportMinimum=\nnull,a.sessionVariables.axisX2[b].newViewportMaximum=null;if(a.sessionVariables.axisY)for(b=0;b<a.sessionVariables.axisY.length;b++)a.sessionVariables.axisY[b].newViewportMinimum=null,a.sessionVariables.axisY[b].newViewportMaximum=null;if(a.sessionVariables.axisY2)for(b=0;b<a.sessionVariables.axisY2.length;b++)a.sessionVariables.axisY2[b].newViewportMinimum=null,a.sessionVariables.axisY2[b].newViewportMaximum=null;a.resetOverlayedCanvas();0>=navigator.userAgent.search(\"MSIE\")&&Z(a._resetButton.childNodes[0],\n{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"});xa(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:\"chart\",index:a.stockChart.charts.indexOf(a),minimum:null,maximum:null});a._dispatchRangeEvent(\"rangeChanging\",\"reset\");a.stockChart&&(a.stockChart._rangeEventParameter.type=\"rangeChanging\",a.stockChart.dispatchEvent(\"rangeChanging\",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.syncCharts(null,null);a._dispatchRangeEvent(\"rangeChanged\",\n\"reset\");a.stockChart&&(a.stockChart._rangeEventParameter.type=\"rangeChanged\",a.stockChart.dispatchEvent(\"rangeChanged\",a.stockChart._rangeEventParameter,a.stockChart))},this.allDOMEventHandlers),V(this._resetButton,\"mousemove\",function(){e||(Z(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&Z(a._resetButton.childNodes[0],{WebkitFilter:\"invert(100%)\",filter:\"invert(100%)\"}))},\nthis.allDOMEventHandlers),V(this._resetButton,\"mouseout\",function(){e||(Z(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&Z(a._resetButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}))},this.allDOMEventHandlers),this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute(\"state\")===a._cultureInfo.zoomText?\n(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),La(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled=!1;hb(this);\"none\"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?ta(a,a._zoomButton,\"zoom\"):ta(a,a._zoomButton,\"pan\"),a._resetButton.getAttribute(\"state\")!==a._cultureInfo.resetText&&ta(a,a._resetButton,\"reset\"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=\nthis.options.toolTip);for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};l.prototype._updateSize=function(){var a;a=[this.canvas,this.overlaidCanvas,this._eventManager.ghostCanvas];var e=0,c=0;this.options.width?e=this.width:this.width=e=0<this.container.clientWidth?this.container.clientWidth:this.width;this.options.height?c=this.height:this.height=c=0<this.container.clientHeight?this.container.clientHeight:this.height;if(this.canvas.width!==e*\nma||this.canvas.height!==c*ma){for(var b=0;b<a.length;b++)Ma(a[b],e,c);this.bounds={x1:0,y1:0,x2:this.width,y2:this.height,width:this.width,height:this.height};a=!0}else a=!1;return a};l.prototype._initialize=function(){this.isNavigator=p(this.parent)||p(this.parent._defaultsKey)||\"Navigator\"!==this.parent._defaultsKey?!1:!0;this._animator?this._animator.cancelAllAnimations():this._animator=new ja(this);this.removeAllEventListeners();this.disableToolTip=!1;this._axes=[];this.funnelPyramidClickHandler=\nthis.pieDoughnutClickHandler=null;this._updateOptions();this.animatedRender=v&&this.animationEnabled&&0===this.renderCount;this._updateSize();this.clearCanvas();this.ctx.beginPath();this.axisX=[];this.axisX2=[];this.axisY=[];this.axisY2=[];this._indexLabels=[];this._dataInRenderedOrder=[];this._events=[];this._eventManager&&this._eventManager.reset();this.plotInfo={axisPlacement:null,plotTypes:[]};this.layoutManager=new Ea(0,0,this.width,this.height,this.isNavigator?0:2);this.plotArea.layoutManager&&\nthis.plotArea.layoutManager.reset();this.data=[];this.title=null;this.subtitles=[];var a=0,e=null;if(this.options.data){for(var c=0;c<this.options.data.length;c++)if(a++,!this.options.data[c].type||0<=l._supportedChartTypes.indexOf(this.options.data[c].type)){var b=new O(this,this.options.data[c],a-1,++this._eventManager.lastObjectId);if(!p(b)&&b.dataPoints)for(var f=0;f<b.dataPoints.length;f++)if(b.dataPoints[f].x&&b.dataPoints[f].x.getTime){b.xValueType=\"dateTime\";break}\"error\"===b.type&&(b.linkedDataSeriesIndex=\np(this.options.data[c].linkedDataSeriesIndex)?c-1:this.options.data[c].linkedDataSeriesIndex,0>b.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||\"number\"!==typeof b.linkedDataSeriesIndex||\"error\"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex=null);null===b.name&&(b.name=\"DataSeries \"+a);null===b.color?1<this.options.data.length?(b._colorSet=[this.selectedColorSet[b.index%this.selectedColorSet.length]],b.color=this.selectedColorSet[b.index%this.selectedColorSet.length]):\nb._colorSet=\"line\"===b.type||\"stepLine\"===b.type||\"spline\"===b.type||\"area\"===b.type||\"stepArea\"===b.type||\"splineArea\"===b.type||\"stackedArea\"===b.type||\"stackedArea100\"===b.type||\"rangeArea\"===b.type||\"rangeSplineArea\"===b.type||\"candlestick\"===b.type||\"ohlc\"===b.type||\"waterfall\"===b.type||\"boxAndWhisker\"===b.type?[this.selectedColorSet[0]]:this.selectedColorSet:b._colorSet=[b.color];null===b.markerSize&&((\"line\"===b.type||\"stepLine\"===b.type||\"spline\"===b.type||0<=b.type.toLowerCase().indexOf(\"area\"))&&\nb.dataPoints&&b.dataPoints.length<this.width/16||\"scatter\"===b.type)&&(b.markerSize=8);\"bubble\"!==b.type&&\"scatter\"!==b.type||!b.dataPoints||(b.dataPoints.some?b.dataPoints.some(function(a){return a.x})&&b.dataPoints.sort(d):b.dataPoints.sort(d));this.data.push(b);var f=b.axisPlacement,e=e||f,h;\"normal\"===f?\"xySwapped\"===this.plotInfo.axisPlacement?h='You cannot combine \"'+b.type+'\" with bar chart':\"none\"===this.plotInfo.axisPlacement?h='You cannot combine \"'+b.type+'\" with pie chart':null===this.plotInfo.axisPlacement&&\n(this.plotInfo.axisPlacement=\"normal\"):\"xySwapped\"===f?\"normal\"===this.plotInfo.axisPlacement?h='You cannot combine \"'+b.type+'\" with line, area, column or pie chart':\"none\"===this.plotInfo.axisPlacement?h='You cannot combine \"'+b.type+'\" with pie chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement=\"xySwapped\"):\"none\"===f?\"normal\"===this.plotInfo.axisPlacement?h='You cannot combine \"'+b.type+'\" with line, area, column or bar chart':\"xySwapped\"===this.plotInfo.axisPlacement?h='You cannot combine \"'+\nb.type+'\" with bar chart':null===this.plotInfo.axisPlacement&&(this.plotInfo.axisPlacement=\"none\"):null===f&&\"none\"===this.plotInfo.axisPlacement&&(h='You cannot combine \"'+b.type+'\" with pie chart');if(h&&window.console){window.console.log(h);return}}for(c=0;c<this.data.length;c++){if(\"none\"==e&&\"error\"===this.data[c].type&&window.console){window.console.log('You cannot combine \"'+b.type+'\" with error chart');return}\"error\"===this.data[c].type&&(this.data[c].axisPlacement=this.plotInfo.axisPlacement=\ne||\"normal\",this.data[c]._linkedSeries=null===this.data[c].linkedDataSeriesIndex?null:this.data[this.data[c].linkedDataSeriesIndex])}}this._objectsInitialized=!0;this._plotAreaElements=[]};l._supportedChartTypes=Da(\"line stepLine spline column area stepArea splineArea bar bubble scatter stackedColumn stackedColumn100 stackedBar stackedBar100 stackedArea stackedArea100 candlestick ohlc boxAndWhisker rangeColumn error rangeBar rangeArea rangeSplineArea pie doughnut funnel pyramid waterfall\".split(\" \"));\nl.prototype.setLayout=function(){for(var a=this._plotAreaElements,e=0;e<this.data.length;e++)if(\"normal\"===this.plotInfo.axisPlacement||\"xySwapped\"===this.plotInfo.axisPlacement){if(!this.data[e].axisYType||\"primary\"===this.data[e].axisYType)if(this.options.axisY&&0<this.options.axisY.length){if(!this.axisY.length)for(var c=0;c<this.options.axisY.length;c++)\"normal\"===this.plotInfo.axisPlacement?this._axes.push(this.axisY[c]=new E(this,\"axisY\",this.options.axisY[c],c,\"axisY\",\"left\")):\"xySwapped\"===\nthis.plotInfo.axisPlacement&&this._axes.push(this.axisY[c]=new E(this,\"axisY\",this.options.axisY[c],c,\"axisY\",\"bottom\"));this.data[e].axisY=this.axisY[0<=this.data[e].axisYIndex&&this.data[e].axisYIndex<this.axisY.length?this.data[e].axisYIndex:0];this.axisY[0<=this.data[e].axisYIndex&&this.data[e].axisYIndex<this.axisY.length?this.data[e].axisYIndex:0].dataSeries.push(this.data[e])}else this.axisY.length||(\"normal\"===this.plotInfo.axisPlacement?this._axes.push(this.axisY[0]=new E(this,\"axisY\",this.options.axisY,\n0,\"axisY\",\"left\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisY[0]=new E(this,\"axisY\",this.options.axisY,0,\"axisY\",\"bottom\"))),this.data[e].axisY=this.axisY[0],this.axisY[0].dataSeries.push(this.data[e]);if(\"secondary\"===this.data[e].axisYType)if(this.options.axisY2&&0<this.options.axisY2.length){if(!this.axisY2.length)for(c=0;c<this.options.axisY2.length;c++)\"normal\"===this.plotInfo.axisPlacement?this._axes.push(this.axisY2[c]=new E(this,\"axisY2\",this.options.axisY2[c],c,\n\"axisY\",\"right\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisY2[c]=new E(this,\"axisY2\",this.options.axisY2[c],c,\"axisY\",\"top\"));this.data[e].axisY=this.axisY2[0<=this.data[e].axisYIndex&&this.data[e].axisYIndex<this.axisY2.length?this.data[e].axisYIndex:0];this.axisY2[0<=this.data[e].axisYIndex&&this.data[e].axisYIndex<this.axisY2.length?this.data[e].axisYIndex:0].dataSeries.push(this.data[e])}else this.axisY2.length||(\"normal\"===this.plotInfo.axisPlacement?this._axes.push(this.axisY2[0]=\nnew E(this,\"axisY2\",this.options.axisY2,0,\"axisY\",\"right\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisY2[0]=new E(this,\"axisY2\",this.options.axisY2,0,\"axisY\",\"top\"))),this.data[e].axisY=this.axisY2[0],this.axisY2[0].dataSeries.push(this.data[e]);if(!this.data[e].axisXType||\"primary\"===this.data[e].axisXType)if(this.options.axisX&&0<this.options.axisX.length){if(!this.axisX.length)for(c=0;c<this.options.axisX.length;c++)\"normal\"===this.plotInfo.axisPlacement?this._axes.push(this.axisX[c]=\nnew E(this,\"axisX\",this.options.axisX[c],c,\"axisX\",\"bottom\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisX[c]=new E(this,\"axisX\",this.options.axisX[c],c,\"axisX\",\"left\"));this.data[e].axisX=this.axisX[0<=this.data[e].axisXIndex&&this.data[e].axisXIndex<this.axisX.length?this.data[e].axisXIndex:0];this.axisX[0<=this.data[e].axisXIndex&&this.data[e].axisXIndex<this.axisX.length?this.data[e].axisXIndex:0].dataSeries.push(this.data[e])}else this.axisX.length||(\"normal\"===this.plotInfo.axisPlacement?\nthis._axes.push(this.axisX[0]=new E(this,\"axisX\",this.options.axisX,0,\"axisX\",\"bottom\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisX[0]=new E(this,\"axisX\",this.options.axisX,0,\"axisX\",\"left\"))),this.data[e].axisX=this.axisX[0],this.axisX[0].dataSeries.push(this.data[e]);if(\"secondary\"===this.data[e].axisXType)if(this.options.axisX2&&0<this.options.axisX2.length){if(!this.axisX2.length)for(c=0;c<this.options.axisX2.length;c++)\"normal\"===this.plotInfo.axisPlacement?this._axes.push(this.axisX2[c]=\nnew E(this,\"axisX2\",this.options.axisX2[c],c,\"axisX\",\"top\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisX2[c]=new E(this,\"axisX2\",this.options.axisX2[c],c,\"axisX\",\"right\"));this.data[e].axisX=this.axisX2[0<=this.data[e].axisXIndex&&this.data[e].axisXIndex<this.axisX2.length?this.data[e].axisXIndex:0];this.axisX2[0<=this.data[e].axisXIndex&&this.data[e].axisXIndex<this.axisX2.length?this.data[e].axisXIndex:0].dataSeries.push(this.data[e])}else this.axisX2.length||(\"normal\"===\nthis.plotInfo.axisPlacement?this._axes.push(this.axisX2[0]=new E(this,\"axisX2\",this.options.axisX2,0,\"axisX\",\"top\")):\"xySwapped\"===this.plotInfo.axisPlacement&&this._axes.push(this.axisX2[0]=new E(this,\"axisX2\",this.options.axisX2,0,\"axisX\",\"right\"))),this.data[e].axisX=this.axisX2[0],this.axisX2[0].dataSeries.push(this.data[e])}if(this.axisY){for(c=1;c<this.axisY.length;c++)\"undefined\"===typeof this.axisY[c].options.gridThickness&&(this.axisY[c].gridThickness=0);for(c=0;c<this.axisY.length-1;c++)\"undefined\"===\ntypeof this.axisY[c].options.margin&&(this.axisY[c].margin=10)}if(this.axisY2){for(c=1;c<this.axisY2.length;c++)\"undefined\"===typeof this.axisY2[c].options.gridThickness&&(this.axisY2[c].gridThickness=0);for(c=0;c<this.axisY2.length-1;c++)\"undefined\"===typeof this.axisY2[c].options.margin&&(this.axisY2[c].margin=10)}this.axisY&&0<this.axisY.length&&(this.axisY2&&0<this.axisY2.length)&&(0<this.axisY[0].gridThickness&&\"undefined\"===typeof this.axisY2[0].options.gridThickness?this.axisY2[0].gridThickness=\n0:0<this.axisY2[0].gridThickness&&\"undefined\"===typeof this.axisY[0].options.gridThickness&&(this.axisY[0].gridThickness=0));if(this.axisX)for(c=0;c<this.axisX.length;c++)\"undefined\"===typeof this.axisX[c].options.gridThickness&&(this.axisX[c].gridThickness=0);if(this.axisX2)for(c=0;c<this.axisX2.length;c++)\"undefined\"===typeof this.axisX2[c].options.gridThickness&&(this.axisX2[c].gridThickness=0);this.axisX&&0<this.axisX.length&&(this.axisX2&&0<this.axisX2.length)&&(0<this.axisX[0].gridThickness&&\n\"undefined\"===typeof this.axisX2[0].options.gridThickness?this.axisX2[0].gridThickness=0:0<this.axisX2[0].gridThickness&&\"undefined\"===typeof this.axisX[0].options.gridThickness&&(this.axisX[0].gridThickness=0));c=!1;if(0<this._axes.length&&this.options.zoomEnabled&&(this.zoomEnabled||this.panEnabled))for(e=0;e<this._axes.length;e++)if(!p(this._axes[e].viewportMinimum)||!p(this._axes[e].viewportMaximum)){c=!0;break}c?(La(this._zoomButton,this._resetButton),this._toolBar.style.border=this.toolbar.buttonBorderThickness+\n\"px solid \"+this.toolbar.buttonBorderColor,this._zoomButton.style.borderRight=this.toolbar.buttonBorderThickness+\"px solid \"+this.toolbar.buttonBorderColor,this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+\"px solid \"+this.toolbar.buttonBorderColor):(xa(this._zoomButton,this._resetButton),this._toolBar.style.border=this.toolbar.buttonBorderThickness+\"px solid transparent\",this.options.zoomEnabled&&(this.zoomEnabled=!0,this.panEnabled=!1));fb(this);this._processData();\nthis.options.title&&(this.title=new Aa(this,this.options.title),this.title.dockInsidePlotArea?a.push(this.title):this.title.setLayout());if(this.options.subtitles)for(e=0;e<this.options.subtitles.length;e++)c=new Ia(this,this.options.subtitles[e],e),this.subtitles.push(c),c.dockInsidePlotArea?a.push(c):c.setLayout();this.legend=new I(this,this.options.legend);for(e=0;e<this.data.length;e++)(this.data[e].showInLegend||\"pie\"===this.data[e].type||\"doughnut\"===this.data[e].type||\"funnel\"===this.data[e].type||\n\"pyramid\"===this.data[e].type)&&this.legend.dataSeries.push(this.data[e]);this.legend.dockInsidePlotArea?a.push(this.legend):this.legend.setLayout();for(e=0;e<this._axes.length;e++)if(this._axes[e].scaleBreaks&&this._axes[e].scaleBreaks._appliedBreaks.length){v?(this._breaksCanvas=va(this.width,this.height,!0),this._breaksCanvasCtx=this._breaksCanvas.getContext(\"2d\")):(this._breaksCanvas=this.canvas,this._breaksCanvasCtx=this.ctx);break}this._preRenderCanvas=va(this.width,this.height);this._preRenderCtx=\nthis._preRenderCanvas.getContext(\"2d\");\"normal\"!==this.plotInfo.axisPlacement&&\"xySwapped\"!==this.plotInfo.axisPlacement||E.setLayout(this.axisX,this.axisX2,this.axisY,this.axisY2,this.plotInfo.axisPlacement,this.layoutManager.getFreeSpace())};l.prototype.renderElements=function(){if(this.height){var a=this._plotAreaElements;this.title&&!this.title.dockInsidePlotArea&&this.title.render();for(var e=0;e<this.subtitles.length;e++)this.subtitles[e].dockInsidePlotArea||this.subtitles[e].render();this.legend.dockInsidePlotArea||\nthis.legend.render();if(\"normal\"===this.plotInfo.axisPlacement||\"xySwapped\"===this.plotInfo.axisPlacement)E.render(this.axisX,this.axisX2,this.axisY,this.axisY2,this.plotInfo.axisPlacement);else if(\"none\"===this.plotInfo.axisPlacement)this.preparePlotArea();else return;for(e=0;e<a.length;e++)a[e].setLayout(),a[e].render();var c=[];if(this.animatedRender){var b=va(this.width,this.height);b.getContext(\"2d\").drawImage(this.canvas,0,0,this.width,this.height)}ib(this);var a=this.ctx.miterLimit,f;this.ctx.miterLimit=\n3;v&&this._breaksCanvas&&(this._preRenderCtx.drawImage(this.canvas,0,0,this.width,this.height),this._preRenderCtx.drawImage(this._breaksCanvas,0,0,this.width,this.height),this._breaksCanvasCtx.globalCompositeOperation=\"source-atop\",this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),this._preRenderCtx.clearRect(0,0,this.width,this.height));for(e=0;e<this.plotInfo.plotTypes.length;e++)for(var h=this.plotInfo.plotTypes[e],r=0;r<h.plotUnits.length;r++){var x=h.plotUnits[r],\nJ=null;x.targetCanvas&&ya(x.targetCanvas);x.targetCanvas=null;this.animatedRender&&(x.targetCanvas=va(this.width,this.height),x.targetCanvasCtx=x.targetCanvas.getContext(\"2d\"),f=x.targetCanvasCtx.miterLimit,x.targetCanvasCtx.miterLimit=3);\"line\"===x.type?J=this.renderLine(x):\"stepLine\"===x.type?J=this.renderStepLine(x):\"spline\"===x.type?J=this.renderSpline(x):\"column\"===x.type?J=this.renderColumn(x):\"bar\"===x.type?J=this.renderBar(x):\"area\"===x.type?J=this.renderArea(x):\"stepArea\"===x.type?J=this.renderStepArea(x):\n\"splineArea\"===x.type?J=this.renderSplineArea(x):\"stackedColumn\"===x.type?J=this.renderStackedColumn(x):\"stackedColumn100\"===x.type?J=this.renderStackedColumn100(x):\"stackedBar\"===x.type?J=this.renderStackedBar(x):\"stackedBar100\"===x.type?J=this.renderStackedBar100(x):\"stackedArea\"===x.type?J=this.renderStackedArea(x):\"stackedArea100\"===x.type?J=this.renderStackedArea100(x):\"bubble\"===x.type?J=J=this.renderBubble(x):\"scatter\"===x.type?J=this.renderScatter(x):\"pie\"===x.type?this.renderPie(x):\"doughnut\"===\nx.type?this.renderPie(x):\"funnel\"===x.type?J=this.renderFunnel(x):\"pyramid\"===x.type?J=this.renderFunnel(x):\"candlestick\"===x.type?J=this.renderCandlestick(x):\"ohlc\"===x.type?J=this.renderCandlestick(x):\"rangeColumn\"===x.type?J=this.renderRangeColumn(x):\"error\"===x.type?J=this.renderError(x):\"rangeBar\"===x.type?J=this.renderRangeBar(x):\"rangeArea\"===x.type?J=this.renderRangeArea(x):\"rangeSplineArea\"===x.type?J=this.renderRangeSplineArea(x):\"waterfall\"===x.type?J=this.renderWaterfall(x):\"boxAndWhisker\"===\nx.type&&(J=this.renderBoxAndWhisker(x));for(var k=0;k<x.dataSeriesIndexes.length;k++)this._dataInRenderedOrder.push(this.data[x.dataSeriesIndexes[k]]);this.animatedRender&&(x.targetCanvasCtx.miterLimit=f,J&&c.push(J))}this.ctx.miterLimit=a;this.animatedRender&&this._breaksCanvasCtx&&c.push({source:this._breaksCanvasCtx,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0,startTimePercent:0.7});this.animatedRender&&0<this._indexLabels.length&&\n(f=va(this.width,this.height).getContext(\"2d\"),za(f),c.push(this.renderIndexLabels(f)));var m=this;if(0<c.length)m.disableToolTip=!0,m._animator.animate(200,m.animationDuration,function(a){m.ctx.clearRect(0,0,m.width,m.height);m.ctx.drawImage(b,0,0,Math.floor(m.width*ma),Math.floor(m.height*ma),0,0,m.width,m.height);for(var f=0;f<c.length;f++)J=c[f],1>a&&\"undefined\"!==typeof J.startTimePercent?a>=J.startTimePercent&&J.animationCallback(J.easingFunction(a-J.startTimePercent,0,1,1-J.startTimePercent),\nJ):J.animationCallback(J.easingFunction(a,0,1,1),J);m.dispatchEvent(\"dataAnimationIterationEnd\",{chart:m})},function(){c=[];for(var a=0;a<m.plotInfo.plotTypes.length;a++)for(var f=m.plotInfo.plotTypes[a],g=0;g<f.plotUnits.length;g++){var e=f.plotUnits[g];e.targetCanvas&&ya(e.targetCanvas);e.targetCanvas=null}b=null;m.disableToolTip=!1;m.dispatchEvent(\"dataAnimationEnd\",{chart:m})});else{if(m._breaksCanvas)if(v)m.plotArea.ctx.drawImage(m._breaksCanvas,0,0,this.width,this.height);else for(k=0;k<m._axes.length;k++)m._axes[k].createMask();\n0<m._indexLabels.length&&m.renderIndexLabels();m.dispatchEvent(\"dataAnimationIterationEnd\",{chart:m});m.dispatchEvent(\"dataAnimationEnd\",{chart:m})}this.attachPlotAreaEventHandlers();this.zoomEnabled||(this.panEnabled||!this._zoomButton||\"none\"===this._zoomButton.style.display)||xa(this._zoomButton,this._resetButton);this.toolTip._updateToolTip();this.renderCount++;Ha&&(m=this,setTimeout(function(){var a=document.getElementById(\"ghostCanvasCopy\");a&&(Ma(a,m.width,m.height),a.getContext(\"2d\").drawImage(m._eventManager.ghostCanvas,\n0,0))},2E3));this._breaksCanvas&&(delete this._breaksCanvas,delete this._breaksCanvasCtx);for(k=0;k<this._axes.length;k++)this._axes[k].maskCanvas&&(delete this._axes[k].maskCanvas,delete this._axes[k].maskCtx)}};l.prototype.render=function(a){a&&(this.options=a);this._initialize();this.setLayout();this.renderElements();this._preRenderCanvas&&ya(this._preRenderCanvas)};l.prototype.attachPlotAreaEventHandlers=function(){this.attachEvent({context:this,chart:this,mousedown:this._plotAreaMouseDown,mouseup:this._plotAreaMouseUp,\nmousemove:this._plotAreaMouseMove,cursor:this.panEnabled?\"move\":\"default\",capture:!0,bounds:this.plotArea})};l.prototype.categoriseDataSeries=function(){for(var a=\"\",e=0;e<this.data.length;e++)if(a=this.data[e],a.dataPoints&&(0!==a.dataPoints.length&&a.visible)&&0<=l._supportedChartTypes.indexOf(a.type)){for(var c=null,b=!1,f=null,h=!1,r=0;r<this.plotInfo.plotTypes.length;r++)if(this.plotInfo.plotTypes[r].type===a.type){b=!0;c=this.plotInfo.plotTypes[r];break}b||(c={type:a.type,totalDataSeries:0,\nplotUnits:[]},this.plotInfo.plotTypes.push(c));for(r=0;r<c.plotUnits.length;r++)if(c.plotUnits[r].axisYType===a.axisYType&&c.plotUnits[r].axisXType===a.axisXType&&c.plotUnits[r].axisYIndex===a.axisYIndex&&c.plotUnits[r].axisXIndex===a.axisXIndex){h=!0;f=c.plotUnits[r];break}h||(f={type:a.type,previousDataSeriesCount:0,index:c.plotUnits.length,plotType:c,axisXType:a.axisXType,axisYType:a.axisYType,axisYIndex:a.axisYIndex,axisXIndex:a.axisXIndex,axisY:\"primary\"===a.axisYType?this.axisY[0<=a.axisYIndex&&\na.axisYIndex<this.axisY.length?a.axisYIndex:0]:this.axisY2[0<=a.axisYIndex&&a.axisYIndex<this.axisY2.length?a.axisYIndex:0],axisX:\"primary\"===a.axisXType?this.axisX[0<=a.axisXIndex&&a.axisXIndex<this.axisX.length?a.axisXIndex:0]:this.axisX2[0<=a.axisXIndex&&a.axisXIndex<this.axisX2.length?a.axisXIndex:0],dataSeriesIndexes:[],yTotals:[],yAbsTotals:[]},c.plotUnits.push(f));c.totalDataSeries++;f.dataSeriesIndexes.push(e);a.plotUnit=f}for(e=0;e<this.plotInfo.plotTypes.length;e++)for(c=this.plotInfo.plotTypes[e],\nr=a=0;r<c.plotUnits.length;r++)c.plotUnits[r].previousDataSeriesCount=a,a+=c.plotUnits[r].dataSeriesIndexes.length};l.prototype.assignIdToDataPoints=function(){for(var a=0;a<this.data.length;a++){var e=this.data[a];if(e.dataPoints)for(var c=e.dataPoints.length,b=0;b<c;b++)e.dataPointIds[b]=++this._eventManager.lastObjectId}};l.prototype._processData=function(){this.assignIdToDataPoints();this.categoriseDataSeries();for(var a=0;a<this.plotInfo.plotTypes.length;a++)for(var e=this.plotInfo.plotTypes[a],\nc=0;c<e.plotUnits.length;c++){var b=e.plotUnits[c];\"line\"===b.type||\"stepLine\"===b.type||\"spline\"===b.type||\"column\"===b.type||\"area\"===b.type||\"stepArea\"===b.type||\"splineArea\"===b.type||\"bar\"===b.type||\"bubble\"===b.type||\"scatter\"===b.type?this._processMultiseriesPlotUnit(b):\"stackedColumn\"===b.type||\"stackedBar\"===b.type||\"stackedArea\"===b.type?this._processStackedPlotUnit(b):\"stackedColumn100\"===b.type||\"stackedBar100\"===b.type||\"stackedArea100\"===b.type?this._processStacked100PlotUnit(b):\"candlestick\"===\nb.type||\"ohlc\"===b.type||\"rangeColumn\"===b.type||\"rangeBar\"===b.type||\"rangeArea\"===b.type||\"rangeSplineArea\"===b.type||\"error\"===b.type||\"boxAndWhisker\"===b.type?this._processMultiYPlotUnit(b):\"waterfall\"===b.type&&this._processSpecificPlotUnit(b)}this.calculateAutoBreaks()};l.prototype._processMultiseriesPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,f,h=!1,r=0;r<a.dataSeriesIndexes.length;r++){var x=this.data[a.dataSeriesIndexes[r]],\nJ=0,k=!1,m=!1,q;if(\"normal\"===x.axisPlacement||\"xySwapped\"===x.axisPlacement)var n=a.axisX.sessionVariables.newViewportMinimum?a.axisX.sessionVariables.newViewportMinimum:a.axisX.options&&a.axisX.options.viewportMinimum?a.axisX.options.viewportMinimum:a.axisX.options&&a.axisX.options.minimum?a.axisX.options.minimum:a.axisX.logarithmic?0:-Infinity,g=a.axisX.sessionVariables.newViewportMaximum?a.axisX.sessionVariables.newViewportMaximum:a.axisX.options&&a.axisX.options.viewportMaximum?a.axisX.options.viewportMaximum:\na.axisX.options&&a.axisX.options.maximum?a.axisX.options.maximum:Infinity;if(x.dataPoints[J].x&&x.dataPoints[J].x.getTime||\"dateTime\"===x.xValueType)h=!0;for(J=0;J<x.dataPoints.length;J++){\"undefined\"===typeof x.dataPoints[J].x&&(x.dataPoints[J].x=J+(a.axisX.logarithmic?1:0));x.dataPoints[J].x.getTime?(h=!0,b=x.dataPoints[J].x.getTime()):b=x.dataPoints[J].x;f=x.dataPoints[J].y;b<c.min&&(c.min=b);b>c.max&&(c.max=b);f<e.min&&\"number\"===typeof f&&(e.min=f);f>e.max&&\"number\"===typeof f&&(e.max=f);if(0<\nJ){if(a.axisX.logarithmic){var d=b/x.dataPoints[J-1].x;1>d&&(d=1/d);c.minDiff>d&&1!==d&&(c.minDiff=d)}else d=b-x.dataPoints[J-1].x,0>d&&(d*=-1),c.minDiff>d&&0!==d&&(c.minDiff=d);null!==f&&null!==x.dataPoints[J-1].y&&(a.axisY.logarithmic?(d=f/x.dataPoints[J-1].y,1>d&&(d=1/d),e.minDiff>d&&1!==d&&(e.minDiff=d)):(d=f-x.dataPoints[J-1].y,0>d&&(d*=-1),e.minDiff>d&&0!==d&&(e.minDiff=d)))}if(b<n&&!k)null!==f&&(q=b);else{if(!k&&(k=!0,0<J)){J-=2;continue}if(b>g&&!m)m=!0;else if(b>g&&m)continue;x.dataPoints[J].label&&\n(a.axisX.labels[b]=x.dataPoints[J].label);b<c.viewPortMin&&(c.viewPortMin=b);b>c.viewPortMax&&(c.viewPortMax=b);null===f?c.viewPortMin===b&&q<b&&(c.viewPortMin=q):(f<e.viewPortMin&&\"number\"===typeof f&&(e.viewPortMin=f),f>e.viewPortMax&&\"number\"===typeof f&&(e.viewPortMax=f))}}x.axisX.valueType=x.xValueType=h?\"dateTime\":\"number\"}};l.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,f,h=!1,r=[],x=[],\nJ=Infinity,k=-Infinity,m={},q=0;q<a.dataSeriesIndexes.length;q++){var n=this.data[a.dataSeriesIndexes[q]],g=0,d=!1,w=!1,y;if(\"normal\"===n.axisPlacement||\"xySwapped\"===n.axisPlacement)var s=a.axisX.sessionVariables.newViewportMinimum?a.axisX.sessionVariables.newViewportMinimum:a.axisX.options&&a.axisX.options.viewportMinimum?a.axisX.options.viewportMinimum:a.axisX.options&&a.axisX.options.minimum?a.axisX.options.minimum:-Infinity,z=a.axisX.sessionVariables.newViewportMaximum?a.axisX.sessionVariables.newViewportMaximum:\na.axisX.options&&a.axisX.options.viewportMaximum?a.axisX.options.viewportMaximum:a.axisX.options&&a.axisX.options.maximum?a.axisX.options.maximum:Infinity;if(n.dataPoints[g].x&&n.dataPoints[g].x.getTime||\"dateTime\"===n.xValueType)h=!0;for(g=0;g<n.dataPoints.length;g++){\"undefined\"===typeof n.dataPoints[g].x&&(n.dataPoints[g].x=g+(a.axisX.logarithmic?1:0));n.dataPoints[g].x.getTime?(h=!0,b=n.dataPoints[g].x.getTime()):b=n.dataPoints[g].x;f=p(n.dataPoints[g].y)?0:n.dataPoints[g].y;b<c.min&&(c.min=b);\nb>c.max&&(c.max=b);if(0<g){if(a.axisX.logarithmic){var u=b/n.dataPoints[g-1].x;1>u&&(u=1/u);c.minDiff>u&&1!==u&&(c.minDiff=u)}else u=b-n.dataPoints[g-1].x,0>u&&(u*=-1),c.minDiff>u&&0!==u&&(c.minDiff=u);null!==f&&null!==n.dataPoints[g-1].y&&(a.axisY.logarithmic?0<f&&(u=f/n.dataPoints[g-1].y,1>u&&(u=1/u),e.minDiff>u&&1!==u&&(e.minDiff=u)):(u=f-n.dataPoints[g-1].y,0>u&&(u*=-1),e.minDiff>u&&0!==u&&(e.minDiff=u)))}if(b<s&&!d)null!==n.dataPoints[g].y&&(y=b);else{if(!d&&(d=!0,0<g)){g-=2;continue}if(b>z&&\n!w)w=!0;else if(b>z&&w)continue;n.dataPoints[g].label&&(a.axisX.labels[b]=n.dataPoints[g].label);b<c.viewPortMin&&(c.viewPortMin=b);b>c.viewPortMax&&(c.viewPortMax=b);null===n.dataPoints[g].y?c.viewPortMin===b&&y<b&&(c.viewPortMin=y):(m[b]=(m[b]||0)+n.dataPoints[g].y,n.dataPointEOs[g].cumulativeY=m[b],a.yTotals[b]=(a.yTotals[b]?a.yTotals[b]:0)+f,a.yAbsTotals[b]=(a.yAbsTotals[b]?a.yAbsTotals[b]:0)+Math.abs(f),0<=f?r[b]?r[b]+=f:(r[b]=f,J=Math.min(f,J)):x[b]?x[b]+=f:(x[b]=f,k=Math.max(f,k)))}}a.axisY.scaleBreaks&&\n(a.axisY.scaleBreaks.autoCalculate&&1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks)&&(e.dataPointYPositiveSums?(e.dataPointYPositiveSums.push.apply(e.dataPointYPositiveSums,r),e.dataPointYNegativeSums.push.apply(e.dataPointYPositiveSums,x)):(e.dataPointYPositiveSums=r,e.dataPointYNegativeSums=x));n.axisX.valueType=n.xValueType=h?\"dateTime\":\"number\"}for(g in r)r.hasOwnProperty(g)&&!isNaN(g)&&(a=r[g],a<e.min&&(e.min=Math.min(a,J)),a>e.max&&(e.max=a),g<c.viewPortMin||g>c.viewPortMax||(a<e.viewPortMin&&\n(e.viewPortMin=Math.min(a,J)),a>e.viewPortMax&&(e.viewPortMax=a)));for(g in x)x.hasOwnProperty(g)&&!isNaN(g)&&(a=x[g],a<e.min&&(e.min=a),a>e.max&&(e.max=Math.max(a,k)),g<c.viewPortMin||g>c.viewPortMax||(a<e.viewPortMin&&(e.viewPortMin=a),a>e.viewPortMax&&(e.viewPortMax=Math.max(a,k))))}};l.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,f,h=!1,r=!1,x=!1,J={},k=[],m=0;m<a.dataSeriesIndexes.length;m++){var q=\nthis.data[a.dataSeriesIndexes[m]],n=0,g=!1,d=!1,w;if(\"normal\"===q.axisPlacement||\"xySwapped\"===q.axisPlacement)var y=a.axisX.sessionVariables.newViewportMinimum?a.axisX.sessionVariables.newViewportMinimum:a.axisX.options&&a.axisX.options.viewportMinimum?a.axisX.options.viewportMinimum:a.axisX.options&&a.axisX.options.minimum?a.axisX.options.minimum:-Infinity,s=a.axisX.sessionVariables.newViewportMaximum?a.axisX.sessionVariables.newViewportMaximum:a.axisX.options&&a.axisX.options.viewportMaximum?a.axisX.options.viewportMaximum:\na.axisX.options&&a.axisX.options.maximum?a.axisX.options.maximum:Infinity;if(q.dataPoints[n].x&&q.dataPoints[n].x.getTime||\"dateTime\"===q.xValueType)h=!0;for(n=0;n<q.dataPoints.length;n++){\"undefined\"===typeof q.dataPoints[n].x&&(q.dataPoints[n].x=n+(a.axisX.logarithmic?1:0));q.dataPoints[n].x.getTime?(h=!0,b=q.dataPoints[n].x.getTime()):b=q.dataPoints[n].x;f=p(q.dataPoints[n].y)?null:q.dataPoints[n].y;b<c.min&&(c.min=b);b>c.max&&(c.max=b);if(0<n){if(a.axisX.logarithmic){var z=b/q.dataPoints[n-1].x;\n1>z&&(z=1/z);c.minDiff>z&&1!==z&&(c.minDiff=z)}else z=b-q.dataPoints[n-1].x,0>z&&(z*=-1),c.minDiff>z&&0!==z&&(c.minDiff=z);p(f)||null===q.dataPoints[n-1].y||(a.axisY.logarithmic?0<f&&(z=f/q.dataPoints[n-1].y,1>z&&(z=1/z),e.minDiff>z&&1!==z&&(e.minDiff=z)):(z=f-q.dataPoints[n-1].y,0>z&&(z*=-1),e.minDiff>z&&0!==z&&(e.minDiff=z)))}if(b<y&&!g)null!==f&&(w=b);else{if(!g&&(g=!0,0<n)){n-=2;continue}if(b>s&&!d)d=!0;else if(b>s&&d)continue;q.dataPoints[n].label&&(a.axisX.labels[b]=q.dataPoints[n].label);b<\nc.viewPortMin&&(c.viewPortMin=b);b>c.viewPortMax&&(c.viewPortMax=b);null===f?c.viewPortMin===b&&w<b&&(c.viewPortMin=w):(J[b]=(J[b]||0)+q.dataPoints[n].y,q.dataPointEOs[n].cumulativeY=J[b],a.yTotals[b]=(a.yTotals[b]?a.yTotals[b]:0)+f,a.yAbsTotals[b]=(a.yAbsTotals[b]?a.yAbsTotals[b]:0)+Math.abs(f),0<=f?r=!0:0>f&&(x=!0),k[b]=k[b]?k[b]+Math.abs(f):Math.abs(f))}}q.axisX.valueType=q.xValueType=h?\"dateTime\":\"number\"}a.axisY.logarithmic?(e.max=p(e.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(e.viewPortMax,\n99*Math.pow(a.axisY.logarithmBase,-0.05)),e.min=p(e.viewPortMin)?1:Math.min(e.viewPortMin,1)):r&&!x?(e.max=p(e.viewPortMax)?99:Math.max(e.viewPortMax,99),e.min=p(e.viewPortMin)?1:Math.min(e.viewPortMin,1)):r&&x?(e.max=p(e.viewPortMax)?99:Math.max(e.viewPortMax,99),e.min=p(e.viewPortMin)?-99:Math.min(e.viewPortMin,-99)):!r&&x&&(e.max=p(e.viewPortMax)?-1:Math.max(e.viewPortMax,-1),e.min=p(e.viewPortMin)?-99:Math.min(e.viewPortMin,-99));e.viewPortMin=e.min;e.viewPortMax=e.max;a.dataPointYSums=k}};l.prototype._processMultiYPlotUnit=\nfunction(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,f,h,r,x=!1,J=0;J<a.dataSeriesIndexes.length;J++){var k=this.data[a.dataSeriesIndexes[J]],m=0,q=!1,n=!1,g,d,p;if(\"normal\"===k.axisPlacement||\"xySwapped\"===k.axisPlacement)var y=a.axisX.sessionVariables.newViewportMinimum?a.axisX.sessionVariables.newViewportMinimum:a.axisX.options&&a.axisX.options.viewportMinimum?a.axisX.options.viewportMinimum:a.axisX.options&&a.axisX.options.minimum?\na.axisX.options.minimum:a.axisX.logarithmic?0:-Infinity,s=a.axisX.sessionVariables.newViewportMaximum?a.axisX.sessionVariables.newViewportMaximum:a.axisX.options&&a.axisX.options.viewportMaximum?a.axisX.options.viewportMaximum:a.axisX.options&&a.axisX.options.maximum?a.axisX.options.maximum:Infinity;if(k.dataPoints[m].x&&k.dataPoints[m].x.getTime||\"dateTime\"===k.xValueType)x=!0;for(m=0;m<k.dataPoints.length;m++){\"undefined\"===typeof k.dataPoints[m].x&&(k.dataPoints[m].x=m+(a.axisX.logarithmic?1:0));\nk.dataPoints[m].x.getTime?(x=!0,b=k.dataPoints[m].x.getTime()):b=k.dataPoints[m].x;if((f=k.dataPoints[m].y)&&f.length){h=Math.min.apply(null,f);r=Math.max.apply(null,f);d=!0;for(var z=0;z<f.length;z++)null===f.k&&(d=!1);d&&(q||(p=g),g=b)}b<c.min&&(c.min=b);b>c.max&&(c.max=b);h<e.min&&(e.min=h);r>e.max&&(e.max=r);0<m&&(a.axisX.logarithmic?(d=b/k.dataPoints[m-1].x,1>d&&(d=1/d),c.minDiff>d&&1!==d&&(c.minDiff=d)):(d=b-k.dataPoints[m-1].x,0>d&&(d*=-1),c.minDiff>d&&0!==d&&(c.minDiff=d)),f&&(null!==f[0]&&\nk.dataPoints[m-1].y&&null!==k.dataPoints[m-1].y[0])&&(a.axisY.logarithmic?(d=f[0]/k.dataPoints[m-1].y[0],1>d&&(d=1/d),e.minDiff>d&&1!==d&&(e.minDiff=d)):(d=f[0]-k.dataPoints[m-1].y[0],0>d&&(d*=-1),e.minDiff>d&&0!==d&&(e.minDiff=d))));if(!(b<y)||q){if(!q&&(q=!0,0<m)){m-=2;g=p;continue}if(b>s&&!n)n=!0;else if(b>s&&n)continue;k.dataPoints[m].label&&(a.axisX.labels[b]=k.dataPoints[m].label);b<c.viewPortMin&&(c.viewPortMin=b);b>c.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&f)for(z=0;z<f.length;z++)if(null===\nf[z]&&g<b){c.viewPortMin=g;break}null===f?c.viewPortMin===b&&g<b&&(c.viewPortMin=g):(h<e.viewPortMin&&(e.viewPortMin=h),r>e.viewPortMax&&(e.viewPortMax=r))}}k.axisX.valueType=k.xValueType=x?\"dateTime\":\"number\"}};l.prototype._processSpecificPlotUnit=function(a){if(\"waterfall\"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var e=a.axisY.dataInfo,c=a.axisX.dataInfo,b,f,h=!1,r=0;r<a.dataSeriesIndexes.length;r++){var x=this.data[a.dataSeriesIndexes[r]],d=0,k=!1,m=!1,q=b=0;if(\"normal\"===\nx.axisPlacement||\"xySwapped\"===x.axisPlacement)var n=a.axisX.sessionVariables.newViewportMinimum?a.axisX.sessionVariables.newViewportMinimum:a.axisX.options&&a.axisX.options.viewportMinimum?a.axisX.options.viewportMinimum:a.axisX.options&&a.axisX.options.minimum?a.axisX.options.minimum:a.axisX.logarithmic?0:-Infinity,g=a.axisX.sessionVariables.newViewportMaximum?a.axisX.sessionVariables.newViewportMaximum:a.axisX.options&&a.axisX.options.viewportMaximum?a.axisX.options.viewportMaximum:a.axisX.options&&\na.axisX.options.maximum?a.axisX.options.maximum:Infinity;if(x.dataPoints[d].x&&x.dataPoints[d].x.getTime||\"dateTime\"===x.xValueType)h=!0;for(d=0;d<x.dataPoints.length;d++)\"undefined\"!==typeof x.dataPoints[d].isCumulativeSum&&!0===x.dataPoints[d].isCumulativeSum?(x.dataPointEOs[d].cumulativeSumYStartValue=0,x.dataPointEOs[d].cumulativeSum=0===d?0:x.dataPointEOs[d-1].cumulativeSum,x.dataPoints[d].y=0===d?0:x.dataPointEOs[d-1].cumulativeSum):\"undefined\"!==typeof x.dataPoints[d].isIntermediateSum&&!0===\nx.dataPoints[d].isIntermediateSum?(x.dataPointEOs[d].cumulativeSumYStartValue=q,x.dataPointEOs[d].cumulativeSum=0===d?0:x.dataPointEOs[d-1].cumulativeSum,x.dataPoints[d].y=0===d?0:b,q=0===d?0:x.dataPointEOs[d-1].cumulativeSum,b=0):(f=\"number\"!==typeof x.dataPoints[d].y?0:x.dataPoints[d].y,x.dataPointEOs[d].cumulativeSumYStartValue=0===d?0:x.dataPointEOs[d-1].cumulativeSum,x.dataPointEOs[d].cumulativeSum=0===d?f:x.dataPointEOs[d-1].cumulativeSum+f,b+=f);for(d=0;d<x.dataPoints.length;d++)if(\"undefined\"===\ntypeof x.dataPoints[d].x&&(x.dataPoints[d].x=d+(a.axisX.logarithmic?1:0)),x.dataPoints[d].x.getTime?(h=!0,b=x.dataPoints[d].x.getTime()):b=x.dataPoints[d].x,f=x.dataPoints[d].y,b<c.min&&(c.min=b),b>c.max&&(c.max=b),x.dataPointEOs[d].cumulativeSum<e.min&&(e.min=x.dataPointEOs[d].cumulativeSum),x.dataPointEOs[d].cumulativeSum>e.max&&(e.max=x.dataPointEOs[d].cumulativeSum),0<d&&(a.axisX.logarithmic?(q=b/x.dataPoints[d-1].x,1>q&&(q=1/q),c.minDiff>q&&1!==q&&(c.minDiff=q)):(q=b-x.dataPoints[d-1].x,0>q&&\n(q*=-1),c.minDiff>q&&0!==q&&(c.minDiff=q)),null!==f&&null!==x.dataPoints[d-1].y&&(a.axisY.logarithmic?(f=x.dataPointEOs[d].cumulativeSum/x.dataPointEOs[d-1].cumulativeSum,1>f&&(f=1/f),e.minDiff>f&&1!==f&&(e.minDiff=f)):(f=x.dataPointEOs[d].cumulativeSum-x.dataPointEOs[d-1].cumulativeSum,0>f&&(f*=-1),e.minDiff>f&&0!==f&&(e.minDiff=f)))),!(b<n)||k){if(!k&&(k=!0,0<d)){d-=2;continue}if(b>g&&!m)m=!0;else if(b>g&&m)continue;x.dataPoints[d].label&&(a.axisX.labels[b]=x.dataPoints[d].label);b<c.viewPortMin&&\n(c.viewPortMin=b);b>c.viewPortMax&&(c.viewPortMax=b);0<d&&(x.dataPointEOs[d-1].cumulativeSum<e.viewPortMin&&(e.viewPortMin=x.dataPointEOs[d-1].cumulativeSum),x.dataPointEOs[d-1].cumulativeSum>e.viewPortMax&&(e.viewPortMax=x.dataPointEOs[d-1].cumulativeSum));x.dataPointEOs[d].cumulativeSum<e.viewPortMin&&(e.viewPortMin=x.dataPointEOs[d].cumulativeSum);x.dataPointEOs[d].cumulativeSum>e.viewPortMax&&(e.viewPortMax=x.dataPointEOs[d].cumulativeSum)}x.axisX.valueType=x.xValueType=h?\"dateTime\":\"number\"}};\nl.prototype.calculateAutoBreaks=function(){function a(a,b,c,f){if(f)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function e(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&&\n1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var g=a.axisY.dataInfo,e=a.axisX.dataInfo,h,r=e.min,k=e.max,m=g.min,q=g.max,e=e._dataRanges,g=g._dataRanges,n,x=0,d=0;d<a.dataSeriesIndexes.length;d++){var J=f.data[a.dataSeriesIndexes[d]];if(!(4>J.dataPoints.length))for(x=0;x<J.dataPoints.length;x++)if(b&&(n=(k+1-r)*Math.max(parseFloat(a.axisX.scaleBreaks.collapsibleThreshold)||10,10)/100,h=J.dataPoints[x].x.getTime?J.dataPoints[x].x.getTime():J.dataPoints[x].x,n=Math.floor((h-r)/n),h<e[n].min&&\n(e[n].min=h),h>e[n].max&&(e[n].max=h)),c){var v=(q+1-m)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((h=\"waterfall\"===a.type?J.dataPointEOs[x].cumulativeSum:J.dataPoints[x].y)&&h.length)for(var l=0;l<h.length;l++)n=Math.floor((h[l]-m)/v),h[l]<g[n].min&&(g[n].min=h[l]),h[l]>g[n].max&&(g[n].max=h[l]);else p(h)||(n=Math.floor((h-m)/v),h<g[n].min&&(g[n].min=h),h>g[n].max&&(g[n].max=h))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&&\na.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,g=b.max,e=b._dataRanges,h,r=0,k=0;k<a.dataSeriesIndexes.length;k++){var m=f.data[a.dataSeriesIndexes[k]];if(!(4>m.dataPoints.length))for(r=0;r<m.dataPoints.length;r++)h=(g+1-c)*Math.max(parseFloat(a.axisX.scaleBreaks.collapsibleThreshold)||10,10)/100,b=m.dataPoints[r].x.getTime?m.dataPoints[r].x.getTime():m.dataPoints[r].x,h=Math.floor((b-c)/h),b<e[h].min&&(e[h].min=b),b>e[h].max&&(e[h].max=\nb)}}for(var b,f=this,h=!1,r=0;r<this._axes.length;r++)if(this._axes[r].scaleBreaks&&this._axes[r].scaleBreaks.autoCalculate&&1<=this._axes[r].scaleBreaks.maxNumberOfAutoBreaks){h=!0;this._axes[r].dataInfo._dataRanges=[];for(var x=0;x<100/Math.max(parseFloat(this._axes[r].scaleBreaks.collapsibleThreshold)||10,10);x++)this._axes[r].dataInfo._dataRanges.push({min:Infinity,max:-Infinity})}if(h){for(r=0;r<this.plotInfo.plotTypes.length;r++)for(h=this.plotInfo.plotTypes[r],x=0;x<h.plotUnits.length;x++)b=\nh.plotUnits[x],\"line\"===b.type||\"stepLine\"===b.type||\"spline\"===b.type||\"column\"===b.type||\"area\"===b.type||\"stepArea\"===b.type||\"splineArea\"===b.type||\"bar\"===b.type||\"bubble\"===b.type||\"scatter\"===b.type||\"candlestick\"===b.type||\"ohlc\"===b.type||\"rangeColumn\"===b.type||\"rangeBar\"===b.type||\"rangeArea\"===b.type||\"rangeSplineArea\"===b.type||\"waterfall\"===b.type||\"error\"===b.type||\"boxAndWhisker\"===b.type?e(b):0<=b.type.indexOf(\"stacked\")&&c(b);for(r=0;r<this._axes.length;r++)if(this._axes[r].dataInfo._dataRanges){var d=\nthis._axes[r].dataInfo.min;b=(this._axes[r].dataInfo.max+1-d)*Math.max(parseFloat(this._axes[r].scaleBreaks.collapsibleThreshold)||10,10)/100;var k=this._axes[r].dataInfo._dataRanges,m,q,h=[];if(this._axes[r].dataInfo.dataPointYPositiveSums){var n=this._axes[r].dataInfo.dataPointYPositiveSums;m=k;for(x in n)if(n.hasOwnProperty(x)&&!isNaN(x)&&(q=n[x],!p(q))){var g=Math.floor((q-d)/b);q<m[g].min&&(m[g].min=q);q>m[g].max&&(m[g].max=q)}delete this._axes[r].dataInfo.dataPointYPositiveSums}if(this._axes[r].dataInfo.dataPointYNegativeSums){n=\nthis._axes[r].dataInfo.dataPointYNegativeSums;m=k;for(x in n)n.hasOwnProperty(x)&&!isNaN(x)&&(q=-1*n[x],p(q)||(g=Math.floor((q-d)/b),q<m[g].min&&(m[g].min=q),q>m[g].max&&(m[g].max=q)));delete this._axes[r].dataInfo.dataPointYNegativeSums}for(x=0;x<k.length-1;x++)if(m=k[x].max,isFinite(m))for(;x<k.length-1;)if(d=k[x+1].min,isFinite(d)){q=d-m;q>b&&h.push({diff:q,start:m,end:d});break}else x++;if(this._axes[r].scaleBreaks.customBreaks)for(x=0;x<this._axes[r].scaleBreaks.customBreaks.length;x++)for(b=\n0;b<h.length;b++)if(this._axes[r].scaleBreaks.customBreaks[x].startValue<=h[b].start&&h[b].start<=this._axes[r].scaleBreaks.customBreaks[x].endValue||this._axes[r].scaleBreaks.customBreaks[x].startValue<=h[b].start&&h[b].start<=this._axes[r].scaleBreaks.customBreaks[x].endValue||h[b].start<=this._axes[r].scaleBreaks.customBreaks[x].startValue&&this._axes[r].scaleBreaks.customBreaks[x].startValue<=h[b].end||h[b].start<=this._axes[r].scaleBreaks.customBreaks[x].endValue&&this._axes[r].scaleBreaks.customBreaks[x].endValue<=\nh[b].end)h.splice(b,1),b--;h.sort(function(a,b){return b.diff-a.diff});for(x=0;x<Math.min(h.length,this._axes[r].scaleBreaks.maxNumberOfAutoBreaks);x++)b=a(h[x].start,h[x].end,this._axes[r].logarithmic?this._axes[r].dataInfo.max/this._axes[r].dataInfo.min:this._axes[r].dataInfo.max-this._axes[r].dataInfo.min,this._axes[r].logarithmic),this._axes[r].scaleBreaks.autoBreaks.push(new ca(this,\"autoBreaks\",b,x,++this._eventManager.lastObjectId,this._axes[r].scaleBreaks)),this._axes[r].scaleBreaks._appliedBreaks.push(this._axes[r].scaleBreaks.autoBreaks[this._axes[r].scaleBreaks.autoBreaks.length-\n1]);this._axes[r].scaleBreaks._appliedBreaks.sort(function(a,b){return a.startValue-b.startValue})}}};l.prototype.renderCrosshairs=function(a){for(var e=0;e<this.axisX.length;e++)this.axisX[e]!=a&&(this.axisX[e].crosshair&&this.axisX[e].crosshair.enabled&&!this.axisX[e].crosshair._hidden)&&this.axisX[e].showCrosshair(this.axisX[e].crosshair._updatedValue);for(e=0;e<this.axisX2.length;e++)this.axisX2[e]!=a&&(this.axisX2[e].crosshair&&this.axisX2[e].crosshair.enabled&&!this.axisX2[e].crosshair._hidden)&&\nthis.axisX2[e].showCrosshair(this.axisX2[e].crosshair._updatedValue);for(e=0;e<this.axisY.length;e++)this.axisY[e]!=a&&(this.axisY[e].crosshair&&this.axisY[e].crosshair.enabled&&!this.axisY[e].crosshair._hidden)&&this.axisY[e].showCrosshair(this.axisY[e].crosshair._updatedValue);for(e=0;e<this.axisY2.length;e++)this.axisY2[e]!=a&&(this.axisY2[e].crosshair&&this.axisY2[e].crosshair.enabled&&!this.axisY2[e].crosshair._hidden)&&this.axisY2[e].showCrosshair(this.axisY2[e].crosshair._updatedValue)};l.prototype.getDataPointAtXY=\nfunction(a,e,c){c=c||!1;for(var b=[],f=this._dataInRenderedOrder.length-1;0<=f;f--){var h=null;(h=this._dataInRenderedOrder[f].getDataPointAtXY(a,e,c))&&b.push(h)}a=null;e=!1;for(c=0;c<b.length;c++)if(\"line\"===b[c].dataSeries.type||\"stepLine\"===b[c].dataSeries.type||\"area\"===b[c].dataSeries.type||\"stepArea\"===b[c].dataSeries.type)if(f=na(\"markerSize\",b[c].dataPoint,b[c].dataSeries)||8,b[c].distance<=f/2){e=!0;break}for(c=0;c<b.length;c++)e&&\"line\"!==b[c].dataSeries.type&&\"stepLine\"!==b[c].dataSeries.type&&\n\"area\"!==b[c].dataSeries.type&&\"stepArea\"!==b[c].dataSeries.type||(a?b[c].distance<=a.distance&&(a=b[c]):a=b[c]);return a};l.prototype.getObjectAtXY=function(a,e,c){var b=null;if(c=this.getDataPointAtXY(a,e,c||!1))b=c.dataSeries.dataPointIds[c.dataPointIndex];else if(v)b=ab(a,e,this._eventManager.ghostCtx);else for(c=0;c<this.legend.items.length;c++){var f=this.legend.items[c];a>=f.x1&&(a<=f.x2&&e>=f.y1&&e<=f.y2)&&(b=f.id)}return b};l.prototype.getAutoFontSize=mb;l.prototype.resetOverlayedCanvas=\nfunction(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};l.prototype.clearCanvas=lb;l.prototype.attachEvent=function(a){this._events.push(a)};l.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var e=[],c=a.changedTouches,b=c?c[0]:a,f=null;switch(a.type){case \"touchstart\":case \"MSPointerDown\":e=[\"mousemove\",\"mousedown\"];this._lastTouchData=Pa(b);this._lastTouchData.time=new Date;break;case \"touchmove\":case \"MSPointerMove\":e=[\"mousemove\"];break;\ncase \"touchend\":case \"MSPointerUp\":var h=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,e=\"touchstart\"===this._lastTouchEventType||\"MSPointerDown\"===this._lastTouchEventType||300>h?[\"mouseup\",\"click\"]:[\"mouseup\"];break;default:return}if(!(c&&1<c.length)){f=Pa(b);f.time=new Date;try{var r=f.y-this._lastTouchData.y,h=f.time-this._lastTouchData.time;if(1<Math.abs(r)&&this._lastTouchData.scroll||5<Math.abs(r)&&250>h)this._lastTouchData.scroll=!0}catch(x){}this._lastTouchEventType=\na.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c<e.length;c++)if(f=e[c],r=document.createEvent(\"MouseEvent\"),r.initMouseEvent(f,!0,!0,window,1,b.screenX,b.screenY,b.clientX,b.clientY,!1,!1,!1,!1,0,null),b.target.dispatchEvent(r),!p(this._lastTouchData.scroll)&&!this._lastTouchData.scroll||!this._lastTouchData.scroll&&250<h||\"click\"===f)a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.cancelable&&a.preventDefault()}}};\nl.prototype._dispatchRangeEvent=function(a,e){var c={chart:this};c.type=a;c.trigger=e;var b=[];this.axisX&&0<this.axisX.length&&b.push(\"axisX\");this.axisX2&&0<this.axisX2.length&&b.push(\"axisX2\");this.axisY&&0<this.axisY.length&&b.push(\"axisY\");this.axisY2&&0<this.axisY2.length&&b.push(\"axisY2\");for(var f=0;f<b.length;f++)if(p(c[b[f]])&&(c[b[f]]=[]),\"axisY\"===b[f])for(var h=0;h<this.axisY.length;h++)c[b[f]].push({viewportMinimum:this[b[f]][h].sessionVariables.newViewportMinimum,viewportMaximum:this[b[f]][h].sessionVariables.newViewportMaximum});\nelse if(\"axisY2\"===b[f])for(h=0;h<this.axisY2.length;h++)c[b[f]].push({viewportMinimum:this[b[f]][h].sessionVariables.newViewportMinimum,viewportMaximum:this[b[f]][h].sessionVariables.newViewportMaximum});else if(\"axisX\"===b[f])for(h=0;h<this.axisX.length;h++)c[b[f]].push({viewportMinimum:this[b[f]][h].sessionVariables.newViewportMinimum,viewportMaximum:this[b[f]][h].sessionVariables.newViewportMaximum});else if(\"axisX2\"===b[f])for(h=0;h<this.axisX2.length;h++)c[b[f]].push({viewportMinimum:this[b[f]][h].sessionVariables.newViewportMinimum,\nviewportMaximum:this[b[f]][h].sessionVariables.newViewportMaximum});this.dispatchEvent(a,c,this)};l.prototype._mouseEventHandler=function(a){function e(){l.capturedEventParam&&(f=l.capturedEventParam,r=f.bounds,\"mouseup\"===b&&(l.capturedEventParam=null,f.chart.overlaidCanvas.releaseCapture?f.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener(\"mouseup\",f.chart._mouseEventHandler,!1)),f.hasOwnProperty(b)&&(\"mouseup\"!==b||f.chart.overlaidCanvas.releaseCapture?a.target!==\nf.chart.overlaidCanvas&&v||f[b].call(f.context,c.x,c.y):a.target!==f.chart.overlaidCanvas&&(f.chart.isDrag=!1)))}\"undefined\"===typeof a.target&&a.srcElement&&(a.target=a.srcElement);var c=Pa(a),b=a.type,f,h;a.which?h=3==a.which:a.button&&(h=2==a.button);if(this._ignoreNextEvent)e(),this._ignoreNextEvent=!1;else if(e(),this.interactivityEnabled){a.preventManipulation&&a.preventManipulation();a.preventDefault&&a.preventDefault();var r;Ha&&window.console&&(window.console.log(b+\" --\\x3e x: \"+c.x+\"; y:\"+\nc.y),h&&window.console.log(a.which),\"mouseup\"===b&&window.console.log(\"mouseup\"));if(!h){if(!l.capturedEventParam&&this._events){for(h=0;h<this._events.length;h++)if(this._events[h].hasOwnProperty(b))if(f=this._events[h],r=f.bounds,c.x>=r.x1&&c.x<=r.x2&&c.y>=r.y1&&c.y<=r.y2){f[b].call(f.context,c.x,c.y);\"mousedown\"===b&&!0===f.capture?(l.capturedEventParam=f,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener(\"mouseup\",this._mouseEventHandler,\n!1)):\"mouseup\"===b&&(f.chart.overlaidCanvas.releaseCapture?f.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener(\"mouseup\",this._mouseEventHandler,!1));break}else f=null;a.target.style.cursor=f&&f.cursor?f.cursor:this._defaultCursor}h=this.plotArea;if(c.x<h.x1||c.x>h.x2||c.y<h.y1||c.y>h.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent(\"hidden\",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(h=0;h<\nthis.axisX.length;h++)this.axisX[h].crosshair&&this.axisX[h].crosshair.enabled&&(this.axisX[h].crosshair.hide(),this.axisX[h].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisX[h].options},this.axisX[h].crosshair));for(h=0;h<this.axisX2.length;h++)this.axisX2[h].crosshair&&this.axisX2[h].crosshair.enabled&&(this.axisX2[h].crosshair.hide(),this.axisX2[h].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisX2[h].options},this.axisX2[h].crosshair));for(h=0;h<this.axisY.length;h++)this.axisY[h].crosshair&&\nthis.axisY[h].crosshair.enabled&&(this.axisY[h].crosshair.hide(),this.axisY[h].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisY[h].options},this.axisY[h].crosshair));for(h=0;h<this.axisY2.length;h++)this.axisY2[h].crosshair&&this.axisY2[h].crosshair.enabled&&(this.axisY2[h].crosshair.hide(),this.axisY2[h].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisY2[h].options},this.axisY2[h].crosshair))}this.isDrag&&this.zoomEnabled||!this._eventManager||this._eventManager.mouseEventHandler(a)}}};\nl.prototype._plotAreaMouseDown=function(a,e){this.isDrag=!0;this.dragStartPoint={x:a,y:e}};l.prototype._plotAreaMouseUp=function(a,e){if((\"normal\"===this.plotInfo.axisPlacement||\"xySwapped\"===this.plotInfo.axisPlacement)&&this.isDrag){var c=e-this.dragStartPoint.y,b=a-this.dragStartPoint.x,f=0<=this.zoomType.indexOf(\"x\"),h=0<=this.zoomType.indexOf(\"y\"),r=!1;this.resetOverlayedCanvas();if(\"xySwapped\"===this.plotInfo.axisPlacement)var x=h,h=f,f=x;if(this.panEnabled||this.zoomEnabled){if(this.panEnabled)for(f=\nh=0;f<this._axes.length;f++)c=this._axes[f],c.logarithmic?c.viewportMinimum<c.minimum?(h=c.minimum/c.viewportMinimum,c.sessionVariables.newViewportMinimum=c.viewportMinimum*h,c.sessionVariables.newViewportMaximum=c.viewportMaximum*h,r=!0):c.viewportMaximum>c.maximum&&(h=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/h,c.sessionVariables.newViewportMaximum=c.viewportMaximum/h,r=!0):c.viewportMinimum<c.minimum?(h=c.minimum-c.viewportMinimum,c.sessionVariables.newViewportMinimum=\nc.viewportMinimum+h,c.sessionVariables.newViewportMaximum=c.viewportMaximum+h,r=!0):c.viewportMaximum>c.maximum&&(h=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-h,c.sessionVariables.newViewportMaximum=c.viewportMaximum-h,r=!0);else if((!f||2<Math.abs(b))&&(!h||2<Math.abs(c))&&this.zoomEnabled){if(!this.dragStartPoint)return;c=f?this.dragStartPoint.x:this.plotArea.x1;b=h?this.dragStartPoint.y:this.plotArea.y1;f=f?a:this.plotArea.x2;h=h?e:this.plotArea.y2;2<Math.abs(c-\nf)&&2<Math.abs(b-h)&&this._zoomPanToSelectedRegion(c,b,f,h)&&(r=!0)}r&&(this._ignoreNextEvent=!0,this._dispatchRangeEvent(\"rangeChanging\",\"zoom\"),this.stockChart&&(this.stockChart.navigator&&this.stockChart.navigator.enabled)&&(this.stockChart._rangeEventParameter||(this.stockChart._rangeEventParameter={stockChart:this.stockChart,source:\"chart\",index:this.stockChart.charts.indexOf(this),minimum:this.stockChart.sessionVariables._axisXMin,maximum:this.stockChart.sessionVariables._axisXMax}),this.stockChart._rangeEventParameter.type=\n\"rangeChanging\",this.stockChart.dispatchEvent(\"rangeChanging\",this.stockChart._rangeEventParameter,this.stockChart)),this.render(),this._dispatchRangeEvent(\"rangeChanged\",\"zoom\"),this.stockChart&&(this.stockChart.navigator&&this.stockChart.navigator.enabled)&&(this.stockChart._rangeEventParameter.type=\"rangeChanged\",this.stockChart.dispatchEvent(\"rangeChanged\",this.stockChart._rangeEventParameter,this.stockChart)),r&&(this.zoomEnabled&&\"none\"===this._zoomButton.style.display)&&(La(this._zoomButton,\nthis._resetButton),ta(this,this._zoomButton,\"pan\"),ta(this,this._resetButton,\"reset\")))}}this.isDrag=!1;if(\"none\"!==this.plotInfo.axisPlacement){this.resetOverlayedCanvas();if(this.axisX&&0<this.axisX.length)for(r=0;r<this.axisX.length;r++)this.axisX[r].crosshair&&this.axisX[r].crosshair.enabled&&this.axisX[r].renderCrosshair(a,e);if(this.axisX2&&0<this.axisX2.length)for(r=0;r<this.axisX2.length;r++)this.axisX2[r].crosshair&&this.axisX2[r].crosshair.enabled&&this.axisX2[r].renderCrosshair(a,e);if(this.axisY&&\n0<this.axisY.length)for(r=0;r<this.axisY.length;r++)this.axisY[r].crosshair&&this.axisY[r].crosshair.enabled&&this.axisY[r].renderCrosshair(a,e);if(this.axisY2&&0<this.axisY2.length)for(r=0;r<this.axisY2.length;r++)this.axisY2[r].crosshair&&this.axisY2[r].crosshair.enabled&&this.axisY2[r].renderCrosshair(a,e);if(this.axisX&&0<this.axisX.length)for(r=0;r<this.axisX.length;r++)this.axisX[r].crosshair&&this.axisX[r].crosshair.enabled&&this.axisX[r].crosshair.renderLabel();if(this.axisX2&&0<this.axisX2.length)for(r=\n0;r<this.axisX2.length;r++)this.axisX2[r].crosshair&&this.axisX2[r].crosshair.enabled&&this.axisX2[r].crosshair.renderLabel();if(this.axisY&&0<this.axisY.length)for(r=0;r<this.axisY.length;r++)this.axisY[r].crosshair&&this.axisY[r].crosshair.enabled&&this.axisY[r].crosshair.renderLabel();if(this.axisY2&&0<this.axisY2.length)for(r=0;r<this.axisY2.length;r++)this.axisY2[r].crosshair&&this.axisY2[r].crosshair.enabled&&this.axisY2[r].crosshair.renderLabel()}};l.prototype._plotAreaMouseMove=function(a,\ne){if(this.isDrag&&\"none\"!==this.plotInfo.axisPlacement){var c=0,b=0,f=c=null,f=0<=this.zoomType.indexOf(\"x\"),h=0<=this.zoomType.indexOf(\"y\"),r=this;\"xySwapped\"===this.plotInfo.axisPlacement&&(c=h,h=f,f=c);c=this.dragStartPoint.x-a;b=this.dragStartPoint.y-e;if(2<Math.abs(c)&&8>Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent(\"hidden\",{chart:this,toolTip:this.toolTip},this.toolTip);for(var x=0;x<this.axisX.length;x++)this.axisX[x].crosshair&&\nthis.axisX[x].crosshair.enabled&&(this.axisX[x].crosshair.hide(),this.axisX[x].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisX[x].options},this.axisX[x].crosshair));for(x=0;x<this.axisX2.length;x++)this.axisX2[x].crosshair&&this.axisX2[x].crosshair.enabled&&(this.axisX2[x].crosshair.hide(),this.axisX2[x].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisX2[x].options},this.axisX2[x].crosshair));for(x=0;x<this.axisY.length;x++)this.axisY[x].crosshair&&this.axisY[x].crosshair.enabled&&\n(this.axisY[x].crosshair.hide(),this.axisY[x].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisY[x].options},this.axisY[x].crosshair));for(x=0;x<this.axisY2.length;x++)this.axisY2[x].crosshair&&this.axisY2[x].crosshair.enabled&&(this.axisY2[x].crosshair.hide(),this.axisY2[x].crosshair.dispatchEvent(\"hidden\",{chart:this,axis:this.axisY2[x].options},this.axisY2[x].crosshair))}else this.panEnabled||this.zoomEnabled||this.toolTip.mouseMoveHandler(a,e);if((!f||2<Math.abs(c)||!h||2<Math.abs(b))&&\n(this.panEnabled||this.zoomEnabled))if(this.panEnabled)f={x1:f?this.plotArea.x1+c:this.plotArea.x1,y1:h?this.plotArea.y1+b:this.plotArea.y1,x2:f?this.plotArea.x2+c:this.plotArea.x2,y2:h?this.plotArea.y2+b:this.plotArea.y2},clearTimeout(r._panTimerId),r._panTimerId=setTimeout(function(b,c,f,g){return function(){r._zoomPanToSelectedRegion(b,c,f,g,!0)&&(r._dispatchRangeEvent(\"rangeChanging\",\"pan\"),r.stockChart&&(r.stockChart.navigator&&r.stockChart.navigator.enabled)&&(r.stockChart._rangeEventParameter.type=\n\"rangeChanging\",r.stockChart.dispatchEvent(\"rangeChanging\",r.stockChart._rangeEventParameter,r.stockChart)),r.render(),r._dispatchRangeEvent(\"rangeChanged\",\"pan\"),r.stockChart&&(r.stockChart.navigator&&r.stockChart.navigator.enabled)&&(r.stockChart._rangeEventParameter.type=\"rangeChanged\",r.stockChart.dispatchEvent(\"rangeChanged\",r.stockChart._rangeEventParameter,r.stockChart)),r.dragStartPoint.x=a,r.dragStartPoint.y=e)}}(f.x1,f.y1,f.x2,f.y2),0);else if(this.zoomEnabled){this.resetOverlayedCanvas();\nc=this.overlaidCanvasCtx.globalAlpha;this.overlaidCanvasCtx.fillStyle=\"#A89896\";var b=f?this.dragStartPoint.x:this.plotArea.x1,x=h?this.dragStartPoint.y:this.plotArea.y1,d=f?a-this.dragStartPoint.x:this.plotArea.x2-this.plotArea.x1,k=h?e-this.dragStartPoint.y:this.plotArea.y2-this.plotArea.y1;this.validateRegion(b,x,f?a:this.plotArea.x2-this.plotArea.x1,h?e:this.plotArea.y2-this.plotArea.y1,\"xy\"!==this.zoomType).isValid&&(this.resetOverlayedCanvas(),this.overlaidCanvasCtx.fillStyle=\"#99B2B5\");this.overlaidCanvasCtx.globalAlpha=\n0.7;this.overlaidCanvasCtx.fillRect(b,x,d,k);this.overlaidCanvasCtx.globalAlpha=c}}else if(this.toolTip.mouseMoveHandler(a,e),\"none\"!==this.plotInfo.axisPlacement){if(this.axisX&&0<this.axisX.length)for(f=0;f<this.axisX.length;f++)this.axisX[f].crosshair&&this.axisX[f].crosshair.enabled&&this.axisX[f].renderCrosshair(a,e);if(this.axisX2&&0<this.axisX2.length)for(f=0;f<this.axisX2.length;f++)this.axisX2[f].crosshair&&this.axisX2[f].crosshair.enabled&&this.axisX2[f].renderCrosshair(a,e);if(this.axisY&&\n0<this.axisY.length)for(f=0;f<this.axisY.length;f++)this.axisY[f].crosshair&&this.axisY[f].crosshair.enabled&&this.axisY[f].renderCrosshair(a,e);if(this.axisY2&&0<this.axisY2.length)for(f=0;f<this.axisY2.length;f++)this.axisY2[f].crosshair&&this.axisY2[f].crosshair.enabled&&this.axisY2[f].renderCrosshair(a,e);if(this.axisX&&0<this.axisX.length)for(f=0;f<this.axisX.length;f++)this.axisX[f].crosshair&&this.axisX[f].crosshair.enabled&&this.axisX[f].crosshair.renderLabel();if(this.axisX2&&0<this.axisX2.length)for(f=\n0;f<this.axisX2.length;f++)this.axisX2[f].crosshair&&this.axisX2[f].crosshair.enabled&&this.axisX2[f].crosshair.renderLabel();if(this.axisY&&0<this.axisY.length)for(f=0;f<this.axisY.length;f++)this.axisY[f].crosshair&&this.axisY[f].crosshair.enabled&&this.axisY[f].crosshair.renderLabel();if(this.axisY2&&0<this.axisY2.length)for(f=0;f<this.axisY2.length;f++)this.axisY2[f].crosshair&&this.axisY2[f].crosshair.enabled&&this.axisY2[f].crosshair.renderLabel()}};l.prototype._zoomPanToSelectedRegion=function(a,\ne,c,b,f){a=this.validateRegion(a,e,c,b,f);e=a.axesWithValidRange;c=a.axesRanges;if(a.isValid)for(b=0;b<e.length;b++)f=c[b],e[b].setViewPortRange(f.val1,f.val2),this.syncCharts&&\"y\"!=this.zoomType&&this.syncCharts(f.val1,f.val2),this.stockChart&&(this.stockChart._rangeEventParameter={stockChart:this.stockChart,source:\"chart\",index:this.stockChart.charts.indexOf(this),minimum:f.val1,maximum:f.val2});return a.isValid};l.prototype.validateRegion=function(a,e,c,b,f){f=f||!1;for(var h=0<=this.zoomType.indexOf(\"x\"),\nr=0<=this.zoomType.indexOf(\"y\"),x=!1,d=[],k=[],m=[],q=0;q<this._axes.length;q++)(\"axisX\"===this._axes[q].type&&h||\"axisY\"===this._axes[q].type&&r)&&k.push(this._axes[q]);for(r=0;r<k.length;r++){var q=k[r],h=!1,n=q.convertPixelToValue({x:a,y:e}),g=q.convertPixelToValue({x:c,y:b});if(n>g)var p=g,g=n,n=p;if(q.scaleBreaks)for(p=0;!h&&p<q.scaleBreaks._appliedBreaks.length;p++)h=q.scaleBreaks._appliedBreaks[p].startValue<=n&&q.scaleBreaks._appliedBreaks[p].endValue>=g;if(isFinite(q.dataInfo.minDiff))if(p=\nq.getApparentDifference(n,g,null,!0),!(h||!(this.panEnabled&&q.scaleBreaks&&q.scaleBreaks._appliedBreaks.length)&&(q.logarithmic&&p<Math.pow(q.dataInfo.minDiff,3)||!q.logarithmic&&p<3*Math.abs(q.dataInfo.minDiff))||n<q.minimum||g>q.maximum))d.push(q),m.push({val1:n,val2:g}),x=!0;else if(!f){x=!1;break}}return{isValid:x,axesWithValidRange:d,axesRanges:m}};l.prototype.preparePlotArea=function(){var a=this.plotArea;!v&&(0<a.x1||0<a.y1)&&a.ctx.translate(a.x1,a.y1);if((this.axisX[0]||this.axisX2[0])&&\n(this.axisY[0]||this.axisY2[0])){var e=this.axisX[0]?this.axisX[0].lineCoordinates:this.axisX2[0].lineCoordinates;if(this.axisY&&0<this.axisY.length&&this.axisY[0]){var c=this.axisY[0];a.x1=e.x1<e.x2?e.x1:c.lineCoordinates.x1;a.y1=e.y1<c.lineCoordinates.y1?e.y1:c.lineCoordinates.y1;a.x2=e.x2>c.lineCoordinates.x2?e.x2:c.lineCoordinates.x2;a.y2=e.y1>c.lineCoordinates.y2?e.y1:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0<this.axisY2.length&&this.axisY2[0]&&(c=this.axisY2[0],\na.x1=e.x1<e.x2?e.x1:c.lineCoordinates.x1,a.y1=e.y1<c.lineCoordinates.y1?e.y1:c.lineCoordinates.y1,a.x2=e.x2>c.lineCoordinates.x2?e.x2:c.lineCoordinates.x2,a.y2=e.y2>c.lineCoordinates.y2?e.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else e=this.layoutManager.getFreeSpace(),a.x1=e.x1,a.x2=e.x2,a.y1=e.y1,a.y2=e.y2,a.width=e.width,a.height=e.height;v||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+\"px\",a.canvas.style.top=a.y1+\"px\",(0<a.x1||0<a.y1)&&a.ctx.translate(-a.x1,\n-a.y1));a.layoutManager=new Ea(a.x1,a.y1,a.x2,a.y2,2)};l.prototype.renderIndexLabels=function(a){var e=a||this.plotArea.ctx,c=this.plotArea,b=0,f=0,h=0,r=f=h=0,x=0,d=b=0,k=0;for(a=0;a<this._indexLabels.length;a++){var m=this._indexLabels[a],q=m.chartType.toLowerCase(),n,g,x=na(\"indexLabelFontColor\",m.dataPoint,m.dataSeries),Ra=na(\"indexLabelFontSize\",m.dataPoint,m.dataSeries),d=na(\"indexLabelFontFamily\",m.dataPoint,m.dataSeries),k=na(\"indexLabelFontStyle\",m.dataPoint,m.dataSeries);n=na(\"indexLabelFontWeight\",\nm.dataPoint,m.dataSeries);var w=na(\"indexLabelBackgroundColor\",m.dataPoint,m.dataSeries);g=na(\"indexLabelMaxWidth\",m.dataPoint,m.dataSeries);var h=na(\"indexLabelWrap\",m.dataPoint,m.dataSeries),y=na(\"indexLabelLineDashType\",m.dataPoint,m.dataSeries),s=na(\"indexLabelLineColor\",m.dataPoint,m.dataSeries),z=p(m.dataPoint.indexLabelLineThickness)?p(m.dataSeries.options.indexLabelLineThickness)?0:m.dataSeries.options.indexLabelLineThickness:m.dataPoint.indexLabelLineThickness,b=0<z?Math.min(10,(\"normal\"===\nthis.plotInfo.axisPlacement?this.plotArea.height:this.plotArea.width)<<0):0,u={percent:null,total:null},l=null;if(0<=m.dataSeries.type.indexOf(\"stacked\")||\"pie\"===m.dataSeries.type||\"doughnut\"===m.dataSeries.type)u=this.getPercentAndTotal(m.dataSeries,m.dataPoint);if(m.dataSeries.indexLabelFormatter||m.dataPoint.indexLabelFormatter)l={chart:this,dataSeries:m.dataSeries,dataPoint:m.dataPoint,index:m.indexKeyword,total:u.total,percent:u.percent};var C=m.dataPoint.indexLabelFormatter?m.dataPoint.indexLabelFormatter(l):\nm.dataPoint.indexLabel?this.replaceKeywordsWithValue(m.dataPoint.indexLabel,m.dataPoint,m.dataSeries,null,m.indexKeyword):m.dataSeries.indexLabelFormatter?m.dataSeries.indexLabelFormatter(l):m.dataSeries.indexLabel?this.replaceKeywordsWithValue(m.dataSeries.indexLabel,m.dataPoint,m.dataSeries,null,m.indexKeyword):null;if(null!==C&&\"\"!==C){var u=na(\"indexLabelPlacement\",m.dataPoint,m.dataSeries),l=na(\"indexLabelOrientation\",m.dataPoint,m.dataSeries),A=na(\"indexLabelTextAlign\",m.dataPoint,m.dataSeries),\nt=m.direction,f=m.dataSeries.axisX,r=m.dataSeries.axisY,B=!1,w=new ka(e,{x:0,y:0,maxWidth:g?g:0.5*this.width,maxHeight:h?5*Ra:1.5*Ra,angle:\"horizontal\"===l?0:-90,text:C,padding:0,backgroundColor:w,textAlign:A,fontSize:Ra,fontFamily:d,fontWeight:n,fontColor:x,fontStyle:k,textBaseline:\"middle\"});w.measureText();m.dataSeries.indexLabelMaxWidth=w.maxWidth;if(\"stackedarea100\"===q){if(m.point.x<c.x1||m.point.x>c.x2||m.point.y<c.y1-1||m.point.y>c.y2+1)continue}else if(\"rangearea\"===q||\"rangesplinearea\"===\nq){if(m.dataPoint.x<f.viewportMinimum||m.dataPoint.x>f.viewportMaximum||Math.max.apply(null,m.dataPoint.y)<r.viewportMinimum||Math.min.apply(null,m.dataPoint.y)>r.viewportMaximum)continue}else if(0<=q.indexOf(\"line\")||0<=q.indexOf(\"area\")||0<=q.indexOf(\"bubble\")||0<=q.indexOf(\"scatter\")){if(m.dataPoint.x<f.viewportMinimum||m.dataPoint.x>f.viewportMaximum||m.dataPoint.y<r.viewportMinimum||m.dataPoint.y>r.viewportMaximum)continue}else if(0<=q.indexOf(\"column\")||\"waterfall\"===q||\"error\"===q&&!m.axisSwapped){if(m.dataPoint.x<\nf.viewportMinimum||m.dataPoint.x>f.viewportMaximum||m.bounds.y1>c.y2||m.bounds.y2<c.y1)continue}else if(0<=q.indexOf(\"bar\")||\"error\"===q){if(m.dataPoint.x<f.viewportMinimum||m.dataPoint.x>f.viewportMaximum||m.bounds.x1>c.x2||m.bounds.x2<c.x1)continue}else if(\"candlestick\"===q||\"ohlc\"===q){if(m.dataPoint.x<f.viewportMinimum||m.dataPoint.x>f.viewportMaximum||Math.max.apply(null,m.dataPoint.y)<r.viewportMinimum||Math.min.apply(null,m.dataPoint.y)>r.viewportMaximum)continue}else if(m.dataPoint.x<f.viewportMinimum||\nm.dataPoint.x>f.viewportMaximum)continue;r=x=2;\"horizontal\"===l?(d=w.width,k=w.height):(k=w.width,d=w.height);if(\"normal\"===this.plotInfo.axisPlacement){if(0<=q.indexOf(\"line\")||0<=q.indexOf(\"area\"))u=\"auto\",x=4;else if(0<=q.indexOf(\"stacked\"))\"auto\"===u&&(u=\"inside\");else if(\"bubble\"===q||\"scatter\"===q)u=\"inside\";n=m.point.x-d/2+(\"horizontal\"===l?0:w._lineHeight/2);if(\"inside\"!==u)f=c.y1,h=c.y2,0<t?(g=m.point.y+w._lineHeight/2-k-x-b,g<f&&(g=\"auto\"===u?Math.max(m.point.y,f)+w._lineHeight/2+x+b:f+\nw._lineHeight/2+x+b,B=g+(\"horizontal\"===l?k-w._lineHeight/2:0)>m.point.y,!B||(0<=q.indexOf(\"line\")||0<=q.indexOf(\"area\"))||(g-=b))):(g=m.point.y+w._lineHeight/2+x+b,g>h-k+w._lineHeight/2-x&&(g=\"auto\"===u?Math.min(m.point.y,h)+w._lineHeight/2-k-x-b:h+w._lineHeight/2-k-x-b,B=g-(\"horizontal\"===l?w._lineHeight/2:k)<m.point.y,!B||(0<=q.indexOf(\"line\")||0<=q.indexOf(\"area\"))||(g+=b)));else{Math.max(m.bounds.y1,c.y1);h=Math.min(m.bounds.y2,c.y2)-k+w._lineHeight/2;b=0<=q.indexOf(\"range\")||\"error\"===q?0<t?\nMath.max(m.bounds.y1,c.y1)+w._lineHeight/2+x:Math.min(m.bounds.y2,c.y2)+w._lineHeight/2-k-x:(Math.max(m.bounds.y1,c.y1)+Math.min(m.bounds.y2,c.y2))/2-k/2+w._lineHeight/2;if(0<t){if(g=b,\"bubble\"===q||\"scatter\"===q)g=m.point.y-k/2+w._lineHeight/2,k>m.bounds.y2-m.bounds.y1&&(g-=k/2+x),0>g-w._lineHeight/2&&(g+=Math.abs(g-w._lineHeight/2)<=(m.bounds.y2-m.bounds.y1)/2+x?Math.abs(g-w._lineHeight/2):(m.bounds.y2-m.bounds.y1)/2+x)}else g=Math.min(m.point.y,b),g>h-k-x&&(\"bubble\"===q||\"scatter\"===q)&&(g=Math.min(m.point.y+\nx,c.y2-k-x));g=Math.min(g,h)}}else 0<=q.indexOf(\"line\")||0<=q.indexOf(\"area\")||0<=q.indexOf(\"scatter\")?(u=\"auto\",r=4):0<=q.indexOf(\"stacked\")?\"auto\"===u&&(u=\"inside\"):\"bubble\"===q&&(u=\"inside\"),g=m.point.y+w._lineHeight/2-k/2,\"inside\"!==u?(h=c.x1,f=c.x2,0>t?(n=m.point.x-d+(\"horizontal\"===l?0:w._lineHeight/2)-r-b,(\"horizontal\"===l?n:n-w._lineHeight/2)<h&&(n=\"auto\"===u?Math.max(m.point.x,h)+(\"horizontal\"===l?0:w._lineHeight/2)+x+b:h+(\"horizontal\"===l?0:w._lineHeight/2)+r,(B=n+d-(\"horizontal\"===l?0:\nw._lineHeight/2)>m.point.x)&&(n-=b))):(n=m.point.x+(\"horizontal\"===l?0:w._lineHeight/2)+r+b,(\"horizontal\"===l?n:n-w._lineHeight/2)>f-d-r-b&&(n=\"auto\"===u?Math.min(m.point.x,f)-(\"horizontal\"===l?d:d-w._lineHeight/2)-r-b:f-d-r+(\"horizontal\"===l?0:w._lineHeight/2),(B=n-(\"horizontal\"===l?0:w._lineHeight/2)<m.point.x)&&(n+=b)))):(h=Math.max(m.bounds.x1,c.x1),Math.min(m.bounds.x2,c.x2),b=0<=q.indexOf(\"range\")||\"error\"===q?0>t?Math.max(m.bounds.x1,c.x1):Math.min(m.bounds.x2,c.x2)-d-r+(\"horizontal\"===l?0:\nw._lineHeight/2):(Math.max(m.bounds.x1,c.x1)+Math.min(m.bounds.x2,c.x2))/2-d/2+(\"horizontal\"===l?0:w._lineHeight/2),n=0>t?b:Math.min(m.point.x,b),n=Math.max(n,h+(\"horizontal\"===l?0:w._lineHeight/2+x)));\"vertical\"===l&&(g+=k-w._lineHeight/2,0<=\"ohlc candlestick boxandwhisker column rangecolumn stackedcolumn stackedcolumn100 error\".split(\" \").indexOf(q)&&(B=0<t?g+(\"horizontal\"===l?k-w._lineHeight/2:0)>m.point.y:g-(\"horizontal\"===l?w._lineHeight/2:k)<m.point.y),\"bubble\"===q||\"scatter\"===q)&&(n+=w._lineHeight/\n2-Ra/2);w.x=n;w.y=g;w.render(!0);z&&(\"inside\"!==u&&(0>q.indexOf(\"bar\")&&(\"error\"!==q||!m.axisSwapped)&&m.point.x>c.x1&&m.point.x<c.x2||!B)&&(-1===\"ohlc candlestick boxandwhisker column rangecolumn stackedcolumn stackedcolumn100 error\".split(\" \").indexOf(q)&&(\"error\"!==q||m.axisSwapped)&&m.point.y>c.y1&&m.point.y<c.y2||!B))&&(e.lineWidth=z,e.strokeStyle=s?s:\"gray\",e.setLineDash&&e.setLineDash(H(y,z)),e.beginPath(),e.moveTo(m.point.x,m.point.y),0<=q.indexOf(\"bar\")||\"error\"===q&&m.axisSwapped?e.lineTo(n+\n(0<m.direction?0:d)+(\"vertical\"===l?-w._lineHeight/2:0),g+(\"vertical\"===l?-k/2:k/2-w._lineHeight/2)):0<=q.indexOf(\"column\")||\"error\"===q&&!m.axisSwapped?e.lineTo(n+d/2-(\"horizontal\"===l?0:w._lineHeight/2),g+(\"vertical\"===l?g-k<m.point.y?0:-k:(g-w._lineHeight/2<m.point.y?k:0)-w._lineHeight/2)):0<=q.indexOf(\"waterfall\")?e.lineTo(n+d/2-(\"horizontal\"===l?0:w._lineHeight/2),\"vertical\"===l?0<t&&g<m.point.y?g:0>t&&g-k>m.point.y?g-k:m.point.y:0<t&&g+k-w._lineHeight/2<m.point.y?g+k-w._lineHeight/2:0>t&&g-\nw._lineHeight/2>m.point.y?g-w._lineHeight/2:m.point.y):e.lineTo(n+d/2-(\"horizontal\"===l?0:w._lineHeight/2),g+(\"vertical\"===l?g-k<m.point.y?0:-k:(g+k-w._lineHeight/2<m.point.y?k:0)-w._lineHeight/2)),e.stroke())}}e={source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0,startTimePercent:0.7};for(a=0;a<this._indexLabels.length;a++)m=this._indexLabels[a],w=na(\"indexLabelBackgroundColor\",m.dataPoint,m.dataSeries),m.dataSeries.indexLabelBackgroundColor=\np(w)?v?\"transparent\":null:w;return e};l.prototype.renderLine=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var f=this.plotArea;c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();for(var h=[],r,x=0;x<a.dataSeriesIndexes.length;x++){var d=a.dataSeriesIndexes[x],k=this.data[d];c.lineWidth=k.lineThickness;var m=k.dataPoints,q=\"solid\";if(c.setLineDash){var n=H(k.nullDataLineDashType,\nk.lineThickness),q=k.lineDashType,g=H(q,k.lineThickness);c.setLineDash(g)}var p=k.id;this._eventManager.objectMap[p]={objectType:\"dataSeries\",dataSeriesIndex:d};p=T(p);b.strokeStyle=p;b.lineWidth=0<k.lineThickness?Math.max(k.lineThickness,4):0;var p=k._colorSet,w=p=k.lineColor=k.options.lineColor?k.options.lineColor:p[0];c.strokeStyle=p;var y=!0,s=0,l,u;c.beginPath();if(0<m.length){for(var D=!1,s=0;s<m.length;s++)if(l=m[s].x.getTime?m[s].x.getTime():m[s].x,!(l<a.axisX.dataInfo.viewPortMin||l>a.axisX.dataInfo.viewPortMax&&\n(!k.connectNullData||!D)))if(\"number\"!==typeof m[s].y)0<s&&!(k.connectNullData||D||y)&&(c.stroke(),v&&b.stroke()),D=!0;else{l=a.axisX.convertValueToPixel(l);u=a.axisY.convertValueToPixel(m[s].y);var C=k.dataPointIds[s];this._eventManager.objectMap[C]={id:C,objectType:\"dataPoint\",dataSeriesIndex:d,dataPointIndex:s,x1:l,y1:u};y||D?(!y&&k.connectNullData?(c.setLineDash&&(k.options.nullDataLineDashType||q===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(c.stroke(),c.beginPath(),c.moveTo(r.x,\nr.y),q=k.nullDataLineDashType,c.setLineDash(n)),c.lineTo(l,u),v&&b.lineTo(l,u)):(c.beginPath(),c.moveTo(l,u),v&&(b.beginPath(),b.moveTo(l,u))),D=y=!1):(c.lineTo(l,u),v&&b.lineTo(l,u),0==s%500&&(c.stroke(),c.beginPath(),c.moveTo(l,u),v&&(b.stroke(),b.beginPath(),b.moveTo(l,u))));r={x:l,y:u};s<m.length-1&&(w!==(m[s].lineColor||p)||q!==(m[s].lineDashType||k.lineDashType))&&(c.stroke(),c.beginPath(),c.moveTo(l,u),w=m[s].lineColor||p,c.strokeStyle=w,c.setLineDash&&(m[s].lineDashType?(q=m[s].lineDashType,\nc.setLineDash(H(q,k.lineThickness))):(q=k.lineDashType,c.setLineDash(g))));if(0!==m[s].markerSize&&(0<m[s].markerSize||0<k.markerSize)){var A=k.getMarkerProperties(s,l,u,c);h.push(A);C=T(C);v&&h.push({x:l,y:u,ctx:b,type:A.type,size:A.size,color:C,borderColor:C,borderThickness:A.borderThickness})}(m[s].indexLabel||k.indexLabel||m[s].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:\"line\",dataPoint:m[s],dataSeries:k,point:{x:l,y:u},direction:0>m[s].y===a.axisY.reversed?\n1:-1,color:p})}c.stroke();v&&b.stroke()}}Y.drawMarkers(h);v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),b.beginPath());c.restore();c.beginPath();\nreturn{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStepLine=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var f=this.plotArea;c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();for(var h=[],r,x=0;x<a.dataSeriesIndexes.length;x++){var d=a.dataSeriesIndexes[x],k=this.data[d];c.lineWidth=k.lineThickness;\nvar m=k.dataPoints,q=\"solid\";if(c.setLineDash){var n=H(k.nullDataLineDashType,k.lineThickness),q=k.lineDashType,g=H(q,k.lineThickness);c.setLineDash(g)}var p=k.id;this._eventManager.objectMap[p]={objectType:\"dataSeries\",dataSeriesIndex:d};p=T(p);b.strokeStyle=p;b.lineWidth=0<k.lineThickness?Math.max(k.lineThickness,4):0;var p=k._colorSet,w=p=k.lineColor=k.options.lineColor?k.options.lineColor:p[0];c.strokeStyle=p;var l=!0,s=0,z,u;c.beginPath();if(0<m.length){for(var D=!1,s=0;s<m.length;s++)if(z=m[s].getTime?\nm[s].x.getTime():m[s].x,!(z<a.axisX.dataInfo.viewPortMin||z>a.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!D)))if(\"number\"!==typeof m[s].y)0<s&&!(k.connectNullData||D||l)&&(c.stroke(),v&&b.stroke()),D=!0;else{var C=u;z=a.axisX.convertValueToPixel(z);u=a.axisY.convertValueToPixel(m[s].y);var A=k.dataPointIds[s];this._eventManager.objectMap[A]={id:A,objectType:\"dataPoint\",dataSeriesIndex:d,dataPointIndex:s,x1:z,y1:u};l||D?(!l&&k.connectNullData?(c.setLineDash&&(k.options.nullDataLineDashType||\nq===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(c.stroke(),c.beginPath(),c.moveTo(r.x,r.y),q=k.nullDataLineDashType,c.setLineDash(n)),c.lineTo(z,C),c.lineTo(z,u),v&&(b.lineTo(z,C),b.lineTo(z,u))):(c.beginPath(),c.moveTo(z,u),v&&(b.beginPath(),b.moveTo(z,u))),D=l=!1):(c.lineTo(z,C),v&&b.lineTo(z,C),c.lineTo(z,u),v&&b.lineTo(z,u),0==s%500&&(c.stroke(),c.beginPath(),c.moveTo(z,u),v&&(b.stroke(),b.beginPath(),b.moveTo(z,u))));r={x:z,y:u};s<m.length-1&&(w!==(m[s].lineColor||p)||q!==(m[s].lineDashType||\nk.lineDashType))&&(c.stroke(),c.beginPath(),c.moveTo(z,u),w=m[s].lineColor||p,c.strokeStyle=w,c.setLineDash&&(m[s].lineDashType?(q=m[s].lineDashType,c.setLineDash(H(q,k.lineThickness))):(q=k.lineDashType,c.setLineDash(g))));0!==m[s].markerSize&&(0<m[s].markerSize||0<k.markerSize)&&(C=k.getMarkerProperties(s,z,u,c),h.push(C),A=T(A),v&&h.push({x:z,y:u,ctx:b,type:C.type,size:C.size,color:A,borderColor:A,borderThickness:C.borderThickness}));(m[s].indexLabel||k.indexLabel||m[s].indexLabelFormatter||k.indexLabelFormatter)&&\nthis._indexLabels.push({chartType:\"stepLine\",dataPoint:m[s],dataSeries:k,point:{x:z,y:u},direction:0>m[s].y===a.axisY.reversed?1:-1,color:p})}c.stroke();v&&b.stroke()}}Y.drawMarkers(h);v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),b.beginPath());c.restore();c.beginPath();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderSpline=function(a){function e(a){a=t(a,2);if(0<a.length){b.beginPath();v&&f.beginPath();b.moveTo(a[0].x,a[0].y);a[0].newStrokeStyle&&(b.strokeStyle=a[0].newStrokeStyle);a[0].newLineDashArray&&b.setLineDash(a[0].newLineDashArray);v&&f.moveTo(a[0].x,a[0].y);\nfor(var c=0;c<a.length-3;c+=3)if(b.bezierCurveTo(a[c+1].x,a[c+1].y,a[c+2].x,a[c+2].y,a[c+3].x,a[c+3].y),v&&f.bezierCurveTo(a[c+1].x,a[c+1].y,a[c+2].x,a[c+2].y,a[c+3].x,a[c+3].y),0<c&&0===c%3E3||a[c+3].newStrokeStyle||a[c+3].newLineDashArray)b.stroke(),b.beginPath(),b.moveTo(a[c+3].x,a[c+3].y),a[c+3].newStrokeStyle&&(b.strokeStyle=a[c+3].newStrokeStyle),a[c+3].newLineDashArray&&b.setLineDash(a[c+3].newLineDashArray),v&&(f.stroke(),f.beginPath(),f.moveTo(a[c+3].x,a[c+3].y));b.stroke();v&&f.stroke()}}\nvar c=a.targetCanvasCtx||this.plotArea.ctx,b=v?this._preRenderCtx:c;if(!(0>=a.dataSeriesIndexes.length)){var f=this._eventManager.ghostCtx;b.save();var h=this.plotArea;b.beginPath();b.rect(h.x1,h.y1,h.width,h.height);b.clip();for(var r=[],x=0;x<a.dataSeriesIndexes.length;x++){var d=a.dataSeriesIndexes[x],k=this.data[d];b.lineWidth=k.lineThickness;var m=k.dataPoints,q=\"solid\";if(b.setLineDash){var n=H(k.nullDataLineDashType,k.lineThickness),q=k.lineDashType,g=H(q,k.lineThickness);b.setLineDash(g)}var p=\nk.id;this._eventManager.objectMap[p]={objectType:\"dataSeries\",dataSeriesIndex:d};p=T(p);f.strokeStyle=p;f.lineWidth=0<k.lineThickness?Math.max(k.lineThickness,4):0;var p=k._colorSet,w=p=k.lineColor=k.options.lineColor?k.options.lineColor:p[0];b.strokeStyle=p;var l=0,s,z,u=[];b.beginPath();if(0<m.length)for(z=!1,l=0;l<m.length;l++)if(s=m[l].getTime?m[l].x.getTime():m[l].x,!(s<a.axisX.dataInfo.viewPortMin||s>a.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!z)))if(\"number\"!==typeof m[l].y)0<l&&!z&&\n(k.connectNullData?b.setLineDash&&(0<u.length&&(k.options.nullDataLineDashType||!m[l-1].lineDashType))&&(u[u.length-1].newLineDashArray=n,q=k.nullDataLineDashType):(e(u),u=[])),z=!0;else{s=a.axisX.convertValueToPixel(s);z=a.axisY.convertValueToPixel(m[l].y);var D=k.dataPointIds[l];this._eventManager.objectMap[D]={id:D,objectType:\"dataPoint\",dataSeriesIndex:d,dataPointIndex:l,x1:s,y1:z};u[u.length]={x:s,y:z};l<m.length-1&&(w!==(m[l].lineColor||p)||q!==(m[l].lineDashType||k.lineDashType))&&(w=m[l].lineColor||\np,u[u.length-1].newStrokeStyle=w,b.setLineDash&&(m[l].lineDashType?(q=m[l].lineDashType,u[u.length-1].newLineDashArray=H(q,k.lineThickness)):(q=k.lineDashType,u[u.length-1].newLineDashArray=g)));if(0!==m[l].markerSize&&(0<m[l].markerSize||0<k.markerSize)){var C=k.getMarkerProperties(l,s,z,b);r.push(C);D=T(D);v&&r.push({x:s,y:z,ctx:f,type:C.type,size:C.size,color:D,borderColor:D,borderThickness:C.borderThickness})}(m[l].indexLabel||k.indexLabel||m[l].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:\"spline\",\ndataPoint:m[l],dataSeries:k,point:{x:s,y:z},direction:0>m[l].y===a.axisY.reversed?1:-1,color:p});z=!1}e(u)}Y.drawMarkers(r);v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(h.x1,\nh.y1,h.width,h.height),f.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderColumn=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=0,r,x,d,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?\nthis.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&\nh>m&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&m<h)&&(m=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,h));q<h&&(q=h);q>m&&(q=m);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(m=0;m<a.dataSeriesIndexes.length;m++){var n=\na.dataSeriesIndexes[m],g=this.data[n],p=g.dataPoints;if(0<p.length)for(var l=5<q&&g.bevelEnabled?!0:!1,h=0;h<p.length;h++)if(p[h].getTime?d=p[h].x.getTime():d=p[h].x,!(d<a.axisX.dataInfo.viewPortMin||d>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof p[h].y){r=a.axisX.convertValueToPixel(d);x=a.axisY.convertValueToPixel(p[h].y);r=a.axisX.reversed?r+a.plotType.totalDataSeries*q/2-(a.previousDataSeriesCount+m)*q<<0:r-a.plotType.totalDataSeries*q/2+(a.previousDataSeriesCount+m)*q<<0;var y=a.axisX.reversed?\nr-q<<0:r+q<<0,s;0<=p[h].y?s=k:(s=x,x=k);x>s&&(b=x,x=s,s=b);b=p[h].color?p[h].color:g._colorSet[h%g._colorSet.length];ba(c,a.axisX.reversed?y:r,x,a.axisX.reversed?r:y,s,b,0,null,l&&(a.axisY.reversed?0>p[h].y:0<=p[h].y),(a.axisY.reversed?0<=p[h].y:0>p[h].y)&&l,!1,!1,g.fillOpacity);b=g.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:n,dataPointIndex:h,x1:r,y1:x,x2:y,y2:s};b=T(b);v&&ba(this._eventManager.ghostCtx,a.axisX.reversed?y:r,x,a.axisX.reversed?r:y,\ns,b,0,null,!1,!1,!1,!1);(p[h].indexLabel||g.indexLabel||p[h].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:\"column\",dataPoint:p[h],dataSeries:g,point:{x:r+(y-r)/2,y:0>p[h].y===a.axisY.reversed?x:s},direction:0>p[h].y===a.axisY.reversed?1:-1,bounds:{x1:r,y1:Math.min(x,s),x2:y,y2:Math.max(x,s)},color:b})}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,\nthis.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:k<a.axisY.bounds.y1?a.axisY.bounds.y1:k>a.axisY.bounds.y2?a.axisY.bounds.y2:k}}};l.prototype.renderStackedColumn=\nfunction(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=[],r=[],x=[],d=[],k=0,m,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,p=a.axisX.dataInfo.minDiff;\nisFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&g<k)&&(g=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,k));p<k&&(p=k);p>g&&(p=g);c.save();v&&this._eventManager.ghostCtx.save();\nc.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(g=0;g<a.dataSeriesIndexes.length;g++){var l=a.dataSeriesIndexes[g],y=this.data[l],s=y.dataPoints;if(0<s.length){var z=5<p&&y.bevelEnabled?!0:!1;c.strokeStyle=\"#4572A7 \";for(k=0;k<s.length;k++)if(b=s[k].x.getTime?s[k].x.getTime():s[k].x,!(b<a.axisX.dataInfo.viewPortMin||b>a.axisX.dataInfo.viewPortMax)&&\n\"number\"===typeof s[k].y){m=a.axisX.convertValueToPixel(b);m=m-a.plotType.plotUnits.length*p/2+a.index*p<<0;var u=m+p<<0,D;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0<s[k].y)x[b]=s[k].y+(x[b]?x[b]:0),0<x[b]&&(q=a.axisY.convertValueToPixel(x[b]),D=\"undefined\"!==typeof h[b]?h[b]:n,h[b]=q);else if(a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0>=s[k].y)d[b]=s[k].y+(d[b]?d[b]:0),D=a.axisY.convertValueToPixel(d[b]),q=\"undefined\"!==typeof r[b]?\nr[b]:n,r[b]=D;else if(q=a.axisY.convertValueToPixel(s[k].y),0<=s[k].y){var C=\"undefined\"!==typeof h[b]?h[b]:0;q-=C;D=n-C;h[b]=C+(D-q)}else C=r[b]?r[b]:0,D=q+C,q=n+C,r[b]=C+(D-q);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,m,a.axisY.reversed?D:q,u,a.axisY.reversed?q:D,b,0,null,z&&(a.axisY.reversed?0>s[k].y:0<=s[k].y),(a.axisY.reversed?0<=s[k].y:0>s[k].y)&&z,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:l,dataPointIndex:k,\nx1:m,y1:q,x2:u,y2:D};b=T(b);v&&ba(this._eventManager.ghostCtx,m,q,u,D,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedColumn\",dataPoint:s[k],dataSeries:y,point:{x:m+(u-m)/2,y:0<=s[k].y?q:D},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:m,y1:Math.min(q,D),x2:u,y2:Math.max(q,D)},color:b})}}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",\na.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:n<a.axisY.bounds.y1?a.axisY.bounds.y1:\nn>a.axisY.bounds.y2?a.axisY.bounds.y2:n}}};l.prototype.renderStackedColumn100=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=[],r=[],x=[],d=[],k=0,m,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?\nthis.dataPointWidth:0.15*this.width<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&g<k)&&(g=Math.max(this.options.dataPointWidth?this.dataPointWidth:\n-Infinity,k));p<k&&(p=k);p>g&&(p=g);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(g=0;g<a.dataSeriesIndexes.length;g++){var l=a.dataSeriesIndexes[g],y=this.data[l],s=y.dataPoints;if(0<s.length)for(var z=5<p&&y.bevelEnabled?!0:!1,k=0;k<s.length;k++)if(b=s[k].x.getTime?s[k].x.getTime():s[k].x,!(b<a.axisX.dataInfo.viewPortMin||\nb>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){m=a.axisX.convertValueToPixel(b);q=0!==a.dataPointYSums[b]?100*(s[k].y/a.dataPointYSums[b]):0;m=m-a.plotType.plotUnits.length*p/2+a.index*p<<0;var u=m+p<<0,D;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0<s[k].y){x[b]=q+(\"undefined\"!==typeof x[b]?x[b]:0);if(0>=x[b])continue;q=a.axisY.convertValueToPixel(x[b]);D=h[b]?h[b]:n;h[b]=q}else if(a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&\n0>=s[k].y)d[b]=q+(\"undefined\"!==typeof d[b]?d[b]:0),D=a.axisY.convertValueToPixel(d[b]),q=r[b]?r[b]:n,r[b]=D;else if(q=a.axisY.convertValueToPixel(q),0<=s[k].y){var C=\"undefined\"!==typeof h[b]?h[b]:0;q-=C;D=n-C;a.dataSeriesIndexes.length-1===g&&1>=Math.abs(f.y1-q)&&(q=f.y1);h[b]=C+(D-q)}else C=\"undefined\"!==typeof r[b]?r[b]:0,D=q+C,q=n+C,a.dataSeriesIndexes.length-1===g&&1>=Math.abs(f.y2-D)&&(D=f.y2),r[b]=C+(D-q);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,m,a.axisY.reversed?D:\nq,u,a.axisY.reversed?q:D,b,0,null,z&&(a.axisY.reversed?0>s[k].y:0<=s[k].y),(a.axisY.reversed?0<=s[k].y:0>s[k].y)&&z,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:l,dataPointIndex:k,x1:m,y1:q,x2:u,y2:D};b=T(b);v&&ba(this._eventManager.ghostCtx,m,q,u,D,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedColumn100\",dataPoint:s[k],dataSeries:y,\npoint:{x:m+(u-m)/2,y:0<=s[k].y?q:D},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:m,y1:Math.min(q,D),x2:u,y2:Math.max(q,D)},color:b})}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),\nc.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:n<a.axisY.bounds.y1?a.axisY.bounds.y1:n>a.axisY.bounds.y2?a.axisY.bounds.y2:n}}};l.prototype.renderBar=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=0,r,x,d,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?\na.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.height*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):\nMath.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>m&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&m<h)&&(m=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,h));q<h&&(q=h);q>m&&(q=m);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,\nf.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(m=0;m<a.dataSeriesIndexes.length;m++){var n=a.dataSeriesIndexes[m],g=this.data[n],p=g.dataPoints;if(0<p.length){var l=5<q&&g.bevelEnabled?!0:!1;c.strokeStyle=\"#4572A7 \";for(h=0;h<p.length;h++)if(p[h].getTime?d=p[h].x.getTime():d=p[h].x,!(d<a.axisX.dataInfo.viewPortMin||d>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof p[h].y){x=a.axisX.convertValueToPixel(d);r=a.axisY.convertValueToPixel(p[h].y);x=a.axisX.reversed?x+a.plotType.totalDataSeries*\nq/2-(a.previousDataSeriesCount+m)*q<<0:x-a.plotType.totalDataSeries*q/2+(a.previousDataSeriesCount+m)*q<<0;var y=a.axisX.reversed?x-q<<0:x+q<<0,s;0<=p[h].y?s=k:(s=r,r=k);b=p[h].color?p[h].color:g._colorSet[h%g._colorSet.length];ba(c,a.axisY.reversed?r:s,a.axisX.reversed?y:x,a.axisY.reversed?s:r,a.axisX.reversed?x:y,b,0,null,l,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:n,dataPointIndex:h,x1:s,y1:x,x2:r,y2:y};b=T(b);v&&ba(this._eventManager.ghostCtx,\ns,a.axisX.reversed?y:x,r,a.axisX.reversed?x:y,b,0,null,!1,!1,!1,!1);(p[h].indexLabel||g.indexLabel||p[h].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:\"bar\",dataPoint:p[h],dataSeries:g,point:{x:0<=p[h].y?r:s,y:x+(y-x)/2},direction:0>p[h].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(s,r),y1:x,x2:Math.max(s,r),y2:y},color:b})}}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,\n0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:k<a.axisY.bounds.x1?a.axisY.bounds.x1:k>a.axisY.bounds.x2?a.axisY.bounds.x2:\nk}}};l.prototype.renderStackedBar=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=[],r=[],d=[],p=[],k=0,m,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<\n0,l=a.axisX.dataInfo.minDiff;isFinite(l)||(l=0.3*Math.abs(a.axisX.range));l=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.height*(a.axisX.logarithmic?Math.log(l)/Math.log(a.axisX.range):Math.abs(l)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&g<k)&&(g=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,k));l<k&&\n(l=k);l>g&&(l=g);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(g=0;g<a.dataSeriesIndexes.length;g++){var w=a.dataSeriesIndexes[g],y=this.data[w],s=y.dataPoints;if(0<s.length){var z=5<l&&y.bevelEnabled?!0:!1;c.strokeStyle=\"#4572A7 \";for(k=0;k<s.length;k++)if(b=s[k].x.getTime?s[k].x.getTime():s[k].x,\n!(b<a.axisX.dataInfo.viewPortMin||b>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){q=a.axisX.convertValueToPixel(b);q=q-a.plotType.plotUnits.length*l/2+a.index*l<<0;var u=q+l<<0,D;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0<s[k].y)d[b]=s[k].y+(d[b]?d[b]:0),0<d[b]&&(D=h[b]?h[b]:n,h[b]=m=a.axisY.convertValueToPixel(d[b]));else if(a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0>=s[k].y)p[b]=s[k].y+(p[b]?p[b]:0),m=r[b]?r[b]:\nn,r[b]=D=a.axisY.convertValueToPixel(p[b]);else if(m=a.axisY.convertValueToPixel(s[k].y),0<=s[k].y){var C=h[b]?h[b]:0;D=n+C;m+=C;h[b]=C+(m-D)}else C=r[b]?r[b]:0,D=m-C,m=n-C,r[b]=C+(m-D);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,a.axisY.reversed?m:D,q,a.axisY.reversed?D:m,u,b,0,null,z,!1,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:w,dataPointIndex:k,x1:D,y1:q,x2:m,y2:u};b=T(b);v&&ba(this._eventManager.ghostCtx,\nD,q,m,u,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedBar\",dataPoint:s[k],dataSeries:y,point:{x:0<=s[k].y?m:D,y:q+(u-q)/2},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(D,m),y1:q,x2:Math.max(D,m),y2:u},color:b})}}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,\nthis.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:n<a.axisY.bounds.x1?a.axisY.bounds.x1:n>a.axisY.bounds.x2?a.axisY.bounds.x2:n}}};l.prototype.renderStackedBar100=\nfunction(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=[],r=[],d=[],p=[],k=0,m,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,l=a.axisX.dataInfo.minDiff;\nisFinite(l)||(l=0.3*Math.abs(a.axisX.range));l=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.height*(a.axisX.logarithmic?Math.log(l)/Math.log(a.axisX.range):Math.abs(l)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&g<k)&&(g=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,k));l<k&&(l=k);l>g&&(l=g);c.save();v&&\nthis._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(g=0;g<a.dataSeriesIndexes.length;g++){var w=a.dataSeriesIndexes[g],y=this.data[w],s=y.dataPoints;if(0<s.length){var z=5<l&&y.bevelEnabled?!0:!1;c.strokeStyle=\"#4572A7 \";for(k=0;k<s.length;k++)if(b=s[k].x.getTime?s[k].x.getTime():s[k].x,!(b<a.axisX.dataInfo.viewPortMin||\nb>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){q=a.axisX.convertValueToPixel(b);var u;u=0!==a.dataPointYSums[b]?100*(s[k].y/a.dataPointYSums[b]):0;q=q-a.plotType.plotUnits.length*l/2+a.index*l<<0;var D=q+l<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0<s[k].y){d[b]=u+(d[b]?d[b]:0);if(0>=d[b])continue;u=h[b]?h[b]:n;h[b]=m=a.axisY.convertValueToPixel(d[b])}else if(a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length&&0>=s[k].y)p[b]=\nu+(p[b]?p[b]:0),m=r[b]?r[b]:n,r[b]=u=a.axisY.convertValueToPixel(p[b]);else if(m=a.axisY.convertValueToPixel(u),0<=s[k].y){var C=h[b]?h[b]:0;u=n+C;m+=C;a.dataSeriesIndexes.length-1===g&&1>=Math.abs(f.x2-m)&&(m=f.x2);h[b]=C+(m-u)}else C=r[b]?r[b]:0,u=m-C,m=n-C,a.dataSeriesIndexes.length-1===g&&1>=Math.abs(f.x1-u)&&(u=f.x1),r[b]=C+(m-u);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,a.axisY.reversed?m:u,q,a.axisY.reversed?u:m,D,b,0,null,z,!1,!1,!1,y.fillOpacity);b=y.dataPointIds[k];\nthis._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:w,dataPointIndex:k,x1:u,y1:q,x2:m,y2:D};b=T(b);v&&ba(this._eventManager.ghostCtx,u,q,m,D,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedBar100\",dataPoint:s[k],dataSeries:y,point:{x:0<=s[k].y?m:u,y:q+(D-q)/2},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u,m),y1:q,x2:Math.max(u,m),y2:D},color:b})}}}v&&(e.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,\nanimationBase:n<a.axisY.bounds.x1?a.axisY.bounds.x1:n>a.axisY.bounds.x2?a.axisY.bounds.x2:n}}};l.prototype.renderArea=function(a){var e,c;function b(){C&&(0<g.lineThickness&&h.stroke(),a.axisY.logarithmic||0>=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?D=u:0>a.axisY.viewportMaximum?D=d.y1:0<a.axisY.viewportMinimum&&(D=u),h.lineTo(y,D),h.lineTo(C.x,D),h.closePath(),h.globalAlpha=g.fillOpacity,h.fill(),h.globalAlpha=1,v&&(r.lineTo(y,D),r.lineTo(C.x,D),r.closePath(),r.fill()),h.beginPath(),h.moveTo(y,\ns),r.beginPath(),r.moveTo(y,s),C={x:y,y:s})}var f=a.targetCanvasCtx||this.plotArea.ctx,h=v?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var r=this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,p=[],k=this.plotArea,m;h.save();v&&r.save();h.beginPath();h.rect(k.x1,k.y1,k.width,k.height);h.clip();v&&(r.beginPath(),r.rect(k.x1,k.y1,k.width,k.height),r.clip());for(var q=0;q<a.dataSeriesIndexes.length;q++){var n=a.dataSeriesIndexes[q],g=this.data[n],l=g.dataPoints,p=g.id;this._eventManager.objectMap[p]=\n{objectType:\"dataSeries\",dataSeriesIndex:n};p=T(p);r.fillStyle=p;p=[];e=!0;var w=0,y,s,z,u=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),D,C=null;if(0<l.length){var A=g._colorSet[w%g._colorSet.length],t=g.lineColor=g.options.lineColor||A,B=t;h.fillStyle=A;h.strokeStyle=t;h.lineWidth=g.lineThickness;c=\"solid\";if(h.setLineDash){var L=H(g.nullDataLineDashType,g.lineThickness);c=g.lineDashType;var S=H(c,g.lineThickness);h.setLineDash(S)}for(var ga=!0;w<l.length;w++)if(z=l[w].x.getTime?\nl[w].x.getTime():l[w].x,!(z<a.axisX.dataInfo.viewPortMin||z>a.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!ga)))if(\"number\"!==typeof l[w].y)g.connectNullData||(ga||e)||b(),ga=!0;else{y=a.axisX.convertValueToPixel(z);s=a.axisY.convertValueToPixel(l[w].y);e||ga?(!e&&g.connectNullData?(h.setLineDash&&(g.options.nullDataLineDashType||c===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(e=y,c=s,y=m.x,s=m.y,b(),h.moveTo(m.x,m.y),y=e,s=c,C=m,c=g.nullDataLineDashType,h.setLineDash(L)),h.lineTo(y,\ns),v&&r.lineTo(y,s)):(h.beginPath(),h.moveTo(y,s),v&&(r.beginPath(),r.moveTo(y,s)),C={x:y,y:s}),ga=e=!1):(h.lineTo(y,s),v&&r.lineTo(y,s),0==w%250&&b());m={x:y,y:s};w<l.length-1&&(B!==(l[w].lineColor||t)||c!==(l[w].lineDashType||g.lineDashType))&&(b(),B=l[w].lineColor||t,h.strokeStyle=B,h.setLineDash&&(l[w].lineDashType?(c=l[w].lineDashType,h.setLineDash(H(c,g.lineThickness))):(c=g.lineDashType,h.setLineDash(S))));var aa=g.dataPointIds[w];this._eventManager.objectMap[aa]={id:aa,objectType:\"dataPoint\",\ndataSeriesIndex:n,dataPointIndex:w,x1:y,y1:s};0!==l[w].markerSize&&(0<l[w].markerSize||0<g.markerSize)&&(z=g.getMarkerProperties(w,y,s,h),p.push(z),aa=T(aa),v&&p.push({x:y,y:s,ctx:r,type:z.type,size:z.size,color:aa,borderColor:aa,borderThickness:z.borderThickness}));(l[w].indexLabel||g.indexLabel||l[w].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:\"area\",dataPoint:l[w],dataSeries:g,point:{x:y,y:s},direction:0>l[w].y===a.axisY.reversed?1:-1,color:A})}b();Y.drawMarkers(p)}}v&&\n(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&h.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&h.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());h.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,\neasingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderSplineArea=function(a){function e(){var c=t(z,2);if(0<c.length){if(0<m.lineThickness){b.beginPath();b.moveTo(c[0].x,c[0].y);c[0].newStrokeStyle&&(b.strokeStyle=c[0].newStrokeStyle);c[0].newLineDashArray&&b.setLineDash(c[0].newLineDashArray);for(var g=0;g<c.length-3;g+=3)if(b.bezierCurveTo(c[g+1].x,c[g+1].y,c[g+2].x,c[g+2].y,c[g+3].x,c[g+3].y),v&&f.bezierCurveTo(c[g+1].x,c[g+1].y,c[g+2].x,c[g+2].y,c[g+3].x,c[g+3].y),c[g+3].newStrokeStyle||\nc[g+3].newLineDashArray)b.stroke(),b.beginPath(),b.moveTo(c[g+3].x,c[g+3].y),c[g+3].newStrokeStyle&&(b.strokeStyle=c[g+3].newStrokeStyle),c[g+3].newLineDashArray&&b.setLineDash(c[g+3].newLineDashArray);b.stroke()}b.beginPath();b.moveTo(c[0].x,c[0].y);v&&(f.beginPath(),f.moveTo(c[0].x,c[0].y));for(g=0;g<c.length-3;g+=3)b.bezierCurveTo(c[g+1].x,c[g+1].y,c[g+2].x,c[g+2].y,c[g+3].x,c[g+3].y),v&&f.bezierCurveTo(c[g+1].x,c[g+1].y,c[g+2].x,c[g+2].y,c[g+3].x,c[g+3].y);a.axisY.logarithmic||0>=a.axisY.viewportMinimum&&\n0<=a.axisY.viewportMaximum?y=w:0>a.axisY.viewportMaximum?y=h.y1:0<a.axisY.viewportMinimum&&(y=w);s={x:c[0].x,y:c[0].y};b.lineTo(c[c.length-1].x,y);b.lineTo(s.x,y);b.closePath();b.globalAlpha=m.fillOpacity;b.fill();b.globalAlpha=1;v&&(f.lineTo(c[c.length-1].x,y),f.lineTo(s.x,y),f.closePath(),f.fill())}}var c=a.targetCanvasCtx||this.plotArea.ctx,b=v?this._preRenderCtx:c;if(!(0>=a.dataSeriesIndexes.length)){var f=this._eventManager.ghostCtx,h=a.axisY.lineCoordinates,r=[],d=this.plotArea;b.save();v&&\nf.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();v&&(f.beginPath(),f.rect(d.x1,d.y1,d.width,d.height),f.clip());for(var p=0;p<a.dataSeriesIndexes.length;p++){var k=a.dataSeriesIndexes[p],m=this.data[k],q=m.dataPoints,r=m.id;this._eventManager.objectMap[r]={objectType:\"dataSeries\",dataSeriesIndex:k};r=T(r);f.fillStyle=r;var r=[],n=0,g,l,w=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),y,s=null,z=[];if(0<q.length){var u=m._colorSet[n%m._colorSet.length],\nD=m.lineColor=m.options.lineColor||u,C=D;b.fillStyle=u;b.strokeStyle=D;b.lineWidth=m.lineThickness;var A=\"solid\";if(b.setLineDash){var B=H(m.nullDataLineDashType,m.lineThickness),A=m.lineDashType,E=H(A,m.lineThickness);b.setLineDash(E)}for(l=!1;n<q.length;n++)if(g=q[n].x.getTime?q[n].x.getTime():q[n].x,!(g<a.axisX.dataInfo.viewPortMin||g>a.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!l)))if(\"number\"!==typeof q[n].y)0<n&&!l&&(m.connectNullData?b.setLineDash&&(0<z.length&&(m.options.nullDataLineDashType||\n!q[n-1].lineDashType))&&(z[z.length-1].newLineDashArray=B,A=m.nullDataLineDashType):(e(),z=[])),l=!0;else{g=a.axisX.convertValueToPixel(g);l=a.axisY.convertValueToPixel(q[n].y);var L=m.dataPointIds[n];this._eventManager.objectMap[L]={id:L,objectType:\"dataPoint\",dataSeriesIndex:k,dataPointIndex:n,x1:g,y1:l};z[z.length]={x:g,y:l};n<q.length-1&&(C!==(q[n].lineColor||D)||A!==(q[n].lineDashType||m.lineDashType))&&(C=q[n].lineColor||D,z[z.length-1].newStrokeStyle=C,b.setLineDash&&(q[n].lineDashType?(A=\nq[n].lineDashType,z[z.length-1].newLineDashArray=H(A,m.lineThickness)):(A=m.lineDashType,z[z.length-1].newLineDashArray=E)));if(0!==q[n].markerSize&&(0<q[n].markerSize||0<m.markerSize)){var S=m.getMarkerProperties(n,g,l,b);r.push(S);L=T(L);v&&r.push({x:g,y:l,ctx:f,type:S.type,size:S.size,color:L,borderColor:L,borderThickness:S.borderThickness})}(q[n].indexLabel||m.indexLabel||q[n].indexLabelFormatter||m.indexLabelFormatter)&&this._indexLabels.push({chartType:\"splineArea\",dataPoint:q[n],dataSeries:m,\npoint:{x:g,y:l},direction:0>q[n].y===a.axisY.reversed?1:-1,color:u});l=!1}e();Y.drawMarkers(r)}}v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),\nthis._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStepArea=function(a){var e,c;function b(){C&&(0<g.lineThickness&&h.stroke(),a.axisY.logarithmic||0>=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?D=u:0>a.axisY.viewportMaximum?D=d.y1:0<a.axisY.viewportMinimum&&(D=u),h.lineTo(y,D),h.lineTo(C.x,D),h.closePath(),h.globalAlpha=g.fillOpacity,h.fill(),h.globalAlpha=\n1,v&&(r.lineTo(y,D),r.lineTo(C.x,D),r.closePath(),r.fill()),h.beginPath(),h.moveTo(y,s),r.beginPath(),r.moveTo(y,s),C={x:y,y:s})}var f=a.targetCanvasCtx||this.plotArea.ctx,h=v?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var r=this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,p=[],k=this.plotArea,m;h.save();v&&r.save();h.beginPath();h.rect(k.x1,k.y1,k.width,k.height);h.clip();v&&(r.beginPath(),r.rect(k.x1,k.y1,k.width,k.height),r.clip());for(var q=0;q<a.dataSeriesIndexes.length;q++){var n=\na.dataSeriesIndexes[q],g=this.data[n],l=g.dataPoints,p=g.id;this._eventManager.objectMap[p]={objectType:\"dataSeries\",dataSeriesIndex:n};p=T(p);r.fillStyle=p;p=[];e=!0;var w=0,y,s,z,u=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),D,C=null;c=!1;if(0<l.length){var A=g._colorSet[w%g._colorSet.length],t=g.lineColor=g.options.lineColor||A,B=t;h.fillStyle=A;h.strokeStyle=t;h.lineWidth=g.lineThickness;var L=\"solid\";if(h.setLineDash){var S=H(g.nullDataLineDashType,g.lineThickness),\nL=g.lineDashType,E=H(L,g.lineThickness);h.setLineDash(E)}for(;w<l.length;w++)if(z=l[w].x.getTime?l[w].x.getTime():l[w].x,!(z<a.axisX.dataInfo.viewPortMin||z>a.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!c))){var aa=s;\"number\"!==typeof l[w].y?(g.connectNullData||(c||e)||b(),c=!0):(y=a.axisX.convertValueToPixel(z),s=a.axisY.convertValueToPixel(l[w].y),e||c?(!e&&g.connectNullData?(h.setLineDash&&(g.options.nullDataLineDashType||L===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(e=y,\nc=s,y=m.x,s=m.y,b(),h.moveTo(m.x,m.y),y=e,s=c,C=m,L=g.nullDataLineDashType,h.setLineDash(S)),h.lineTo(y,aa),h.lineTo(y,s),v&&(r.lineTo(y,aa),r.lineTo(y,s))):(h.beginPath(),h.moveTo(y,s),v&&(r.beginPath(),r.moveTo(y,s)),C={x:y,y:s}),c=e=!1):(h.lineTo(y,aa),v&&r.lineTo(y,aa),h.lineTo(y,s),v&&r.lineTo(y,s),0==w%250&&b()),m={x:y,y:s},w<l.length-1&&(B!==(l[w].lineColor||t)||L!==(l[w].lineDashType||g.lineDashType))&&(b(),B=l[w].lineColor||t,h.strokeStyle=B,h.setLineDash&&(l[w].lineDashType?(L=l[w].lineDashType,\nh.setLineDash(H(L,g.lineThickness))):(L=g.lineDashType,h.setLineDash(E)))),z=g.dataPointIds[w],this._eventManager.objectMap[z]={id:z,objectType:\"dataPoint\",dataSeriesIndex:n,dataPointIndex:w,x1:y,y1:s},0!==l[w].markerSize&&(0<l[w].markerSize||0<g.markerSize)&&(aa=g.getMarkerProperties(w,y,s,h),p.push(aa),z=T(z),v&&p.push({x:y,y:s,ctx:r,type:aa.type,size:aa.size,color:z,borderColor:z,borderThickness:aa.borderThickness})),(l[w].indexLabel||g.indexLabel||l[w].indexLabelFormatter||g.indexLabelFormatter)&&\nthis._indexLabels.push({chartType:\"stepArea\",dataPoint:l[w],dataSeries:g,point:{x:y,y:s},direction:0>l[w].y===a.axisY.reversed?1:-1,color:A}))}b();Y.drawMarkers(p)}}v&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&h.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&h.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),h.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());h.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStackedArea=function(a){function e(){if(!(1>k.length)){for(0<A.lineThickness&&b.stroke();0<k.length;){var a=k.pop();b.lineTo(a.x,a.y);v&&y.lineTo(a.x,a.y)}b.closePath();b.globalAlpha=A.fillOpacity;b.fill();b.globalAlpha=1;b.beginPath();v&&(y.closePath(),\ny.fill(),y.beginPath());k=[]}}var c=a.targetCanvasCtx||this.plotArea.ctx,b=v?this._preRenderCtx:c;if(!(0>=a.dataSeriesIndexes.length)){var f=null,h=null,r=[],d=this.plotArea,p=[],k=[],m=[],q=[],n=0,g,l,w=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),y=this._eventManager.ghostCtx,s,z,u;v&&y.beginPath();b.save();v&&y.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();v&&(y.beginPath(),y.rect(d.x1,d.y1,d.width,d.height),y.clip());for(var f=[],D=0;D<a.dataSeriesIndexes.length;D++){var C=\na.dataSeriesIndexes[D],A=this.data[C],t=A.dataPoints;A.dataPointIndexes=[];for(n=0;n<t.length;n++)C=t[n].x.getTime?t[n].x.getTime():t[n].x,A.dataPointIndexes[C]=n,f[C]||(m.push(C),f[C]=!0);m.sort(Sa)}for(D=0;D<a.dataSeriesIndexes.length;D++){C=a.dataSeriesIndexes[D];A=this.data[C];t=A.dataPoints;z=!0;k=[];n=A.id;this._eventManager.objectMap[n]={objectType:\"dataSeries\",dataSeriesIndex:C};n=T(n);y.fillStyle=n;if(0<m.length){var f=A._colorSet[0],B=A.lineColor=A.options.lineColor||f,L=B;b.fillStyle=f;\nb.strokeStyle=B;b.lineWidth=A.lineThickness;u=\"solid\";if(b.setLineDash){var S=H(A.nullDataLineDashType,A.lineThickness);u=A.lineDashType;var E=H(u,A.lineThickness);b.setLineDash(E)}for(var aa=!0,n=0;n<m.length;n++){var h=m[n],ha=null,ha=0<=A.dataPointIndexes[h]?t[A.dataPointIndexes[h]]:{x:h,y:null};if(!(h<a.axisX.dataInfo.viewPortMin||h>a.axisX.dataInfo.viewPortMax&&(!A.connectNullData||!aa)))if(\"number\"!==typeof ha.y)A.connectNullData||(aa||z)||e(),aa=!0;else{g=a.axisX.convertValueToPixel(h);var oa=\np[h]?p[h]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length){q[h]=ha.y+(q[h]?q[h]:0);if(0>=q[h]&&a.axisY.logarithmic)continue;l=a.axisY.convertValueToPixel(q[h])}else l=a.axisY.convertValueToPixel(ha.y),l-=oa;k.push({x:g,y:w-oa});p[h]=w-l;z||aa?(!z&&A.connectNullData?(b.setLineDash&&(A.options.nullDataLineDashType||u===A.lineDashType&&A.lineDashType!==A.nullDataLineDashType)&&(z=k.pop(),u=k[k.length-1],e(),b.moveTo(s.x,s.y),k.push(u),k.push(z),u=A.nullDataLineDashType,\nb.setLineDash(S)),b.lineTo(g,l),v&&y.lineTo(g,l)):(b.beginPath(),b.moveTo(g,l),v&&(y.beginPath(),y.moveTo(g,l))),aa=z=!1):(b.lineTo(g,l),v&&y.lineTo(g,l),0==n%250&&(e(),b.moveTo(g,l),v&&y.moveTo(g,l),k.push({x:g,y:w-oa})));s={x:g,y:l};n<t.length-1&&(L!==(t[n].lineColor||B)||u!==(t[n].lineDashType||A.lineDashType))&&(e(),b.beginPath(),b.moveTo(g,l),k.push({x:g,y:w-oa}),L=t[n].lineColor||B,b.strokeStyle=L,b.setLineDash&&(t[n].lineDashType?(u=t[n].lineDashType,b.setLineDash(H(u,A.lineThickness))):(u=\nA.lineDashType,b.setLineDash(E))));if(0<=A.dataPointIndexes[h]){var la=A.dataPointIds[A.dataPointIndexes[h]];this._eventManager.objectMap[la]={id:la,objectType:\"dataPoint\",dataSeriesIndex:C,dataPointIndex:A.dataPointIndexes[h],x1:g,y1:l}}0<=A.dataPointIndexes[h]&&0!==ha.markerSize&&(0<ha.markerSize||0<A.markerSize)&&(oa=A.getMarkerProperties(A.dataPointIndexes[h],g,l,b),r.push(oa),h=T(la),v&&r.push({x:g,y:l,ctx:y,type:oa.type,size:oa.size,color:h,borderColor:h,borderThickness:oa.borderThickness}));\n(ha.indexLabel||A.indexLabel||ha.indexLabelFormatter||A.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedArea\",dataPoint:ha,dataSeries:A,point:{x:g,y:l},direction:0>ha.y===a.axisY.reversed?1:-1,color:f})}}e();b.moveTo(g,l);v&&y.moveTo(g,l)}delete A.dataPointIndexes}Y.drawMarkers(r);v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&\nb.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),y.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStackedArea100=function(a){function e(){for(0<A.lineThickness&&b.stroke();0<k.length;){var a=k.pop();b.lineTo(a.x,a.y);v&&u.lineTo(a.x,\na.y)}b.closePath();b.globalAlpha=A.fillOpacity;b.fill();b.globalAlpha=1;b.beginPath();v&&(u.closePath(),u.fill(),u.beginPath());k=[]}var c=a.targetCanvasCtx||this.plotArea.ctx,b=v?this._preRenderCtx:c;if(!(0>=a.dataSeriesIndexes.length)){var f=null,h=null,r=this.plotArea,d=[],p=[],k=[],m=[],q=[],n=0,g,l,w,y,s,z=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),u=this._eventManager.ghostCtx;b.save();v&&u.save();b.beginPath();b.rect(r.x1,r.y1,r.width,r.height);b.clip();v&&(u.beginPath(),\nu.rect(r.x1,r.y1,r.width,r.height),u.clip());for(var f=[],D=0;D<a.dataSeriesIndexes.length;D++){var C=a.dataSeriesIndexes[D],A=this.data[C],t=A.dataPoints;A.dataPointIndexes=[];for(n=0;n<t.length;n++)C=t[n].x.getTime?t[n].x.getTime():t[n].x,A.dataPointIndexes[C]=n,f[C]||(m.push(C),f[C]=!0);m.sort(Sa)}for(D=0;D<a.dataSeriesIndexes.length;D++){C=a.dataSeriesIndexes[D];A=this.data[C];t=A.dataPoints;y=!0;f=A.id;this._eventManager.objectMap[f]={objectType:\"dataSeries\",dataSeriesIndex:C};f=T(f);u.fillStyle=\nf;k=[];if(0<m.length){var f=A._colorSet[n%A._colorSet.length],B=A.lineColor=A.options.lineColor||f,L=B;b.fillStyle=f;b.strokeStyle=B;b.lineWidth=A.lineThickness;s=\"solid\";if(b.setLineDash){var S=H(A.nullDataLineDashType,A.lineThickness);s=A.lineDashType;var E=H(s,A.lineThickness);b.setLineDash(E)}for(var aa=!0,n=0;n<m.length;n++){var h=m[n],ha=null,ha=0<=A.dataPointIndexes[h]?t[A.dataPointIndexes[h]]:{x:h,y:null};if(!(h<a.axisX.dataInfo.viewPortMin||h>a.axisX.dataInfo.viewPortMax&&(!A.connectNullData||\n!aa)))if(\"number\"!==typeof ha.y)A.connectNullData||(aa||y)||e(),aa=!0;else{var oa;oa=0!==a.dataPointYSums[h]?100*(ha.y/a.dataPointYSums[h]):0;g=a.axisX.convertValueToPixel(h);var la=p[h]?p[h]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0<a.axisY.scaleBreaks._appliedBreaks.length){q[h]=oa+(q[h]?q[h]:0);if(0>=q[h]&&a.axisY.logarithmic)continue;l=a.axisY.convertValueToPixel(q[h])}else l=a.axisY.convertValueToPixel(oa),l-=la;k.push({x:g,y:z-la});p[h]=z-l;y||aa?(!y&&A.connectNullData?(b.setLineDash&&\n(A.options.nullDataLineDashType||s===A.lineDashType&&A.lineDashType!==A.nullDataLineDashType)&&(y=k.pop(),s=k[k.length-1],e(),b.moveTo(w.x,w.y),k.push(s),k.push(y),s=A.nullDataLineDashType,b.setLineDash(S)),b.lineTo(g,l),v&&u.lineTo(g,l)):(b.beginPath(),b.moveTo(g,l),v&&(u.beginPath(),u.moveTo(g,l))),aa=y=!1):(b.lineTo(g,l),v&&u.lineTo(g,l),0==n%250&&(e(),b.moveTo(g,l),v&&u.moveTo(g,l),k.push({x:g,y:z-la})));w={x:g,y:l};n<t.length-1&&(L!==(t[n].lineColor||B)||s!==(t[n].lineDashType||A.lineDashType))&&\n(e(),b.beginPath(),b.moveTo(g,l),k.push({x:g,y:z-la}),L=t[n].lineColor||B,b.strokeStyle=L,b.setLineDash&&(t[n].lineDashType?(s=t[n].lineDashType,b.setLineDash(H(s,A.lineThickness))):(s=A.lineDashType,b.setLineDash(E))));if(0<=A.dataPointIndexes[h]){var F=A.dataPointIds[A.dataPointIndexes[h]];this._eventManager.objectMap[F]={id:F,objectType:\"dataPoint\",dataSeriesIndex:C,dataPointIndex:A.dataPointIndexes[h],x1:g,y1:l}}0<=A.dataPointIndexes[h]&&0!==ha.markerSize&&(0<ha.markerSize||0<A.markerSize)&&(la=\nA.getMarkerProperties(A.dataPointIndexes[h],g,l,b),d.push(la),h=T(F),v&&d.push({x:g,y:l,ctx:u,type:la.type,size:la.size,color:h,borderColor:h,borderThickness:la.borderThickness}));(ha.indexLabel||A.indexLabel||ha.indexLabelFormatter||A.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedArea100\",dataPoint:ha,dataSeries:A,point:{x:g,y:l},direction:0>ha.y===a.axisY.reversed?1:-1,color:f})}}e();b.moveTo(g,l);v&&u.moveTo(g,l)}delete A.dataPointIndexes}Y.drawMarkers(d);v&&(c.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(r.x1,r.y1,r.width,r.height),u.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,\nanimationBase:0}}};l.prototype.renderBubble=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,f=0,h,r;c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=-Infinity,p=Infinity,k=0;k<a.dataSeriesIndexes.length;k++)for(var m=\na.dataSeriesIndexes[k],q=this.data[m],n=q.dataPoints,g=0,f=0;f<n.length;f++)h=n[f].getTime?h=n[f].x.getTime():h=n[f].x,h<a.axisX.dataInfo.viewPortMin||h>a.axisX.dataInfo.viewPortMax||\"undefined\"===typeof n[f].z||(g=n[f].z,g>d&&(d=g),g<p&&(p=g));for(var l=25*Math.PI,w=Math.max(Math.pow(0.25*Math.min(b.height,b.width)/2,2)*Math.PI,l),k=0;k<a.dataSeriesIndexes.length;k++)if(m=a.dataSeriesIndexes[k],q=this.data[m],n=q.dataPoints,0<n.length)for(c.strokeStyle=\"#4572A7 \",f=0;f<n.length;f++)if(h=n[f].getTime?\nh=n[f].x.getTime():h=n[f].x,!(h<a.axisX.dataInfo.viewPortMin||h>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof n[f].y){h=a.axisX.convertValueToPixel(h);r=a.axisY.convertValueToPixel(n[f].y);var g=n[f].z,y=2*Math.max(Math.sqrt((d===p?w/2:l+(w-l)/(d-p)*(g-p))/Math.PI)<<0,1),g=q.getMarkerProperties(f,c);g.size=y;c.globalAlpha=q.fillOpacity;Y.drawMarker(h,r,c,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;var s=q.dataPointIds[f];this._eventManager.objectMap[s]={id:s,objectType:\"dataPoint\",\ndataSeriesIndex:m,dataPointIndex:f,x1:h,y1:r,size:y};y=T(s);v&&Y.drawMarker(h,r,this._eventManager.ghostCtx,g.type,g.size,y,y,g.borderThickness);(n[f].indexLabel||q.indexLabel||n[f].indexLabelFormatter||q.indexLabelFormatter)&&this._indexLabels.push({chartType:\"bubble\",dataPoint:n[f],dataSeries:q,point:{x:h,y:r},direction:1,bounds:{x1:h-g.size/2,y1:r-g.size/2,x2:h+g.size/2,y2:r+g.size/2},color:null})}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",\na.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderScatter=\nfunction(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,f=0,h,r;c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=0;d<a.dataSeriesIndexes.length;d++){var p=a.dataSeriesIndexes[d],k=this.data[p],m=k.dataPoints;if(0<\nm.length){c.strokeStyle=\"#4572A7 \";Math.pow(0.3*Math.min(b.height,b.width)/2,2);for(var q=0,n=0,f=0;f<m.length;f++)if(h=m[f].getTime?h=m[f].x.getTime():h=m[f].x,!(h<a.axisX.dataInfo.viewPortMin||h>a.axisX.dataInfo.viewPortMax)&&\"number\"===typeof m[f].y){h=a.axisX.convertValueToPixel(h);r=a.axisY.convertValueToPixel(m[f].y);var g=k.getMarkerProperties(f,h,r,c);c.globalAlpha=k.fillOpacity;Y.drawMarker(g.x,g.y,g.ctx,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;Math.sqrt((q-\nh)*(q-h)+(n-r)*(n-r))<Math.min(g.size,5)&&m.length>Math.min(this.plotArea.width,this.plotArea.height)||(q=k.dataPointIds[f],this._eventManager.objectMap[q]={id:q,objectType:\"dataPoint\",dataSeriesIndex:p,dataPointIndex:f,x1:h,y1:r},q=T(q),v&&Y.drawMarker(g.x,g.y,this._eventManager.ghostCtx,g.type,g.size,q,q,g.borderThickness),(m[f].indexLabel||k.indexLabel||m[f].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:\"scatter\",dataPoint:m[f],dataSeries:k,point:{x:h,y:r},direction:1,\nbounds:{x1:h-g.size/2,y1:r-g.size/2,x2:h+g.size/2,y2:r+g.size/2},color:null}),q=h,n=r)}}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());\nc.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderCandlestick=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var f=null,h=null,r=this.plotArea,d=0,l,k,m,q,n,g,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?\nthis.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*r.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&f>h&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&h<f)&&(h=Math.max(this.options.dataPointWidth?\nthis.dataPointWidth:-Infinity,f));t<f&&(t=f);t>h&&(t=h);c.save();v&&b.save();c.beginPath();c.rect(r.x1,r.y1,r.width,r.height);c.clip();v&&(b.beginPath(),b.rect(r.x1,r.y1,r.width,r.height),b.clip());for(var w=0;w<a.dataSeriesIndexes.length;w++){var y=a.dataSeriesIndexes[w],s=this.data[y],z=s.dataPoints;if(0<z.length)for(var u=5<t&&s.bevelEnabled?!0:!1,d=0;d<z.length;d++)if(z[d].getTime?g=z[d].x.getTime():g=z[d].x,!(g<a.axisX.dataInfo.viewPortMin||g>a.axisX.dataInfo.viewPortMax)&&!p(z[d].y)&&z[d].y.length&&\n\"number\"===typeof z[d].y[0]&&\"number\"===typeof z[d].y[1]&&\"number\"===typeof z[d].y[2]&&\"number\"===typeof z[d].y[3]){l=a.axisX.convertValueToPixel(g);k=a.axisY.convertValueToPixel(z[d].y[0]);m=a.axisY.convertValueToPixel(z[d].y[1]);q=a.axisY.convertValueToPixel(z[d].y[2]);n=a.axisY.convertValueToPixel(z[d].y[3]);var D=l-t/2<<0,C=D+t<<0,h=s.options.fallingColor?s.fallingColor:s._colorSet[0],f=z[d].color?z[d].color:s._colorSet[0],A=Math.round(Math.max(1,0.15*t)),B=0===A%2?0:0.5,E=s.dataPointIds[d];this._eventManager.objectMap[E]=\n{id:E,objectType:\"dataPoint\",dataSeriesIndex:y,dataPointIndex:d,x1:D,y1:k,x2:C,y2:m,x3:l,y3:q,x4:l,y4:n,borderThickness:A,color:f};c.strokeStyle=f;c.beginPath();c.lineWidth=A;b.lineWidth=Math.max(A,4);\"candlestick\"===s.type?(c.moveTo(l-B,m),c.lineTo(l-B,Math.min(k,n)),c.stroke(),c.moveTo(l-B,Math.max(k,n)),c.lineTo(l-B,q),c.stroke(),ba(c,D,Math.min(k,n),C,Math.max(k,n),z[d].y[0]<=z[d].y[3]?s.risingColor:h,A,f,u,u,!1,!1,s.fillOpacity),v&&(f=T(E),b.strokeStyle=f,b.moveTo(l-B,m),b.lineTo(l-B,Math.min(k,\nn)),b.stroke(),b.moveTo(l-B,Math.max(k,n)),b.lineTo(l-B,q),b.stroke(),ba(b,D,Math.min(k,n),C,Math.max(k,n),f,0,null,!1,!1,!1,!1))):\"ohlc\"===s.type&&(c.moveTo(l-B,m),c.lineTo(l-B,q),c.stroke(),c.beginPath(),c.moveTo(l,k),c.lineTo(D,k),c.stroke(),c.beginPath(),c.moveTo(l,n),c.lineTo(C,n),c.stroke(),v&&(f=T(E),b.strokeStyle=f,b.moveTo(l-B,m),b.lineTo(l-B,q),b.stroke(),b.beginPath(),b.moveTo(l,k),b.lineTo(D,k),b.stroke(),b.beginPath(),b.moveTo(l,n),b.lineTo(C,n),b.stroke()));(z[d].indexLabel||s.indexLabel||\nz[d].indexLabelFormatter||s.indexLabelFormatter)&&this._indexLabels.push({chartType:s.type,dataPoint:z[d],dataSeries:s,point:{x:D+(C-D)/2,y:a.axisY.reversed?q:m},direction:1,bounds:{x1:D,y1:Math.min(m,q),x2:C,y2:Math.max(m,q)},color:f})}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),\nthis._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(r.x1,r.y1,r.width,r.height),b.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderBoxAndWhisker=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var f=null,h=this.plotArea,\nr=0,d,l,k,m,q,n,g,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,r=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*h.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&f>\nr&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,r));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&r<f)&&(r=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,f));t<f&&(t=f);t>r&&(t=r);c.save();v&&b.save();c.beginPath();c.rect(h.x1,h.y1,h.width,h.height);c.clip();v&&(b.beginPath(),b.rect(h.x1,h.y1,h.width,h.height),b.clip());for(var w=!1,w=!!a.axisY.reversed,y=0;y<a.dataSeriesIndexes.length;y++){var s=a.dataSeriesIndexes[y],z=this.data[s],u=z.dataPoints;\nif(0<u.length)for(var D=5<t&&z.bevelEnabled?!0:!1,r=0;r<u.length;r++)if(u[r].getTime?g=u[r].x.getTime():g=u[r].x,!(g<a.axisX.dataInfo.viewPortMin||g>a.axisX.dataInfo.viewPortMax)&&!p(u[r].y)&&u[r].y.length&&\"number\"===typeof u[r].y[0]&&\"number\"===typeof u[r].y[1]&&\"number\"===typeof u[r].y[2]&&\"number\"===typeof u[r].y[3]&&\"number\"===typeof u[r].y[4]&&5===u[r].y.length){d=a.axisX.convertValueToPixel(g);l=a.axisY.convertValueToPixel(u[r].y[0]);k=a.axisY.convertValueToPixel(u[r].y[1]);m=a.axisY.convertValueToPixel(u[r].y[2]);\nq=a.axisY.convertValueToPixel(u[r].y[3]);n=a.axisY.convertValueToPixel(u[r].y[4]);var C=d-t/2<<0,A=d+t/2<<0,f=u[r].color?u[r].color:z._colorSet[0],B=Math.round(Math.max(1,0.15*t)),E=0===B%2?0:0.5,L=u[r].whiskerColor?u[r].whiskerColor:u[r].color?z.whiskerColor?z.whiskerColor:u[r].color:z.whiskerColor?z.whiskerColor:f,S=\"number\"===typeof u[r].whiskerThickness?u[r].whiskerThickness:\"number\"===typeof z.options.whiskerThickness?z.whiskerThickness:B,ga=u[r].whiskerDashType?u[r].whiskerDashType:z.whiskerDashType,\naa=p(u[r].whiskerLength)?p(z.options.whiskerLength)?t:z.whiskerLength:u[r].whiskerLength,aa=\"number\"===typeof aa?0>=aa?0:aa>=t?t:aa:\"string\"===typeof aa?parseInt(aa)*t/100>t?t:parseInt(aa)*t/100:t,ha=1===Math.round(S)%2?0.5:0,oa=u[r].stemColor?u[r].stemColor:u[r].color?z.stemColor?z.stemColor:u[r].color:z.stemColor?z.stemColor:f,la=\"number\"===typeof u[r].stemThickness?u[r].stemThickness:\"number\"===typeof z.options.stemThickness?z.stemThickness:B,F=1===Math.round(la)%2?0.5:0,I=u[r].stemDashType?u[r].stemDashType:\nz.stemDashType,K=u[r].lineColor?u[r].lineColor:u[r].color?z.lineColor?z.lineColor:u[r].color:z.lineColor?z.lineColor:f,P=\"number\"===typeof u[r].lineThickness?u[r].lineThickness:\"number\"===typeof z.options.lineThickness?z.lineThickness:B,V=u[r].lineDashType?u[r].lineDashType:z.lineDashType,M=1===Math.round(P)%2?0.5:0,Q=z.upperBoxColor,O=z.lowerBoxColor,ua=p(z.options.fillOpacity)?1:z.fillOpacity,R=z.dataPointIds[r];this._eventManager.objectMap[R]={id:R,objectType:\"dataPoint\",dataSeriesIndex:s,dataPointIndex:r,\nx1:C,y1:l,x2:A,y2:k,x3:d,y3:m,x4:d,y4:q,y5:n,borderThickness:B,color:f,stemThickness:la,stemColor:oa,whiskerThickness:S,whiskerLength:aa,whiskerColor:L,lineThickness:P,lineColor:K};c.save();0<la&&(c.beginPath(),c.strokeStyle=oa,c.lineWidth=la,c.setLineDash&&c.setLineDash(H(I,la)),c.moveTo(d-F,k),c.lineTo(d-F,l),c.stroke(),c.moveTo(d-F,q),c.lineTo(d-F,m),c.stroke());c.restore();b.lineWidth=Math.max(B,4);c.beginPath();ba(c,C,Math.min(n,k),A,Math.max(k,n),O,0,f,w?D:!1,w?!1:D,!1,!1,ua);c.beginPath();\nba(c,C,Math.min(m,n),A,Math.max(n,m),Q,0,f,w?!1:D,w?D:!1,!1,!1,ua);c.beginPath();c.lineWidth=B;c.strokeStyle=f;c.rect(C-E,Math.min(k,m)-E,A-C+2*E,Math.max(k,m)-Math.min(k,m)+2*E);c.stroke();c.save();0<P&&(c.beginPath(),c.globalAlpha=1,c.setLineDash&&c.setLineDash(H(V,P)),c.strokeStyle=K,c.lineWidth=P,c.moveTo(C,n-M),c.lineTo(A,n-M),c.stroke());c.restore();c.save();0<S&&(c.beginPath(),c.setLineDash&&c.setLineDash(H(ga,S)),c.strokeStyle=L,c.lineWidth=S,c.moveTo(d-aa/2<<0,q-ha),c.lineTo(d+aa/2<<0,q-\nha),c.stroke(),c.moveTo(d-aa/2<<0,l+ha),c.lineTo(d+aa/2<<0,l+ha),c.stroke());c.restore();v&&(f=T(R),b.strokeStyle=f,b.lineWidth=la,0<la&&(b.moveTo(d-E-F,k),b.lineTo(d-E-F,Math.max(l,q)),b.stroke(),b.moveTo(d-E-F,Math.min(l,q)),b.lineTo(d-E-F,m),b.stroke()),ba(b,C,Math.max(k,m),A,Math.min(k,m),f,0,null,!1,!1,!1,!1),0<S&&(b.beginPath(),b.lineWidth=S,b.moveTo(d+aa/2,q-ha),b.lineTo(d-aa/2,q-ha),b.stroke(),b.moveTo(d+aa/2,l+ha),b.lineTo(d-aa/2,l+ha),b.stroke()));(u[r].indexLabel||z.indexLabel||u[r].indexLabelFormatter||\nz.indexLabelFormatter)&&this._indexLabels.push({chartType:z.type,dataPoint:u[r],dataSeries:z,point:{x:C+(A-C)/2,y:a.axisY.reversed?l:q},direction:1,bounds:{x1:C,y1:Math.min(l,q),x2:A,y2:Math.max(l,q)},color:f})}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.clearRect(h.x1,h.y1,h.width,h.height),b.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderRangeColumn=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=0,r,d,l,h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:\n1;r=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(f.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>r&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,r));!this.dataPointMaxWidth&&\n(this.dataPointMinWidth&&r<h)&&(r=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,h));k<h&&(k=h);k>r&&(k=r);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(var m=0;m<a.dataSeriesIndexes.length;m++){var q=a.dataSeriesIndexes[m],n=this.data[q],g=n.dataPoints;if(0<g.length)for(var t=\n5<k&&n.bevelEnabled?!0:!1,h=0;h<g.length;h++)if(g[h].getTime?l=g[h].x.getTime():l=g[h].x,!(l<a.axisX.dataInfo.viewPortMin||l>a.axisX.dataInfo.viewPortMax)&&!p(g[h].y)&&g[h].y.length&&\"number\"===typeof g[h].y[0]&&\"number\"===typeof g[h].y[1]){b=a.axisX.convertValueToPixel(l);r=a.axisY.convertValueToPixel(g[h].y[0]);d=a.axisY.convertValueToPixel(g[h].y[1]);var w=a.axisX.reversed?b+a.plotType.totalDataSeries*k/2-(a.previousDataSeriesCount+m)*k<<0:b-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+\nm)*k<<0,y=a.axisX.reversed?w-k<<0:w+k<<0,b=g[h].color?g[h].color:n._colorSet[h%n._colorSet.length];if(r>d){var s=r;r=d;d=s}s=n.dataPointIds[h];this._eventManager.objectMap[s]={id:s,objectType:\"dataPoint\",dataSeriesIndex:q,dataPointIndex:h,x1:w,y1:r,x2:y,y2:d};ba(c,a.axisX.reversed?y:w,r,a.axisX.reversed?w:y,d,b,0,b,t,t,!1,!1,n.fillOpacity);b=T(s);v&&ba(this._eventManager.ghostCtx,a.axisX.reversed?y:w,r,a.axisX.reversed?w:y,d,b,0,null,!1,!1,!1,!1);if(g[h].indexLabel||n.indexLabel||g[h].indexLabelFormatter||\nn.indexLabelFormatter)this._indexLabels.push({chartType:\"rangeColumn\",dataPoint:g[h],dataSeries:n,indexKeyword:0,point:{x:w+(y-w)/2,y:g[h].y[1]>=g[h].y[0]?d:r},direction:g[h].y[1]>=g[h].y[0]?-1:1,bounds:{x1:w,y1:Math.min(r,d),x2:y,y2:Math.max(r,d)},color:b}),this._indexLabels.push({chartType:\"rangeColumn\",dataPoint:g[h],dataSeries:n,indexKeyword:1,point:{x:w+(y-w)/2,y:g[h].y[1]>=g[h].y[0]?r:d},direction:g[h].y[1]>=g[h].y[0]?1:-1,bounds:{x1:w,y1:Math.min(r,d),x2:y,y2:Math.max(r,d)},color:b})}}v&&(e.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,\nanimationBase:0}}};l.prototype.renderError=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e,b=a.axisY._position?\"left\"===a.axisY._position||\"right\"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var f=null,h=!1,r=this.plotArea,d=0,l,k,m,q,n,g,t,w=a.axisX.dataInfo.minDiff;isFinite(w)||(w=0.3*Math.abs(a.axisX.range));c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(r.x1,r.y1,r.width,r.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),\nthis._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var y=0,s=0;s<this.data.length;s++)!this.data[s].type.match(/(bar|column)/ig)||!this.data[s].visible||this.data[s].type.match(/(stacked)/ig)&&y||y++;for(var z=0;z<a.dataSeriesIndexes.length;z++){var u=a.dataSeriesIndexes[z],D=this.data[u],C=D.dataPoints,A=p(D._linkedSeries)?!1:D._linkedSeries.type.match(/(bar|column)/ig)&&D._linkedSeries.visible?!0:!1,E=0;if(A)for(f=D._linkedSeries.id,s=0;s<f;s++)!this.data[s].type.match(/(bar|column)/ig)||\n!this.data[s].visible||this.data[s].type.match(/(stacked)/ig)&&E||(this.data[s].type.match(/(range)/ig)&&(h=!0),E++);f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:b?Math.min(0.15*this.height,0.9*(this.plotArea.height/(A?y:1)))<<0:0.3*this.width;h&&(d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:\nb?Math.min(0.15*this.height,0.9*(this.plotArea.height/(A?y:1)))<<0:0.03*this.width);s=this.options.dataPointWidth?this.dataPointWidth:0.9*((b?r.height:r.width)*(a.axisX.logarithmic?Math.log(w)/Math.log(a.axisX.range):Math.abs(w)/Math.abs(a.axisX.range))/(A?y:1))<<0;this.dataPointMaxWidth&&f>d&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&d<f)&&(d=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,f));s<f&&\n(s=f);s>d&&(s=d);if(0<C.length)for(var H=D._colorSet,d=0;d<C.length;d++){var f=D.lineColor=D.options.color?D.options.color:H[0],L={color:C[d].whiskerColor?C[d].whiskerColor:C[d].color?D.whiskerColor?D.whiskerColor:C[d].color:D.whiskerColor?D.whiskerColor:f,thickness:p(C[d].whiskerThickness)?D.whiskerThickness:C[d].whiskerThickness,dashType:C[d].whiskerDashType?C[d].whiskerDashType:D.whiskerDashType,length:p(C[d].whiskerLength)?p(D.options.whiskerLength)?s:D.options.whiskerLength:C[d].whiskerLength,\ntrimLength:p(C[d].whiskerLength)?p(D.options.whiskerLength)?50:0:0};L.length=\"number\"===typeof L.length?0>=L.length?0:L.length>=s?s:L.length:\"string\"===typeof L.length?parseInt(L.length)*s/100>s?s:parseInt(L.length)*s/100>s:s;L.thickness=\"number\"===typeof L.thickness?0>L.thickness?0:Math.round(L.thickness):2;var S={color:C[d].stemColor?C[d].stemColor:C[d].color?D.stemColor?D.stemColor:C[d].color:D.stemColor?D.stemColor:f,thickness:C[d].stemThickness?C[d].stemThickness:D.stemThickness,dashType:C[d].stemDashType?\nC[d].stemDashType:D.stemDashType};S.thickness=\"number\"===typeof S.thickness?0>S.thickness?0:Math.round(S.thickness):2;C[d].getTime?t=C[d].x.getTime():t=C[d].x;if(!(t<a.axisX.dataInfo.viewPortMin||t>a.axisX.dataInfo.viewPortMax)&&!p(C[d].y)&&C[d].y.length&&\"number\"===typeof C[d].y[0]&&\"number\"===typeof C[d].y[1]){var ga=a.axisX.convertValueToPixel(t);b?k=ga:l=ga;ga=a.axisY.convertValueToPixel(C[d].y[0]);b?m=ga:n=ga;ga=a.axisY.convertValueToPixel(C[d].y[1]);b?q=ga:g=ga;b?(n=a.axisX.reversed?k+(A?y:\n1)*s/2-(A?E-1:0)*s<<0:k-(A?y:1)*s/2+(A?E-1:0)*s<<0,g=a.axisX.reversed?n-s<<0:n+s<<0):(m=a.axisX.reversed?l+(A?y:1)*s/2-(A?E-1:0)*s<<0:l-(A?y:1)*s/2+(A?E-1:0)*s<<0,q=a.axisX.reversed?m-s<<0:m+s<<0);!b&&n>g&&(ga=n,n=g,g=ga);b&&m>q&&(ga=m,m=q,q=ga);ga=D.dataPointIds[d];this._eventManager.objectMap[ga]={id:ga,objectType:\"dataPoint\",dataSeriesIndex:u,dataPointIndex:d,x1:Math.min(m,q),y1:Math.min(n,g),x2:Math.max(q,m),y2:Math.max(g,n),isXYSwapped:b,stemProperties:S,whiskerProperties:L};B(c,Math.min(m,q),\nMath.min(n,g),Math.max(q,m),Math.max(g,n),f,L,S,b);v&&B(this._eventManager.ghostCtx,m,n,q,g,f,L,S,b);if(C[d].indexLabel||D.indexLabel||C[d].indexLabelFormatter||D.indexLabelFormatter)this._indexLabels.push({chartType:\"error\",dataPoint:C[d],dataSeries:D,indexKeyword:0,point:{x:b?C[d].y[1]>=C[d].y[0]?m:q:m+(q-m)/2,y:b?n+(g-n)/2:C[d].y[1]>=C[d].y[0]?g:n},direction:C[d].y[1]>=C[d].y[0]?-1:1,bounds:{x1:b?Math.min(m,q):m,y1:b?n:Math.min(n,g),x2:b?Math.max(m,q):q,y2:b?g:Math.max(n,g)},color:f,axisSwapped:b}),\nthis._indexLabels.push({chartType:\"error\",dataPoint:C[d],dataSeries:D,indexKeyword:1,point:{x:b?C[d].y[1]>=C[d].y[0]?q:m:m+(q-m)/2,y:b?n+(g-n)/2:C[d].y[1]>=C[d].y[0]?n:g},direction:C[d].y[1]>=C[d].y[0]?1:-1,bounds:{x1:b?Math.min(m,q):m,y1:b?n:Math.min(n,g),x2:b?Math.max(m,q):q,y2:b?g:Math.max(n,g)},color:f,axisSwapped:b})}}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),\na.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderRangeBar=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:\ne;if(!(0>=a.dataSeriesIndexes.length)){var b=null,f=this.plotArea,h=0,r,d,l,k,h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;r=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));m=this.options.dataPointWidth?this.dataPointWidth:0.9*\n(f.height*(a.axisX.logarithmic?Math.log(m)/Math.log(a.axisX.range):Math.abs(m)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>r&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,r));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&r<h)&&(r=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,h));m<h&&(m=h);m>r&&(m=r);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),\nthis._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(var q=0;q<a.dataSeriesIndexes.length;q++){var n=a.dataSeriesIndexes[q],g=this.data[n],t=g.dataPoints;if(0<t.length){var w=5<m&&g.bevelEnabled?!0:!1;c.strokeStyle=\"#4572A7 \";for(h=0;h<t.length;h++)if(t[h].getTime?k=t[h].x.getTime():k=t[h].x,!(k<a.axisX.dataInfo.viewPortMin||k>a.axisX.dataInfo.viewPortMax)&&!p(t[h].y)&&t[h].y.length&&\"number\"===typeof t[h].y[0]&&\"number\"===typeof t[h].y[1]){r=a.axisY.convertValueToPixel(t[h].y[0]);\nd=a.axisY.convertValueToPixel(t[h].y[1]);l=a.axisX.convertValueToPixel(k);l=a.axisX.reversed?l+a.plotType.totalDataSeries*m/2-(a.previousDataSeriesCount+q)*m<<0:l-a.plotType.totalDataSeries*m/2+(a.previousDataSeriesCount+q)*m<<0;var y=a.axisX.reversed?l-m<<0:l+m<<0;r>d&&(b=r,r=d,d=b);b=t[h].color?t[h].color:g._colorSet[h%g._colorSet.length];ba(c,r,a.axisX.reversed?y:l,d,a.axisX.reversed?l:y,b,0,null,w,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",\ndataSeriesIndex:n,dataPointIndex:h,x1:r,y1:l,x2:d,y2:y};b=T(b);v&&ba(this._eventManager.ghostCtx,r,a.axisX.reversed?y:l,d,a.axisX.reversed?l:y,b,0,null,!1,!1,!1,!1);if(t[h].indexLabel||g.indexLabel||t[h].indexLabelFormatter||g.indexLabelFormatter)this._indexLabels.push({chartType:\"rangeBar\",dataPoint:t[h],dataSeries:g,indexKeyword:0,point:{x:t[h].y[1]>=t[h].y[0]?r:d,y:l+(y-l)/2},direction:t[h].y[1]>=t[h].y[0]?-1:1,bounds:{x1:Math.min(r,d),y1:l,x2:Math.max(r,d),y2:y},color:b}),this._indexLabels.push({chartType:\"rangeBar\",\ndataPoint:t[h],dataSeries:g,indexKeyword:1,point:{x:t[h].y[1]>=t[h].y[0]?d:r,y:l+(y-l)/2},direction:t[h].y[1]>=t[h].y[0]?1:-1,bounds:{x1:Math.min(r,d),y1:l,x2:Math.max(r,d),y2:y},color:b})}}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderRangeArea=function(a){function e(){if(z){for(var a=null,c=p.length-1;0<=c;c--)a=p[c],b.lineTo(a.x,a.y2),f.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=m.fillOpacity;b.fill();b.globalAlpha=1;f.fill();if(0<m.lineThickness){b.beginPath();\nb.moveTo(a.x,a.y2);for(c=0;c<p.length;c++)a=p[c],b.lineTo(a.x,a.y2);b.moveTo(p[0].x,p[0].y1);for(c=0;c<p.length;c++)a=p[c],b.lineTo(a.x,a.y1);b.stroke()}b.beginPath();b.moveTo(l,w);f.beginPath();f.moveTo(l,w);z={x:l,y:w};p=[];p.push({x:l,y1:w,y2:y})}}var c=a.targetCanvasCtx||this.plotArea.ctx,b=v?this._preRenderCtx:c;if(!(0>=a.dataSeriesIndexes.length)){var f=this._eventManager.ghostCtx,h=[],r=this.plotArea;b.save();v&&f.save();b.beginPath();b.rect(r.x1,r.y1,r.width,r.height);b.clip();v&&(f.beginPath(),\nf.rect(r.x1,r.y1,r.width,r.height),f.clip());for(var d=0;d<a.dataSeriesIndexes.length;d++){var p=[],k=a.dataSeriesIndexes[d],m=this.data[k],q=m.dataPoints,h=m.id;this._eventManager.objectMap[h]={objectType:\"dataSeries\",dataSeriesIndex:k};h=T(h);f.fillStyle=h;var h=[],n=!0,g=0,l,w,y,s,z=null;if(0<q.length){var u=m._colorSet[g%m._colorSet.length],t=m.lineColor=m.options.lineColor||u,C=t;b.fillStyle=u;b.strokeStyle=t;b.lineWidth=m.lineThickness;var A=\"solid\";if(b.setLineDash){var B=H(m.nullDataLineDashType,\nm.lineThickness),A=m.lineDashType,E=H(A,m.lineThickness);b.setLineDash(E)}for(var L=!0;g<q.length;g++)if(s=q[g].x.getTime?q[g].x.getTime():q[g].x,!(s<a.axisX.dataInfo.viewPortMin||s>a.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!L)))if(null!==q[g].y&&q[g].y.length&&\"number\"===typeof q[g].y[0]&&\"number\"===typeof q[g].y[1]){l=a.axisX.convertValueToPixel(s);w=a.axisY.convertValueToPixel(q[g].y[0]);y=a.axisY.convertValueToPixel(q[g].y[1]);n||L?(m.connectNullData&&!n?(b.setLineDash&&(m.options.nullDataLineDashType||\nA===m.lineDashType&&m.lineDashType!==m.nullDataLineDashType)&&(p[p.length-1].newLineDashArray=E,A=m.nullDataLineDashType,b.setLineDash(B)),b.lineTo(l,w),v&&f.lineTo(l,w),p.push({x:l,y1:w,y2:y})):(b.beginPath(),b.moveTo(l,w),z={x:l,y:w},p=[],p.push({x:l,y1:w,y2:y}),v&&(f.beginPath(),f.moveTo(l,w))),L=n=!1):(b.lineTo(l,w),p.push({x:l,y1:w,y2:y}),v&&f.lineTo(l,w),0==g%250&&e());s=m.dataPointIds[g];this._eventManager.objectMap[s]={id:s,objectType:\"dataPoint\",dataSeriesIndex:k,dataPointIndex:g,x1:l,y1:w,\ny2:y};g<q.length-1&&(C!==(q[g].lineColor||t)||A!==(q[g].lineDashType||m.lineDashType))&&(e(),C=q[g].lineColor||t,p[p.length-1].newStrokeStyle=C,b.strokeStyle=C,b.setLineDash&&(q[g].lineDashType?(A=q[g].lineDashType,p[p.length-1].newLineDashArray=H(A,m.lineThickness),b.setLineDash(p[p.length-1].newLineDashArray)):(A=m.lineDashType,p[p.length-1].newLineDashArray=E,b.setLineDash(E))));if(0!==q[g].markerSize&&(0<q[g].markerSize||0<m.markerSize)){var S=m.getMarkerProperties(g,l,y,b);h.push(S);var ga=T(s);\nv&&h.push({x:l,y:y,ctx:f,type:S.type,size:S.size,color:ga,borderColor:ga,borderThickness:S.borderThickness});S=m.getMarkerProperties(g,l,w,b);h.push(S);ga=T(s);v&&h.push({x:l,y:w,ctx:f,type:S.type,size:S.size,color:ga,borderColor:ga,borderThickness:S.borderThickness})}if(q[g].indexLabel||m.indexLabel||q[g].indexLabelFormatter||m.indexLabelFormatter)this._indexLabels.push({chartType:\"rangeArea\",dataPoint:q[g],dataSeries:m,indexKeyword:0,point:{x:l,y:w},direction:q[g].y[0]>q[g].y[1]===a.axisY.reversed?\n-1:1,color:u}),this._indexLabels.push({chartType:\"rangeArea\",dataPoint:q[g],dataSeries:m,indexKeyword:1,point:{x:l,y:y},direction:q[g].y[0]>q[g].y[1]===a.axisY.reversed?1:-1,color:u})}else L||n||e(),L=!0;e();Y.drawMarkers(h)}}v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&\nthis._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderRangeSplineArea=function(a){function e(a,c){var g=t(w,2);if(0<g.length){if(0<k.lineThickness){b.strokeStyle=c;b.setLineDash&&b.setLineDash(a);b.beginPath();b.moveTo(g[0].x,g[0].y);for(var e=\n0;e<g.length-3;e+=3){if(g[e].newStrokeStyle||g[e].newLineDashArray)b.stroke(),b.beginPath(),b.moveTo(g[e].x,g[e].y),g[e].newStrokeStyle&&(b.strokeStyle=g[e].newStrokeStyle),g[e].newLineDashArray&&b.setLineDash(g[e].newLineDashArray);b.bezierCurveTo(g[e+1].x,g[e+1].y,g[e+2].x,g[e+2].y,g[e+3].x,g[e+3].y)}}b.beginPath();b.moveTo(g[0].x,g[0].y);v&&(f.beginPath(),f.moveTo(g[0].x,g[0].y));for(e=0;e<g.length-3;e+=3)b.bezierCurveTo(g[e+1].x,g[e+1].y,g[e+2].x,g[e+2].y,g[e+3].x,g[e+3].y),v&&f.bezierCurveTo(g[e+\n1].x,g[e+1].y,g[e+2].x,g[e+2].y,g[e+3].x,g[e+3].y);g=t(y,2);b.lineTo(y[y.length-1].x,y[y.length-1].y);for(e=g.length-1;2<e;e-=3)b.bezierCurveTo(g[e-1].x,g[e-1].y,g[e-2].x,g[e-2].y,g[e-3].x,g[e-3].y),v&&f.bezierCurveTo(g[e-1].x,g[e-1].y,g[e-2].x,g[e-2].y,g[e-3].x,g[e-3].y);b.closePath();b.globalAlpha=k.fillOpacity;b.fill();v&&(f.closePath(),f.fill());b.globalAlpha=1;if(0<k.lineThickness){b.strokeStyle=c;b.setLineDash&&b.setLineDash(a);b.beginPath();b.moveTo(g[0].x,g[0].y);for(var h=e=0;e<g.length-\n3;e+=3,h++){if(w[h].newStrokeStyle||w[h].newLineDashArray)b.stroke(),b.beginPath(),b.moveTo(g[e].x,g[e].y),w[h].newStrokeStyle&&(b.strokeStyle=w[h].newStrokeStyle),w[h].newLineDashArray&&b.setLineDash(w[h].newLineDashArray);b.bezierCurveTo(g[e+1].x,g[e+1].y,g[e+2].x,g[e+2].y,g[e+3].x,g[e+3].y)}g=t(w,2);b.moveTo(g[0].x,g[0].y);for(h=e=0;e<g.length-3;e+=3,h++){if(w[h].newStrokeStyle||w[h].newLineDashArray)b.stroke(),b.beginPath(),b.moveTo(g[e].x,g[e].y),w[h].newStrokeStyle&&(b.strokeStyle=w[h].newStrokeStyle),\nw[h].newLineDashArray&&b.setLineDash(w[h].newLineDashArray);b.bezierCurveTo(g[e+1].x,g[e+1].y,g[e+2].x,g[e+2].y,g[e+3].x,g[e+3].y)}b.stroke()}b.beginPath()}}var c=a.targetCanvasCtx||this.plotArea.ctx,b=v?this._preRenderCtx:c;if(!(0>=a.dataSeriesIndexes.length)){var f=this._eventManager.ghostCtx,h=[],r=this.plotArea;b.save();v&&f.save();b.beginPath();b.rect(r.x1,r.y1,r.width,r.height);b.clip();v&&(f.beginPath(),f.rect(r.x1,r.y1,r.width,r.height),f.clip());for(var d=0;d<a.dataSeriesIndexes.length;d++){var p=\na.dataSeriesIndexes[d],k=this.data[p],m=k.dataPoints,h=k.id;this._eventManager.objectMap[h]={objectType:\"dataSeries\",dataSeriesIndex:p};h=T(h);f.fillStyle=h;var h=[],q=0,n,g,l,w=[],y=[];if(0<m.length){var s=k._colorSet[q%k._colorSet.length],z=k.lineColor=k.options.lineColor||s,u=z;b.fillStyle=s;b.lineWidth=k.lineThickness;var D=\"solid\",C;if(b.setLineDash){var A=H(k.nullDataLineDashType,k.lineThickness),D=k.lineDashType;C=H(D,k.lineThickness)}for(g=!1;q<m.length;q++)if(n=m[q].x.getTime?m[q].x.getTime():\nm[q].x,!(n<a.axisX.dataInfo.viewPortMin||n>a.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!g)))if(null!==m[q].y&&m[q].y.length&&\"number\"===typeof m[q].y[0]&&\"number\"===typeof m[q].y[1]){n=a.axisX.convertValueToPixel(n);g=a.axisY.convertValueToPixel(m[q].y[0]);l=a.axisY.convertValueToPixel(m[q].y[1]);var B=k.dataPointIds[q];this._eventManager.objectMap[B]={id:B,objectType:\"dataPoint\",dataSeriesIndex:p,dataPointIndex:q,x1:n,y1:g,y2:l};w[w.length]={x:n,y:g};y[y.length]={x:n,y:l};q<m.length-1&&(u!==\n(m[q].lineColor||z)||D!==(m[q].lineDashType||k.lineDashType))&&(u=m[q].lineColor||z,w[w.length-1].newStrokeStyle=u,b.setLineDash&&(m[q].lineDashType?(D=m[q].lineDashType,w[w.length-1].newLineDashArray=H(D,k.lineThickness)):(D=k.lineDashType,w[w.length-1].newLineDashArray=C)));if(0!==m[q].markerSize&&(0<m[q].markerSize||0<k.markerSize)){var E=k.getMarkerProperties(q,n,g,b);h.push(E);var L=T(B);v&&h.push({x:n,y:g,ctx:f,type:E.type,size:E.size,color:L,borderColor:L,borderThickness:E.borderThickness});\nE=k.getMarkerProperties(q,n,l,b);h.push(E);L=T(B);v&&h.push({x:n,y:l,ctx:f,type:E.type,size:E.size,color:L,borderColor:L,borderThickness:E.borderThickness})}if(m[q].indexLabel||k.indexLabel||m[q].indexLabelFormatter||k.indexLabelFormatter)this._indexLabels.push({chartType:\"rangeSplineArea\",dataPoint:m[q],dataSeries:k,indexKeyword:0,point:{x:n,y:g},direction:m[q].y[0]<=m[q].y[1]?-1:1,color:s}),this._indexLabels.push({chartType:\"rangeSplineArea\",dataPoint:m[q],dataSeries:k,indexKeyword:1,point:{x:n,\ny:l},direction:m[q].y[0]<=m[q].y[1]?1:-1,color:s});g=!1}else 0<q&&!g&&(k.connectNullData?b.setLineDash&&(0<w.length&&(k.options.nullDataLineDashType||!m[q-1].lineDashType))&&(w[w.length-1].newLineDashArray=A,D=k.nullDataLineDashType):(e(C,z),w=[],y=[])),g=!0;e(C,z);Y.drawMarkers(h)}}v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,\n0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderWaterfall=function(a){var e=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:e;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx,\nf=null,h=this.plotArea,r=0,d,p,k,m,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),r=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?\nthis.dataPointWidth:0.6*(h.width*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&r>p&&(r=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&p<r)&&(p=Math.max(this.options.dataPointWidth?this.dataPointWidth:-Infinity,r));n<r&&(n=r);n>p&&(n=p);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(h.x1,h.y1,h.width,h.height);\nc.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(h.x1,h.y1,h.width,h.height),this._eventManager.ghostCtx.clip());for(var g=0;g<a.dataSeriesIndexes.length;g++){var l=a.dataSeriesIndexes[g],w=this.data[l],y=w.dataPoints,f=w._colorSet[0];w.risingColor=w.options.risingColor?w.options.risingColor:f;w.fallingColor=w.options.fallingColor?w.options.fallingColor:\"#e40a0a\";var s=\"number\"===typeof w.options.lineThickness?Math.round(w.lineThickness):1,z=1===Math.round(s)%\n2?-0.5:0;if(0<y.length)for(var u=5<n&&w.bevelEnabled?!0:!1,t=!1,C=null,A=null,r=0;r<y.length;r++)if(y[r].getTime?m=y[r].x.getTime():m=y[r].x,\"number\"!==typeof y[r].y){if(0<r&&!t&&w.connectNullData)var B=w.options.nullDataLineDashType||!y[r-1].lineDashType?w.nullDataLineDashType:y[r-1].lineDashType;t=!0}else{d=a.axisX.convertValueToPixel(m);p=0===w.dataPointEOs[r].cumulativeSum?q:a.axisY.convertValueToPixel(w.dataPointEOs[r].cumulativeSum);k=0===w.dataPointEOs[r].cumulativeSumYStartValue?q:a.axisY.convertValueToPixel(w.dataPointEOs[r].cumulativeSumYStartValue);\nd=a.axisX.reversed?d+a.plotType.totalDataSeries*n/2-(a.previousDataSeriesCount+g)*n<<0:d-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+g)*n<<0;var E=a.axisX.reversed?d-n<<0:d+n<<0;p>k&&(f=p,p=k,k=f);a.axisY.reversed&&(f=p,p=k,k=f);f=w.dataPointIds[r];this._eventManager.objectMap[f]={id:f,objectType:\"dataPoint\",dataSeriesIndex:l,dataPointIndex:r,x1:d,y1:p,x2:E,y2:k};var L=y[r].color?y[r].color:0<y[r].y?w.risingColor:w.fallingColor;ba(c,a.axisX.reversed?E:d,a.axisY.reversed?k:p,a.axisX.reversed?\nd:E,a.axisY.reversed?p:k,L,0,L,u,u,!1,!1,w.fillOpacity);f=T(f);v&&ba(this._eventManager.ghostCtx,a.axisX.reversed?E:d,p,a.axisX.reversed?d:E,k,f,0,null,!1,!1,!1,!1);var S,L=d;S=\"undefined\"!==typeof y[r].isIntermediateSum&&!0===y[r].isIntermediateSum||\"undefined\"!==typeof y[r].isCumulativeSum&&!0===y[r].isCumulativeSum?0<y[r].y?p:k:0<y[r].y?k:p;0<r&&C&&(!t||w.connectNullData)&&(t&&c.setLineDash&&c.setLineDash(H(B,s)),c.beginPath(),c.moveTo(C,A-z),c.lineTo(L,S-z),0<s&&c.stroke(),v&&(b.beginPath(),b.moveTo(C,\nA-z),b.lineTo(L,S-z),0<s&&b.stroke()));t=!1;C=E;A=0<y[r].y?p:k;L=y[r].lineDashType?y[r].lineDashType:w.options.lineDashType?w.options.lineDashType:\"shortDash\";c.strokeStyle=y[r].lineColor?y[r].lineColor:w.options.lineColor?w.options.lineColor:\"#9e9e9e\";c.lineWidth=s;c.setLineDash&&(L=H(L,s),c.setLineDash(L));(y[r].indexLabel||w.indexLabel||y[r].indexLabelFormatter||w.indexLabelFormatter)&&this._indexLabels.push({chartType:\"waterfall\",dataPoint:y[r],dataSeries:w,point:{x:d+(E-d)/2,y:0<=y[r].y?p:k},\ndirection:0>y[r].y===a.axisY.reversed?1:-1,bounds:{x1:d,y1:Math.min(p,k),x2:E,y2:Math.max(p,k)},color:f})}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(h.x1,h.y1,h.width,\nh.height),this._eventManager.ghostCtx.restore());c.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};var qa=function(a,e,c,b,f,h,r,d,p){if(!(0>c)){\"undefined\"===typeof d&&(d=1);if(!v){var k=Number((r%(2*Math.PI)).toFixed(8));Number((h%(2*Math.PI)).toFixed(8))===k&&(r-=1E-4)}a.save();a.globalAlpha=d;\"pie\"===f?(a.beginPath(),a.moveTo(e.x,e.y),a.arc(e.x,e.y,c,h,r,!1),a.fillStyle=b,a.strokeStyle=\"white\",a.lineWidth=\n2,a.closePath(),a.fill()):\"doughnut\"===f&&(a.beginPath(),a.arc(e.x,e.y,c,h,r,!1),0<=p&&a.arc(e.x,e.y,p*c,r,h,!0),a.closePath(),a.fillStyle=b,a.strokeStyle=\"white\",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};l.prototype.renderPie=function(a){function e(){if(k&&m){var a=0,b=0,c=0,f=0;p(k.options.indexLabelMaxWidth)&&(k.indexLabelMaxWidth=0.33*n.width);for(var e=0;e<m.length;e++){var h=m[e],r=k.dataPointIds[e];g[e].id=r;g[e].objectType=\"dataPoint\";g[e].dataPointIndex=e;g[e].dataSeriesIndex=\n0;var d=g[e],q={percent:null,total:null},x=null,q=l.getPercentAndTotal(k,h);if(k.indexLabelFormatter||h.indexLabelFormatter)x={chart:l.options,dataSeries:k,dataPoint:h,total:q.total,percent:q.percent};q=h.indexLabelFormatter?h.indexLabelFormatter(x):h.indexLabel?l.replaceKeywordsWithValue(h.indexLabel,h,k,e):k.indexLabelFormatter?k.indexLabelFormatter(x):k.indexLabel?l.replaceKeywordsWithValue(k.indexLabel,h,k,e):h.label?h.label:\"\";l._eventManager.objectMap[r]=d;d.center={x:u.x,y:u.y};d.y=h.y;d.radius=\nA;d.percentInnerRadius=E;d.indexLabelText=q;d.indexLabelPlacement=k.indexLabelPlacement;d.indexLabelLineColor=h.indexLabelLineColor?h.indexLabelLineColor:k.options.indexLabelLineColor?k.options.indexLabelLineColor:h.color?h.color:k._colorSet[e%k._colorSet.length];d.indexLabelLineThickness=p(h.indexLabelLineThickness)?k.indexLabelLineThickness:h.indexLabelLineThickness;d.indexLabelLineDashType=h.indexLabelLineDashType?h.indexLabelLineDashType:k.indexLabelLineDashType;d.indexLabelFontColor=h.indexLabelFontColor?\nh.indexLabelFontColor:k.indexLabelFontColor;d.indexLabelFontStyle=h.indexLabelFontStyle?h.indexLabelFontStyle:k.indexLabelFontStyle;d.indexLabelFontWeight=h.indexLabelFontWeight?h.indexLabelFontWeight:k.indexLabelFontWeight;d.indexLabelFontSize=p(h.indexLabelFontSize)?k.indexLabelFontSize:h.indexLabelFontSize;d.indexLabelFontFamily=h.indexLabelFontFamily?h.indexLabelFontFamily:k.indexLabelFontFamily;d.indexLabelBackgroundColor=h.indexLabelBackgroundColor?h.indexLabelBackgroundColor:k.options.indexLabelBackgroundColor?\nk.options.indexLabelBackgroundColor:k.indexLabelBackgroundColor;d.indexLabelMaxWidth=h.indexLabelMaxWidth?h.indexLabelMaxWidth:k.indexLabelMaxWidth;d.indexLabelWrap=\"undefined\"!==typeof h.indexLabelWrap?h.indexLabelWrap:k.indexLabelWrap;d.indexLabelTextAlign=h.indexLabelTextAlign?h.indexLabelTextAlign:k.indexLabelTextAlign?k.indexLabelTextAlign:\"left\";d.startAngle=0===e?k.startAngle?k.startAngle/180*Math.PI:0:g[e-1].endAngle;d.startAngle=(d.startAngle+2*Math.PI)%(2*Math.PI);d.endAngle=d.startAngle+\n2*Math.PI/t*Math.abs(h.y);h=(d.endAngle+d.startAngle)/2;h=(h+2*Math.PI)%(2*Math.PI);d.midAngle=h;if(d.midAngle>Math.PI/2-s&&d.midAngle<Math.PI/2+s){if(0===a||g[c].midAngle>d.midAngle)c=e;a++}else if(d.midAngle>3*Math.PI/2-s&&d.midAngle<3*Math.PI/2+s){if(0===b||g[f].midAngle>d.midAngle)f=e;b++}d.hemisphere=h>Math.PI/2&&h<=3*Math.PI/2?\"left\":\"right\";d.indexLabelTextBlock=new ka(l.plotArea.ctx,{fontSize:d.indexLabelFontSize,fontFamily:d.indexLabelFontFamily,fontColor:d.indexLabelFontColor,fontStyle:d.indexLabelFontStyle,\nfontWeight:d.indexLabelFontWeight,textAlign:d.indexLabelTextAlign,backgroundColor:d.indexLabelBackgroundColor,maxWidth:d.indexLabelMaxWidth,maxHeight:d.indexLabelWrap?5*d.indexLabelFontSize:1.5*d.indexLabelFontSize,text:d.indexLabelText,padding:0,textBaseline:\"middle\"});d.indexLabelTextBlock.measureText()}r=h=0;q=!1;for(e=0;e<m.length;e++)d=g[(c+e)%m.length],1<a&&(d.midAngle>Math.PI/2-s&&d.midAngle<Math.PI/2+s)&&(h<=a/2&&!q?(d.hemisphere=\"right\",h++):(d.hemisphere=\"left\",q=!0));q=!1;for(e=0;e<m.length;e++)d=\ng[(f+e)%m.length],1<b&&(d.midAngle>3*Math.PI/2-s&&d.midAngle<3*Math.PI/2+s)&&(r<=b/2&&!q?(d.hemisphere=\"left\",r++):(d.hemisphere=\"right\",q=!0))}}function c(a,b){var c=l.plotArea.ctx;c.clearRect(n.x1,n.y1,n.width,n.height);c.fillStyle=l.backgroundColor;c.fillRect(n.x1,n.y1,n.width,n.height);for(c=0;c<m.length;c++){var e=g[c].startAngle,f=g[c].endAngle;if(f>e){var h=0.07*A*Math.cos(g[c].midAngle),d=0.07*A*Math.sin(g[c].midAngle),r=!1;if(m[c].exploded){if(1E-9<Math.abs(g[c].center.x-(u.x+h))||1E-9<Math.abs(g[c].center.y-\n(u.y+d)))g[c].center.x=u.x+h*a,g[c].center.y=u.y+d*a,r=!0}else if(0<Math.abs(g[c].center.x-u.x)||0<Math.abs(g[c].center.y-u.y))g[c].center.x=u.x+h*(1-a),g[c].center.y=u.y+d*(1-a),r=!0;r&&b&&(h={},h.dataSeries=k,h.dataPoint=k.dataPoints[c],h.index=c,l.toolTip.highlightObjects([h]));qa(l.plotArea.ctx,g[c].center,g[c].radius,m[c].color?m[c].color:k._colorSet[c%k._colorSet.length],k.type,e,f,k.fillOpacity,g[c].percentInnerRadius)}}c=l.plotArea.ctx;c.save();c.fillStyle=\"black\";c.strokeStyle=\"grey\";c.textBaseline=\n\"middle\";c.lineJoin=\"round\";for(e=e=0;e<m.length;e++)f=g[e],f.indexLabelText&&(f.indexLabelTextBlock.y-=f.indexLabelTextBlock.height/2-f.indexLabelTextBlock.fontSize/2,h=0,h=\"left\"===f.hemisphere?\"inside\"!==k.indexLabelPlacement?-(f.indexLabelTextBlock.width+q):-f.indexLabelTextBlock.width/2:\"inside\"!==k.indexLabelPlacement?q:-f.indexLabelTextBlock.width/2,f.indexLabelTextBlock.x+=h,f.indexLabelTextBlock.render(!0),f.indexLabelTextBlock.x-=h,f.indexLabelTextBlock.y+=f.indexLabelTextBlock.height/2-\nf.indexLabelTextBlock.fontSize/2,\"inside\"!==f.indexLabelPlacement&&0<f.indexLabelLineThickness&&(h=f.center.x+A*Math.cos(f.midAngle),d=f.center.y+A*Math.sin(f.midAngle),c.strokeStyle=f.indexLabelLineColor,c.lineWidth=f.indexLabelLineThickness,c.setLineDash&&c.setLineDash(H(f.indexLabelLineDashType,f.indexLabelLineThickness)),c.beginPath(),c.moveTo(h,d),c.lineTo(f.indexLabelTextBlock.x,f.indexLabelTextBlock.y),c.lineTo(f.indexLabelTextBlock.x+(\"left\"===f.hemisphere?-q:q),f.indexLabelTextBlock.y),c.stroke()),\nc.lineJoin=\"miter\");c.save()}function b(a,b){var c=0,c=a.indexLabelTextBlock.y-a.indexLabelTextBlock.height/2,f=a.indexLabelTextBlock.y+a.indexLabelTextBlock.height/2,g=b.indexLabelTextBlock.y-b.indexLabelTextBlock.height/2,e=b.indexLabelTextBlock.y+b.indexLabelTextBlock.height/2;return c=b.indexLabelTextBlock.y>a.indexLabelTextBlock.y?g-f:c-e}function f(a){for(var c=null,f=1;f<m.length;f++)if(c=(a+f+g.length)%g.length,g[c].hemisphere!==g[a].hemisphere){c=null;break}else if(g[c].indexLabelText&&c!==\na&&(0>b(g[c],g[a])||(\"right\"===g[a].hemisphere?g[c].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y:g[c].indexLabelTextBlock.y<=g[a].indexLabelTextBlock.y)))break;else c=null;return c}function h(a,c,e){e=(e||0)+1;if(1E3<e)return 0;c=c||0;var d=0,r=u.y-1*w,k=u.y+1*w;if(0<=a&&a<m.length){var n=g[a];if(0>c&&n.indexLabelTextBlock.y<r||0<c&&n.indexLabelTextBlock.y>k)return 0;var q=0,p=0,p=q=q=0;0>c?n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2>r&&n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/\n2+c<r&&(c=-(r-(n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2+c))):n.indexLabelTextBlock.y+n.indexLabelTextBlock.height/2<r&&n.indexLabelTextBlock.y+n.indexLabelTextBlock.height/2+c>k&&(c=n.indexLabelTextBlock.y+n.indexLabelTextBlock.height/2+c-k);c=n.indexLabelTextBlock.y+c;r=0;r=\"right\"===n.hemisphere?u.x+Math.sqrt(Math.pow(w,2)-Math.pow(c-u.y,2)):u.x-Math.sqrt(Math.pow(w,2)-Math.pow(c-u.y,2));p=u.x+A*Math.cos(n.midAngle);q=u.y+A*Math.sin(n.midAngle);q=Math.sqrt(Math.pow(r-p,2)+Math.pow(c-\nq,2));p=Math.acos(A/w);q=Math.acos((w*w+A*A-q*q)/(2*A*w));c=q<p?c-n.indexLabelTextBlock.y:0;r=null;for(k=1;k<m.length;k++)if(r=(a-k+g.length)%g.length,g[r].hemisphere!==g[a].hemisphere){r=null;break}else if(g[r].indexLabelText&&g[r].hemisphere===g[a].hemisphere&&r!==a&&(0>b(g[r],g[a])||(\"right\"===g[a].hemisphere?g[r].indexLabelTextBlock.y<=g[a].indexLabelTextBlock.y:g[r].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y)))break;else r=null;p=r;q=f(a);k=r=0;0>c?(k=\"right\"===n.hemisphere?p:q,d=c,null!==\nk&&(p=-c,c=n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2-(g[k].indexLabelTextBlock.y+g[k].indexLabelTextBlock.height/2),c-p<v&&(r=-p,k=h(k,r,e+1),+k.toFixed(z)>+r.toFixed(z)&&(d=c>v?-(c-v):-(p-(k-r)))))):0<c&&(k=\"right\"===n.hemisphere?q:p,d=c,null!==k&&(p=c,c=g[k].indexLabelTextBlock.y-g[k].indexLabelTextBlock.height/2-(n.indexLabelTextBlock.y+n.indexLabelTextBlock.height/2),c-p<v&&(r=p,k=h(k,r,e+1),+k.toFixed(z)<+r.toFixed(z)&&(d=c>v?c-v:p-(r-k)))));d&&(e=n.indexLabelTextBlock.y+d,c=0,c=\n\"right\"===n.hemisphere?u.x+Math.sqrt(Math.pow(w,2)-Math.pow(e-u.y,2)):u.x-Math.sqrt(Math.pow(w,2)-Math.pow(e-u.y,2)),n.midAngle>Math.PI/2-s&&n.midAngle<Math.PI/2+s?(r=(a-1+g.length)%g.length,r=g[r],a=g[(a+1+g.length)%g.length],\"left\"===n.hemisphere&&\"right\"===r.hemisphere&&c>r.indexLabelTextBlock.x?c=r.indexLabelTextBlock.x-15:\"right\"===n.hemisphere&&(\"left\"===a.hemisphere&&c<a.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x+15)):n.midAngle>3*Math.PI/2-s&&n.midAngle<3*Math.PI/2+s&&(r=(a-1+g.length)%\ng.length,r=g[r],a=g[(a+1+g.length)%g.length],\"right\"===n.hemisphere&&\"left\"===r.hemisphere&&c<r.indexLabelTextBlock.x?c=r.indexLabelTextBlock.x+15:\"left\"===n.hemisphere&&(\"right\"===a.hemisphere&&c>a.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x-15)),n.indexLabelTextBlock.y=e,n.indexLabelTextBlock.x=c,n.indexLabelAngle=Math.atan2(n.indexLabelTextBlock.y-u.y,n.indexLabelTextBlock.x-u.x))}return d}function r(){var a=l.plotArea.ctx;a.fillStyle=\"grey\";a.strokeStyle=\"grey\";a.font=\"16px Arial\";a.textBaseline=\n\"middle\";for(var c=a=0,e=0,r=!0,c=0;10>c&&(1>c||0<e);c++){if(k.radius||!k.radius&&\"undefined\"!==typeof k.innerRadius&&null!==k.innerRadius&&A-e<=B)r=!1;r&&(A-=e);e=0;if(\"inside\"!==k.indexLabelPlacement){w=A*y;for(a=0;a<m.length;a++){var d=g[a];d.indexLabelTextBlock.x=u.x+w*Math.cos(d.midAngle);d.indexLabelTextBlock.y=u.y+w*Math.sin(d.midAngle);d.indexLabelAngle=d.midAngle;d.radius=A;d.percentInnerRadius=E}for(var p,s,a=0;a<m.length;a++){var d=g[a],x=f(a);if(null!==x){p=g[a];s=g[x];var t=0,t=b(p,s)-\nv;if(0>t){for(var C=s=0,D=0;D<m.length;D++)D!==a&&g[D].hemisphere===d.hemisphere&&(g[D].indexLabelTextBlock.y<d.indexLabelTextBlock.y?s++:C++);s=t/(s+C||1)*C;var C=-1*(t-s),H=D=0;\"right\"===d.hemisphere?(D=h(a,s),C=-1*(t-D),H=h(x,C),+H.toFixed(z)<+C.toFixed(z)&&+D.toFixed(z)<=+s.toFixed(z)&&h(a,-(C-H))):(D=h(x,s),C=-1*(t-D),H=h(a,C),+H.toFixed(z)<+C.toFixed(z)&&+D.toFixed(z)<=+s.toFixed(z)&&h(x,-(C-H)))}}}}else for(a=0;a<m.length;a++)d=g[a],w=\"pie\"===k.type?0.7*A:0.85*A,x=u.x+w*Math.cos(d.midAngle),\ns=u.y+w*Math.sin(d.midAngle),d.indexLabelTextBlock.x=x,d.indexLabelTextBlock.y=s;for(a=0;a<m.length;a++)if(d=g[a],x=d.indexLabelTextBlock.measureText(),0!==x.height&&0!==x.width)x=x=0,\"right\"===d.hemisphere?(x=n.x2-(d.indexLabelTextBlock.x+d.indexLabelTextBlock.width+q),x*=-1):x=n.x1-(d.indexLabelTextBlock.x-d.indexLabelTextBlock.width-q),0<x&&(!r&&d.indexLabelText&&(s=\"right\"===d.hemisphere?n.x2-d.indexLabelTextBlock.x:d.indexLabelTextBlock.x-n.x1,0.3*d.indexLabelTextBlock.maxWidth>s?d.indexLabelText=\n\"\":d.indexLabelTextBlock.maxWidth=0.85*s,0.3*d.indexLabelTextBlock.maxWidth<s&&(d.indexLabelTextBlock.x-=\"right\"===d.hemisphere?2:-2)),Math.abs(d.indexLabelTextBlock.y-d.indexLabelTextBlock.height/2-u.y)<A||Math.abs(d.indexLabelTextBlock.y+d.indexLabelTextBlock.height/2-u.y)<A)&&(x/=Math.abs(Math.cos(d.indexLabelAngle)),9<x&&(x*=0.3),x>e&&(e=x)),x=x=0,0<d.indexLabelAngle&&d.indexLabelAngle<Math.PI?(x=n.y2-(d.indexLabelTextBlock.y+d.indexLabelTextBlock.height/2+5),x*=-1):x=n.y1-(d.indexLabelTextBlock.y-\nd.indexLabelTextBlock.height/2-5),0<x&&(!r&&d.indexLabelText&&(s=0<d.indexLabelAngle&&d.indexLabelAngle<Math.PI?-1:1,0===h(a,x*s)&&h(a,2*s)),Math.abs(d.indexLabelTextBlock.x-u.x)<A&&(x/=Math.abs(Math.sin(d.indexLabelAngle)),9<x&&(x*=0.3),x>e&&(e=x)));var M=function(a,b,c){for(var f=[],e=0;f.push(g[b]),b!==c;b=(b+1+m.length)%m.length);f.sort(function(a,b){return a.y-b.y});for(b=0;b<f.length;b++)if(c=f[b],e<0.7*a)e+=c.indexLabelTextBlock.height,c.indexLabelTextBlock.text=\"\",c.indexLabelText=\"\",c.indexLabelTextBlock.measureText();\nelse break};(function(){for(var a=-1,c=-1,e=0,h=!1,d=0;d<m.length;d++)if(h=!1,p=g[d],p.indexLabelText){var r=f(d);if(null!==r){var k=g[r];t=0;t=b(p,k);var n;if(n=0>t){n=p.indexLabelTextBlock.x;var l=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2,x=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/2,s=k.indexLabelTextBlock.y-k.indexLabelTextBlock.height/2,u=k.indexLabelTextBlock.x+k.indexLabelTextBlock.width,w=k.indexLabelTextBlock.y+k.indexLabelTextBlock.height/2;n=p.indexLabelTextBlock.x+\np.indexLabelTextBlock.width<k.indexLabelTextBlock.x-q||n>u+q||l>w+q||x<s-q?!1:!0}n?(0>a&&(a=d),r!==a&&(c=r,e+=-t),0===d%Math.max(m.length/10,3)&&(h=!0)):h=!0;h&&(0<e&&0<=a&&0<=c)&&(M(e,a,c),c=a=-1,e=0)}}0<e&&M(e,a,c)})()}}function d(){l.plotArea.layoutManager.reset();l.title&&(l.title.dockInsidePlotArea||\"center\"===l.title.horizontalAlign&&\"center\"===l.title.verticalAlign)&&l.title.render();if(l.subtitles)for(var a=0;a<l.subtitles.length;a++){var b=l.subtitles[a];(b.dockInsidePlotArea||\"center\"===\nb.horizontalAlign&&\"center\"===b.verticalAlign)&&b.render()}l.legend&&(l.legend.dockInsidePlotArea||\"center\"===l.legend.horizontalAlign&&\"center\"===l.legend.verticalAlign)&&(l.legend.setLayout(),l.legend.render())}var l=this;if(!(0>=a.dataSeriesIndexes.length)){var k=this.data[a.dataSeriesIndexes[0]],m=k.dataPoints,q=10,n=this.plotArea,g=k.dataPointEOs,v=2,w,y=1.3,s=20/180*Math.PI,z=6,u={x:(n.x2+n.x1)/2,y:(n.y2+n.y1)/2},t=0;a=!1;for(var C=0;C<m.length;C++)t+=Math.abs(m[C].y),!a&&(\"undefined\"!==typeof m[C].indexLabel&&\nnull!==m[C].indexLabel&&0<m[C].indexLabel.toString().length)&&(a=!0),!a&&(\"undefined\"!==typeof m[C].label&&null!==m[C].label&&0<m[C].label.toString().length)&&(a=!0);if(0!==t){a=a||\"undefined\"!==typeof k.indexLabel&&null!==k.indexLabel&&0<k.indexLabel.toString().length;var A=\"inside\"!==k.indexLabelPlacement&&a?0.75*Math.min(n.width,n.height)/2:0.92*Math.min(n.width,n.height)/2;k.radius&&(A=Ua(k.radius,A));var B=\"undefined\"!==typeof k.innerRadius&&null!==k.innerRadius?Ua(k.innerRadius,A):0.7*A;k.radius=\nA;\"doughnut\"===k.type&&(k.innerRadius=B);var E=Math.min(B/A,(A-1)/A);this.pieDoughnutClickHandler=function(a){l.isAnimating||!p(a.dataSeries.explodeOnClick)&&!a.dataSeries.explodeOnClick||(a=a.dataPoint,a.exploded=a.exploded?!1:!0,1<this.dataPoints.length&&l._animator.animate(0,500,function(a){c(a,!0);d();l.dispatchEvent(\"dataAnimationIterationEnd\",{chart:l});l.dispatchEvent(\"dataAnimationEnd\",{chart:l})}))};e();r();r();r();r();this.disableToolTip=!0;this._animator.animate(0,this.animatedRender?this.animationDuration:\n0,function(a){var b=l.plotArea.ctx;b.clearRect(n.x1,n.y1,n.width,n.height);b.fillStyle=l.backgroundColor;b.fillRect(n.x1,n.y1,n.width,n.height);for(var b=g[0].startAngle+2*Math.PI*a,c=0;c<m.length;c++){var e=0===c?g[c].startAngle:f,f=e+(g[c].endAngle-g[c].startAngle),h=!1;f>b&&(f=b,h=!0);var r=m[c].color?m[c].color:k._colorSet[c%k._colorSet.length];f>e&&qa(l.plotArea.ctx,g[c].center,g[c].radius,r,k.type,e,f,k.fillOpacity,g[c].percentInnerRadius);if(h)break}d();l.dispatchEvent(\"dataAnimationIterationEnd\",\n{chart:l});1<=a&&l.dispatchEvent(\"dataAnimationEnd\",{chart:l})},function(){l.disableToolTip=!1;l._animator.animate(0,l.animatedRender?500:0,function(a){c(a,!1);d();l.dispatchEvent(\"dataAnimationIterationEnd\",{chart:l})});l.dispatchEvent(\"dataAnimationEnd\",{chart:l})})}}};var sa=function(a,e,c,b){\"undefined\"===typeof c&&(c=1);0>=Math.round(e.y4-e.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(e.x1),Math.round(e.y1)),a.lineTo(Math.round(e.x2),Math.round(e.y2)),a.lineTo(Math.round(e.x3),\nMath.round(e.y3)),a.lineTo(Math.round(e.x4),Math.round(e.y4)),\"undefined\"!==e.x5&&(a.lineTo(Math.round(e.x5),Math.round(e.y5)),a.lineTo(Math.round(e.x6),Math.round(e.y6))),a.closePath(),a.fillStyle=b?b:e.color,a.fill(),a.globalAplha=1,a.restore())};l.prototype.renderFunnel=function(a){function e(){for(var a=0,b=[],c=0;c<z.length;c++){if(\"undefined\"===typeof z[c].y)return-1;z[c].y=\"number\"===typeof z[c].y?z[c].y:0;a+=Math.abs(z[c].y)}if(0===a)return-1;for(c=b[0]=0;c<z.length;c++)b.push(Math.abs(z[c].y)*\nE/a);return b}function c(){var a=U,b=Z,c=M,e=$,f,g;f=P;g=V-O;e=Math.abs((g-f)*(b-a+(e-c))/2);c=$-M;f=g-f;g=c*(g-V);g=Math.abs(g);g=e+g;for(var e=[],h=0,d=0;d<z.length;d++){if(\"undefined\"===typeof z[d].y)return-1;z[d].y=\"number\"===typeof z[d].y?z[d].y:0;h+=Math.abs(z[d].y)}if(0===h)return-1;for(var r=e[0]=0,k=0,m,n,b=b-a,r=!1,d=0;d<z.length;d++)a=Math.abs(z[d].y)*g/h,r?m=0==Number(c.toFixed(3))?0:a/c:(n=ca*ca*b*b-4*Math.abs(ca)*a,0>n?(n=c,r=(b+n)*(f-k)/2,a-=r,m=f-k,k+=f-k,m+=0==n?0:a/n,k+=a/n,r=!0):\n(m=(Math.abs(ca)*b-Math.sqrt(n))/2,n=b-2*m/Math.abs(ca),k+=m,k>f&&(k-=m,n=c,r=(b+n)*(f-k)/2,a-=r,m=f-k,k+=f-k,m+=a/n,k+=a/n,r=!0),b=n)),e.push(m);return e}function b(){if(s&&z){for(var a,b,c,f,e,h,d,r,k,m,n,q,l,x,u,w=[],t=[],J={percent:null,total:null},C=null,A=0;A<z.length;A++)u=R[A],u=\"undefined\"!==typeof u.x5?(u.y2+u.y4)/2:(u.y2+u.y3)/2,u=g(u).x2+1,w[A]=K-u-T;u=0.5*T;for(var A=0,D=z.length-1;A<z.length||0<=D;A++,D--){b=s.reversed?z[D]:z[A];a=b.color?b.color:s.reversed?s._colorSet[(z.length-1-A)%\ns._colorSet.length]:s._colorSet[A%s._colorSet.length];c=b.indexLabelPlacement||s.indexLabelPlacement||\"outside\";x=b.indexLabelTextAlign||s.indexLabelTextAlign||\"left\";f=b.indexLabelBackgroundColor||s.indexLabelBackgroundColor||(v?\"transparent\":null);e=b.indexLabelFontColor||s.indexLabelFontColor||\"#979797\";h=p(b.indexLabelFontSize)?s.indexLabelFontSize:b.indexLabelFontSize;d=b.indexLabelFontStyle||s.indexLabelFontStyle||\"normal\";r=b.indexLabelFontFamily||s.indexLabelFontFamily||\"arial\";k=b.indexLabelFontWeight||\ns.indexLabelFontWeight||\"normal\";a=b.indexLabelLineColor||s.options.indexLabelLineColor||a;m=\"number\"===typeof b.indexLabelLineThickness?b.indexLabelLineThickness:\"number\"===typeof s.indexLabelLineThickness?s.indexLabelLineThickness:2;n=b.indexLabelLineDashType||s.indexLabelLineDashType||\"solid\";q=\"undefined\"!==typeof b.indexLabelWrap?b.indexLabelWrap:\"undefined\"!==typeof s.indexLabelWrap?s.indexLabelWrap:!0;l=s.dataPointIds[A];y._eventManager.objectMap[l]={id:l,objectType:\"dataPoint\",dataPointIndex:A,\ndataSeriesIndex:0,funnelSection:R[s.reversed?z.length-1-A:A]};\"inside\"===s.indexLabelPlacement&&(w[A]=A!==da?s.reversed?R[A].x2-R[A].x1:R[A].x3-R[A].x4:R[A].x3-R[A].x6,20>w[A]&&(w[A]=A!==da?s.reversed?R[A].x3-R[A].x4:R[A].x2-R[A].x1:R[A].x2-R[A].x1,w[A]/=2));l=b.indexLabelMaxWidth?b.indexLabelMaxWidth:s.options.indexLabelMaxWidth?s.indexLabelMaxWidth:w[A];if(l>w[A]||0>l)l=w[A];t[A]=\"inside\"===s.indexLabelPlacement?q?Math.max(R[A].height,h):1.5*h:!1;J=y.getPercentAndTotal(s,b);if(s.indexLabelFormatter||\nb.indexLabelFormatter)C={chart:y.options,dataSeries:s,dataPoint:b,total:J.total,percent:J.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(C):b.indexLabel?y.replaceKeywordsWithValue(b.indexLabel,b,s,A):s.indexLabelFormatter?s.indexLabelFormatter(C):s.indexLabel?y.replaceKeywordsWithValue(s.indexLabel,b,s,A):b.label?b.label:\"\";0>=m&&(m=0);1E3>l&&1E3-l<u&&(l+=1E3-l);p(s.options.indexLabelMaxWidth)&&(s.indexLabelMaxWidth=p(s.indexLabelMaxWidth)?l:Math.max(l,s.indexLabelMaxWidth));Q.roundRect||\nza(Q);c=new ka(Q,{fontSize:h,fontFamily:r,fontColor:e,fontStyle:d,fontWeight:k,horizontalAlign:c,textAlign:x,backgroundColor:f,maxWidth:l,maxHeight:!1===t[A]?q?4.28571429*h:1.5*h:t[A],text:b,padding:ea,textBaseline:\"middle\"});c.measureText();c.height=c.height===2*c.padding?0:c.height;c.width=c.width===2*c.padding?0:c.width;G.push({textBlock:c,id:s.reversed?D:A,isDirty:!1,lineColor:a,lineThickness:m,lineDashType:n,height:c.height<c.maxHeight?c.height:c.maxHeight,width:c.width<c.maxWidth?c.width:c.maxWidth})}}}\nfunction f(){var a,b,c,f,e,g=[];e=!1;c=0;for(var h,d=K-Z-T/2,d=s.options.indexLabelMaxWidth?s.indexLabelMaxWidth>d?d:s.indexLabelMaxWidth:d,r=G.length-1;0<=r;r--){h=z[G[r].id];c=G[r];f=c.textBlock;b=(a=n(r)<R.length?G[n(r)]:null)?a.textBlock:null;c=c.height;a&&f.y+c+ea>b.y&&(e=!0);c=h.indexLabelMaxWidth||d;if(c>d||0>c)c=d;g.push(c)}if(e)for(r=G.length-1;0<=r;r--)a=R[r],G[r].textBlock.maxWidth=g[g.length-(r+1)],G[r].textBlock.measureText(),G[r].textBlock.height=G[r].textBlock.height===2*G[r].textBlock.padding?\n0:G[r].textBlock.height,G[r].textBlock.width=G[r].textBlock.width===2*G[r].textBlock.padding?0:G[r].textBlock.width,G[r].textBlock.x=K-d,c=G[r].textBlock.height<G[r].textBlock.maxHeight?G[r].textBlock.height:G[r].textBlock.maxHeight,e=G[r].textBlock.width<G[r].textBlock.maxWidth?G[r].textBlock.width:G[r].textBlock.maxWidth,G[r].height=c,G[r].width=e,c=\"undefined\"!==typeof a.x5?(a.y2+a.y4)/2:(a.y2+a.y3)/2,G[r].textBlock.y=c-G[r].height/2,s.reversed?(G[r].textBlock.y+G[r].height>W+D&&(G[r].textBlock.y=\nW+D-G[r].height),G[r].textBlock.y<ua-D&&(G[r].textBlock.y=ua-D)):(G[r].textBlock.y<W-D&&(G[r].textBlock.y=W-D),G[r].textBlock.y+G[r].height>ua+D&&(G[r].textBlock.y=ua+D-G[r].height))}function h(){var a,b,c,f;if(\"inside\"!==s.indexLabelPlacement)for(var e=0;e<R.length;e++)0==G[e].textBlock.text.length?G[e].isDirty=!0:(a=R[e],c=\"undefined\"!==typeof a.x5?(a.y2+a.y4)/2:(a.y2+a.y3)/2,b=s.reversed?\"undefined\"!==typeof a.x5?c>Y?g(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:\"undefined\"!==typeof a.x5?c<Y?g(c).x2+\n1:(a.x4+a.x3)/2+1:(a.x2+a.x3)/2+1,G[e].textBlock.x=b+T,G[e].textBlock.y=c-G[e].height/2,s.reversed?(G[e].textBlock.y+G[e].height>W+D&&(G[e].textBlock.y=W+D-G[e].height),G[e].textBlock.y<ua-D&&(G[e].textBlock.y=ua-D)):(G[e].textBlock.y<W-D&&(G[e].textBlock.y=W-D),G[e].textBlock.y+G[e].height>ua+D&&(G[e].textBlock.y=ua+D-G[e].height)));else for(e=0;e<R.length;e++)0==G[e].textBlock.text.length?G[e].isDirty=!0:(a=R[e],b=a.height,c=G[e].height,f=G[e].width,b>=c?(b=e!=da?(a.x4+a.x3)/2-f/2:(a.x5+a.x4)/2-\nf/2,c=e!=da?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,G[e].textBlock.x=b,G[e].textBlock.y=c):G[e].isDirty=!0)}function d(){function a(b,c){var e;if(0>b||b>=G.length)return 0;var f,g=G[b].textBlock;if(0>c){c*=-1;f=q(b);e=l(f,b);if(e>=c)return g.y-=c,c;if(0==b)return 0<e&&(g.y-=e),e;e+=a(f,-(c-e));0<e&&(g.y-=e);return e}f=n(b);e=l(b,f);if(e>=c)return g.y+=c,c;if(b==R.length-1)return 0<e&&(g.y+=e),e;e+=a(f,c-e);0<e&&(g.y+=e);return e}function b(){var a,e,f,g,h=0,d;g=(V-P+2*D)/m;d=m;for(var r,k=1;k<d;k++){f=\nk*g;for(var p=G.length-1;0<=p;p--)!G[p].isDirty&&(G[p].textBlock.y<f&&G[p].textBlock.y+G[p].height>f)&&(r=n(p),!(r>=G.length-1)&&G[p].textBlock.y+G[p].height+ea>G[r].textBlock.y&&(G[p].textBlock.y=G[p].textBlock.y+G[p].height-f>f-G[p].textBlock.y?f+1:f-G[p].height-1))}for(r=R.length-1;0<r;r--)if(!G[r].isDirty){f=q(r);if(0>f&&(f=0,G[f].isDirty))break;if(G[r].textBlock.y<G[f].textBlock.y+G[f].height){e=e||r;g=r;for(d=0;G[g].textBlock.y<G[f].textBlock.y+G[f].height+ea;){a=a||G[g].textBlock.y+G[g].height;\nd+=G[g].height;d+=ea;g=f;if(0>=g){g=0;d+=G[g].height;break}f=q(g);if(0>f){g=0;d+=G[g].height;break}}if(g!=r){h=G[g].textBlock.y;a-=h;a=d-a;h=c(a,e,g);break}}}return h}function c(a,b,e){var f=[],g=0,h=0;for(a=Math.abs(a);e<=b;e++)f.push(R[e]);f.sort(function(a,b){return a.height-b.height});for(e=0;e<f.length;e++)if(b=f[e],g<a)h++,g+=G[b.id].height+ea,G[b.id].textBlock.text=\"\",G[b.id].indexLabelText=\"\",G[b.id].isDirty=!0,G[b.id].textBlock.measureText();else break;return h}for(var e,f,g,h,r,k,m=1,p=\n0;p<2*m;p++){for(var s=G.length-1;0<=s&&!(0<=q(s)&&q(s),g=G[s],h=g.textBlock,k=(r=n(s)<R.length?G[n(s)]:null)?r.textBlock:null,e=+g.height.toFixed(6),f=+h.y.toFixed(6),!g.isDirty&&(r&&f+e+ea>+k.y.toFixed(6))&&(e=h.y+e+ea-k.y,f=a(s,-e),f<e&&(0<f&&(e-=f),f=a(n(s),e),f!=e)));s--);b()}}function l(a,b){return(b<R.length?G[b].textBlock.y:s.reversed?W+D:ua+D)-(0>a?s.reversed?ua-D:W-D:G[a].textBlock.y+G[a].height+ea)}function t(a,b,c){var e,f,g,d=[],r=D,n=[];-1!==b&&(0<=X.indexOf(b)?(f=X.indexOf(b),X.splice(f,\n1)):(X.push(b),X=X.sort(function(a,b){return a-b})));if(0===X.length)d=ja;else{f=D*(1!=X.length||0!=X[0]&&X[0]!=R.length-1?2:1)/k();for(var q=0;q<R.length;q++){if(1==X.length&&0==X[0]){if(0===q){d.push(ja[q]);e=r;continue}}else 0===q&&(e=-1*r);d.push(ja[q]+e);if(0<=X.indexOf(q)||q<R.length&&0<=X.indexOf(q+1))e+=f}}g=function(){for(var a=[],b=0;b<R.length;b++)a.push(d[b]-R[b].y1);return a}();var p={startTime:(new Date).getTime(),duration:c||500,easingFunction:function(a,b,c,e){return N.easing.easeOutQuart(a,\nb,c,e)},changeSection:function(a){for(var b,c,e=0;e<R.length;e++)b=g[e],c=R[e],b*=a,\"undefined\"===typeof n[e]&&(n[e]=0),0>n&&(n*=-1),c.y1+=b-n[e],c.y2+=b-n[e],c.y3+=b-n[e],c.y4+=b-n[e],c.y5&&(c.y5+=b-n[e],c.y6+=b-n[e]),n[e]=b}};a._animator.animate(0,c,function(c){var e=a.plotArea.ctx||a.ctx;ia=!0;e.clearRect(u.x1,u.y1,u.x2-u.x1,u.y2-u.y1);e.fillStyle=a.backgroundColor;e.fillRect(u.x1,u.y1,u.width,u.height);p.changeSection(c,b);var f={};f.dataSeries=s;f.dataPoint=s.reversed?s.dataPoints[z.length-1-\nb]:s.dataPoints[b];f.index=s.reversed?z.length-1-b:b;a.toolTip.highlightObjects([f]);for(f=0;f<R.length;f++)sa(e,R[f],s.fillOpacity);w(e);L&&(\"inside\"!==s.indexLabelPlacement?m(e):h(),B(e));1<=c&&(ia=!1)},null,N.easing.easeOutQuart)}function k(){for(var a=0,b=0;b<R.length-1;b++)(0<=X.indexOf(b)||0<=X.indexOf(b+1))&&a++;return a}function m(a){for(var b,c,e,f,h=0;h<R.length;h++)f=1===G[h].lineThickness%2?0.5:0,c=((R[h].y2+R[h].y4)/2<<0)+f,b=g(c).x2-1,e=G[h].textBlock.x,f=(G[h].textBlock.y+G[h].height/\n2<<0)+f,G[h].isDirty||0==G[h].lineThickness||(a.strokeStyle=G[h].lineColor,a.lineWidth=G[h].lineThickness,a.setLineDash&&a.setLineDash(H(G[h].lineDashType,G[h].lineThickness)),a.beginPath(),a.moveTo(b,c),a.lineTo(e,f),a.stroke())}function q(a){for(a-=1;-1<=a&&-1!=a&&G[a].isDirty;a--);return a}function n(a){for(a+=1;a<=R.length&&a!=R.length&&G[a].isDirty;a++);return a}function g(a){for(var b,c=0;c<z.length;c++)if(R[c].y1<a&&R[c].y4>a){b=R[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*\n(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2),{x1:a,x2:a}):-1}function B(a){for(var b=0;b<R.length;b++)G[b].isDirty||(a&&(G[b].textBlock.ctx=a),G[b].textBlock.y+=G[b].textBlock._lineHeight/2,G[b].textBlock.render(!0),G[b].textBlock.y-=G[b].textBlock._lineHeight/2)}function w(a){y.plotArea.layoutManager.reset();a.roundRect||za(a);y.title&&(y.title.dockInsidePlotArea||\"center\"===y.title.horizontalAlign&&\"center\"===y.title.verticalAlign)&&(y.title.ctx=a,y.title.render());\nif(y.subtitles)for(var b=0;b<y.subtitles.length;b++){var c=y.subtitles[b];if(c.dockInsidePlotArea||\"center\"===c.horizontalAlign&&\"center\"===c.verticalAlign)y.subtitles.ctx=a,c.render()}y.legend&&(y.legend.dockInsidePlotArea||\"center\"===y.legend.horizontalAlign&&\"center\"===y.legend.verticalAlign)&&(y.legend.ctx=a,y.legend.setLayout(),y.legend.render());wa.fNg&&wa.fNg(y)}var y=this;if(!(0>=a.dataSeriesIndexes.length)){for(var s=this.data[a.dataSeriesIndexes[0]],z=s.dataPoints,u=this.plotArea,D=0.025*\nu.width,C=0.01*u.width,A=0,E=u.height-2*D,I=Math.min(u.width-2*C,2.8*u.height),L=!1,S=0;S<z.length;S++)if(!L&&(\"undefined\"!==typeof z[S].indexLabel&&null!==z[S].indexLabel&&0<z[S].indexLabel.toString().length)&&(L=!0),!L&&(\"undefined\"!==typeof z[S].label&&null!==z[S].label&&0<z[S].label.toString().length)&&(L=!0),!L&&\"function\"===typeof s.indexLabelFormatter||\"function\"===typeof z[S].indexLabelFormatter)L=!0;L=L||\"undefined\"!==typeof s.indexLabel&&null!==s.indexLabel&&0<s.indexLabel.toString().length;\n\"inside\"!==s.indexLabelPlacement&&L||(C=(u.width-0.75*I)/2);var S=u.x1+C,K=u.x2-C,P=u.y1+D,V=u.y2-D,Q=a.targetCanvasCtx||this.plotArea.ctx||this.ctx;if(0!=s.length&&(s.dataPoints&&s.visible)&&0!==z.length){var O,F;a=75*I/100;var T=30*(K-a)/100;\"funnel\"===s.type?(O=p(s.options.neckHeight)?0.35*E:s.neckHeight,F=p(s.options.neckWidth)?0.25*a:s.neckWidth,\"string\"===typeof O&&O.match(/%$/)?(O=parseInt(O),O=O*E/100):O=parseInt(O),\"string\"===typeof F&&F.match(/%$/)?(F=parseInt(F),F=F*a/100):F=parseInt(F),\nO>E?O=E:0>=O&&(O=0),F>a?F=a-0.5:0>=F&&(F=0)):\"pyramid\"===s.type&&(F=O=0,s.reversed=s.reversed?!1:!0);var C=S+a/2,U=S,Z=S+a,W=s.reversed?V:P,M=C-F/2,$=C+F/2,Y=s.reversed?P+O:V-O,ua=s.reversed?P:V;a=[];var C=[],R=[],I=[],ba=P,da,ca=(Y-W)/(M-U),fa=-ca,S=\"area\"===(s.valueRepresents?s.valueRepresents:\"height\")?c():e();if(-1!==S){if(s.reversed)for(I.push(ba),F=S.length-1;0<F;F--)ba+=S[F],I.push(ba);else for(F=0;F<S.length;F++)ba+=S[F],I.push(ba);if(s.reversed)for(F=0;F<S.length;F++)I[F]<Y?(a.push(M),C.push($),\nda=F):(a.push((I[F]-W+ca*U)/ca),C.push((I[F]-W+fa*Z)/fa));else for(F=0;F<S.length;F++)I[F]<Y?(a.push((I[F]-W+ca*U)/ca),C.push((I[F]-W+fa*Z)/fa),da=F):(a.push(M),C.push($));for(F=0;F<S.length-1;F++)ba=s.reversed?z[z.length-1-F].color?z[z.length-1-F].color:s._colorSet[(z.length-1-F)%s._colorSet.length]:z[F].color?z[F].color:s._colorSet[F%s._colorSet.length],F===da?R.push({x1:a[F],y1:I[F],x2:C[F],y2:I[F],x3:$,y3:Y,x4:C[F+1],y4:I[F+1],x5:a[F+1],y5:I[F+1],x6:M,y6:Y,id:F,height:I[F+1]-I[F],color:ba}):R.push({x1:a[F],\ny1:I[F],x2:C[F],y2:I[F],x3:C[F+1],y3:I[F+1],x4:a[F+1],y4:I[F+1],id:F,height:I[F+1]-I[F],color:ba});var ea=2,G=[],ia=!1,X=[],ja=[],S=!1;a=a=0;Da(X);for(F=0;F<z.length;F++)z[F].exploded&&(S=!0,s.reversed?X.push(z.length-1-F):X.push(F));Q.clearRect(u.x1,u.y1,u.width,u.height);Q.fillStyle=y.backgroundColor;Q.fillRect(u.x1,u.y1,u.width,u.height);if(L&&s.visible&&(b(),h(),\"inside\"!==s.indexLabelPlacement)){f();d();for(F=0;F<z.length;F++)G[F].isDirty||(a=G[F].textBlock.x+G[F].width,a=(K-a)/2,0==F&&(A=a),\nA>a&&(A=a));for(F=0;F<R.length;F++)R[F].x1+=A,R[F].x2+=A,R[F].x3+=A,R[F].x4+=A,R[F].x5&&(R[F].x5+=A,R[F].x6+=A),G[F].textBlock.x+=A}for(F=0;F<R.length;F++)A=R[F],sa(Q,A,s.fillOpacity),ja.push(A.y1);w(Q);L&&s.visible&&(\"inside\"===s.indexLabelPlacement||y.animationEnabled||m(Q),y.animationEnabled||B());if(!L)for(F=0;F<z.length;F++)A=s.dataPointIds[F],a={id:A,objectType:\"dataPoint\",dataPointIndex:F,dataSeriesIndex:0,funnelSection:R[s.reversed?z.length-1-F:F]},y._eventManager.objectMap[A]=a;!y.animationEnabled&&\nS?t(y,-1,0):y.animationEnabled&&!y.animatedRender&&t(y,-1,0);this.funnelPyramidClickHandler=function(a){var b=-1;if(!ia&&!y.isAnimating&&(p(a.dataSeries.explodeOnClick)||a.dataSeries.explodeOnClick)&&(b=s.reversed?z.length-1-a.dataPointIndex:a.dataPointIndex,0<=b)){a=b;if(\"funnel\"===s.type||\"pyramid\"===s.type)s.reversed?z[z.length-1-a].exploded=z[z.length-1-a].exploded?!1:!0:z[a].exploded=z[a].exploded?!1:!0;t(y,b,500)}};return{source:Q,dest:this.plotArea.ctx,animationCallback:function(a,b){N.fadeInAnimation(a,\nb);1<=a&&(t(y,-1,500),w(y.plotArea.ctx||y.ctx))},easingFunction:N.easing.easeInQuad,animationBase:0}}}}};l.prototype.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();l.prototype.cancelRequestAnimFrame=window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||\nwindow.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout;l.prototype.set=function(a,e,c){c=\"undefined\"===typeof c?!0:c;\"options\"===a?(this.options=e,c&&this.render()):l.base.set.call(this,a,e,c)};l.prototype.exportChart=function(a){a=\"undefined\"===typeof a?{}:a;var e=a.format?a.format:\"png\",c=a.fileName?a.fileName:this.exportFileName;if(a.toDataURL)return this.canvas.toDataURL(\"image/\"+e);var b=this.canvas;if(b&&e&&c){c=c+\".\"+e;a=\"image/\"+e;var b=b.toDataURL(a),f=!1,\nh=document.createElement(\"a\");h.download=c;h.href=b;if(\"undefined\"!==typeof Blob&&new Blob){for(var d=b.replace(/^data:[a-z\\/]*;base64,/,\"\"),d=atob(d),p=new ArrayBuffer(d.length),p=new Uint8Array(p),l=0;l<d.length;l++)p[l]=d.charCodeAt(l);e=new Blob([p.buffer],{type:\"image/\"+e});try{window.navigator.msSaveBlob(e,c),f=!0}catch(k){h.dataset.downloadurl=[a,h.download,h.href].join(\":\"),h.href=window.URL.createObjectURL(e)}}if(!f)try{event=document.createEvent(\"MouseEvents\"),event.initMouseEvent(\"click\",\n!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),h.dispatchEvent?h.dispatchEvent(event):h.fireEvent&&h.fireEvent(\"onclick\")}catch(m){e=window.open(),e.document.write(\"<img src='\"+b+\"'></img><div>Please right click on the image and save it to your device</div>\"),e.document.close()}}};l.prototype.print=function(){var a=this.exportChart({toDataURL:!0}),e=document.createElement(\"iframe\");e.setAttribute(\"class\",\"canvasjs-chart-print-frame\");Z(e,{position:\"absolute\",width:\"100%\",border:\"0px\",margin:\"0px 0px 0px 0px\",\npadding:\"0px 0px 0px 0px\"});e.style.height=this.height+\"px\";this._canvasJSContainer.appendChild(e);var c=this,b=e.contentWindow||e.contentDocument.document||e.contentDocument;b.document.open();b.document.write('<!DOCTYPE HTML>\\n<html><body><img src=\"'+a+'\"/><body/></html>');b.document.body&&b.document.body.style&&(b.document.body.style.margin=\"0px 0px 0px 0px\",b.document.body.style.padding=\"0px 0px 0px 0px\");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(e)},\n1E3)},500)};l.prototype.getPercentAndTotal=function(a,e){var c=null,b=null,f=c=null;if(0<=a.type.indexOf(\"stacked\"))b=0,c=e.x.getTime?e.x.getTime():e.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c],f=isNaN(e.y)?0:0===c?0:100*(e.y/c));else if(\"pie\"===a.type||\"doughnut\"===a.type||\"funnel\"===a.type||\"pyramid\"===a.type){for(c=b=0;c<a.dataPoints.length;c++)isNaN(a.dataPoints[c].y)||(b+=a.dataPoints[c].y);f=isNaN(e.y)?0:100*(e.y/b)}return{percent:f,total:b}};l.prototype.replaceKeywordsWithValue=\nfunction(a,e,c,b,f){var h=this;f=\"undefined\"===typeof f?0:f;if((0<=c.type.indexOf(\"stacked\")||\"pie\"===c.type||\"doughnut\"===c.type||\"funnel\"===c.type||\"pyramid\"===c.type)&&(0<=a.indexOf(\"#percent\")||0<=a.indexOf(\"#total\"))){var d=\"#percent\",p=\"#total\",l=this.getPercentAndTotal(c,e),p=isNaN(l.total)?p:l.total,d=isNaN(l.percent)?d:l.percent;do{l=\"\";if(c.percentFormatString)l=c.percentFormatString;else{var l=\"#,##0.\",k=Math.max(Math.ceil(Math.log(1/Math.abs(d))/Math.LN10),2);if(isNaN(k)||!isFinite(k))k=\n2;for(var m=0;m<k;m++)l+=\"#\";c.percentFormatString=l}a=a.replace(\"#percent\",fa(d,l,h._cultureInfo));a=a.replace(\"#total\",fa(p,c.yValueFormatString?c.yValueFormatString:\"#,##0.########\",h._cultureInfo))}while(0<=a.indexOf(\"#percent\")||0<=a.indexOf(\"#total\"))}return a.replace(/\\{.*?\\}|\"[^\"]*\"|'[^']*'/g,function(a){if('\"'===a[0]&&'\"'===a[a.length-1]||\"'\"===a[0]&&\"'\"===a[a.length-1])return a.slice(1,a.length-1);a=Ga(a.slice(1,a.length-1));a=a.replace(\"#index\",f);var d=null;try{var g=a.match(/(.*?)\\s*\\[\\s*(.*?)\\s*\\]/);\ng&&0<g.length&&(d=Ga(g[2]),a=Ga(g[1]))}catch(r){}g=null;if(\"color\"===a)return\"waterfall\"===c.type?e.color?e.color:0<e.y?c.risingColor:c.fallingColor:\"error\"===c.type?c.color?c.color:c._colorSet[d%c._colorSet.length]:e.color?e.color:c.color?c.color:c._colorSet[b%c._colorSet.length];if(e.hasOwnProperty(a))g=e;else if(c.hasOwnProperty(a))g=c;else return\"\";g=g[a];null!==d&&(g=g[d]);return\"x\"===a?(c.axisX&&\"dateTime\"===c.axisX.valueType||\"dateTime\"===c.xValueType||e.x&&e.x.getTime)&&!c.axisX.logarithmic?\nCa(g,e.xValueFormatString?e.xValueFormatString:c.xValueFormatString?c.xValueFormatString:c.xValueFormatString=h.axisX&&h.axisX.autoValueFormatString?h.axisX.autoValueFormatString:\"DD MMM YY\",h._cultureInfo):fa(g,e.xValueFormatString?e.xValueFormatString:c.xValueFormatString?c.xValueFormatString:c.xValueFormatString=\"#,##0.########\",h._cultureInfo):\"y\"===a?fa(g,e.yValueFormatString?e.yValueFormatString:c.yValueFormatString?c.yValueFormatString:c.yValueFormatString=\"#,##0.########\",h._cultureInfo):\n\"z\"===a?fa(g,e.zValueFormatString?e.zValueFormatString:c.zValueFormatString?c.zValueFormatString:c.zValueFormatString=\"#,##0.########\",h._cultureInfo):g})};pa(I,K);I.prototype.setLayout=function(){var a=this.dockInsidePlotArea?this.chart.plotArea:this.chart,e=a.layoutManager.getFreeSpace(),c=null,b=0,f=0,h=0,d=0,l=this.markerMargin=this.chart.options.legend&&!p(this.chart.options.legend.markerMargin)?this.chart.options.legend.markerMargin:0.3*this.fontSize;this.height=0;var v=[],k=[];if(\"top\"===this.verticalAlign||\n\"bottom\"===this.verticalAlign)this.orientation=\"horizontal\",c=this.verticalAlign,h=this.maxWidth=null!==this.maxWidth?this.maxWidth:e.width,d=this.maxHeight=null!==this.maxHeight?this.maxHeight:0.5*e.height;else if(\"center\"===this.verticalAlign){this.orientation=\"vertical\";if(\"left\"===this.horizontalAlign||\"center\"===this.horizontalAlign||\"right\"===this.horizontalAlign)c=this.horizontalAlign;h=this.maxWidth=null!==this.maxWidth?this.maxWidth:0.5*e.width;d=this.maxHeight=null!==this.maxHeight?this.maxHeight:\ne.height}this.errorMarkerColor=[];for(var m=0;m<this.dataSeries.length;m++){var q=this.dataSeries[m];if(q.dataPoints&&q.dataPoints.length)if(\"pie\"!==q.type&&\"doughnut\"!==q.type&&\"funnel\"!==q.type&&\"pyramid\"!==q.type){var n=q.legendMarkerType=q.legendMarkerType?q.legendMarkerType:\"line\"!==q.type&&\"stepLine\"!==q.type&&\"spline\"!==q.type&&\"scatter\"!==q.type&&\"bubble\"!==q.type||!q.markerType?\"error\"===q.type&&q._linkedSeries?q._linkedSeries.legendMarkerType?q._linkedSeries.legendMarkerType:O.getDefaultLegendMarker(q._linkedSeries.type):\nO.getDefaultLegendMarker(q.type):q.markerType,g=q.legendText?q.legendText:this.itemTextFormatter?this.itemTextFormatter({chart:this.chart,legend:this.options,dataSeries:q,dataPoint:null}):q.name,t=q.legendMarkerColor=q.legendMarkerColor?q.legendMarkerColor:q.markerColor?q.markerColor:\"error\"===q.type?p(q.whiskerColor)?q._colorSet[0]:q.whiskerColor:q._colorSet[0],w=q.markerSize||\"line\"!==q.type&&\"stepLine\"!==q.type&&\"spline\"!==q.type?0.75*this.lineHeight:0,y=q.legendMarkerBorderColor?q.legendMarkerBorderColor:\nq.markerBorderColor,s=q.legendMarkerBorderThickness?q.legendMarkerBorderThickness:q.markerBorderThickness?Math.max(1,Math.round(0.2*w)):0;\"error\"===q.type&&this.errorMarkerColor.push(t);g=this.chart.replaceKeywordsWithValue(g,q.dataPoints[0],q,m);n={markerType:n,markerColor:t,text:g,textBlock:null,chartType:q.type,markerSize:w,lineColor:q._colorSet[0],dataSeriesIndex:q.index,dataPointIndex:null,markerBorderColor:y,markerBorderThickness:s};v.push(n)}else for(var z=0;z<q.dataPoints.length;z++){var u=\nq.dataPoints[z],n=u.legendMarkerType?u.legendMarkerType:q.legendMarkerType?q.legendMarkerType:O.getDefaultLegendMarker(q.type),g=u.legendText?u.legendText:q.legendText?q.legendText:this.itemTextFormatter?this.itemTextFormatter({chart:this.chart,legend:this.options,dataSeries:q,dataPoint:u}):u.name?u.name:\"DataPoint: \"+(z+1),t=u.legendMarkerColor?u.legendMarkerColor:q.legendMarkerColor?q.legendMarkerColor:u.color?u.color:q.color?q.color:q._colorSet[z%q._colorSet.length],w=0.75*this.lineHeight,y=u.legendMarkerBorderColor?\nu.legendMarkerBorderColor:q.legendMarkerBorderColor?q.legendMarkerBorderColor:u.markerBorderColor?u.markerBorderColor:q.markerBorderColor,s=u.legendMarkerBorderThickness?u.legendMarkerBorderThickness:q.legendMarkerBorderThickness?q.legendMarkerBorderThickness:u.markerBorderThickness||q.markerBorderThickness?Math.max(1,Math.round(0.2*w)):0,g=this.chart.replaceKeywordsWithValue(g,u,q,z),n={markerType:n,markerColor:t,text:g,textBlock:null,chartType:q.type,markerSize:w,dataSeriesIndex:m,dataPointIndex:z,\nmarkerBorderColor:y,markerBorderThickness:s};(u.showInLegend||q.showInLegend&&!1!==u.showInLegend)&&v.push(n)}}!0===this.reversed&&v.reverse();if(0<v.length){q=null;g=u=z=0;u=null!==this.itemWidth?null!==this.itemMaxWidth?Math.min(this.itemWidth,this.itemMaxWidth,h):this.itemMaxWidth=Math.min(this.itemWidth,h):null!==this.itemMaxWidth?Math.min(this.itemMaxWidth,h):this.itemMaxWidth=h;w=0===w?0.75*this.lineHeight:w;u=(this.itemMaxWidth?this.itemMaxWidth:u)-(w+l);for(m=0;m<v.length;m++){n=v[m];t=u;\nif(\"line\"===n.chartType||\"spline\"===n.chartType||\"stepLine\"===n.chartType)t-=2*0.1*this.lineHeight;if(!(0>=d||\"undefined\"===typeof d||0>=t||\"undefined\"===typeof t))if(\"horizontal\"===this.orientation){n.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:t,maxHeight:this.itemWrap?d:this.lineHeight,angle:0,text:n.text,horizontalAlign:\"left\",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:\"middle\"});n.textBlock.measureText();\nnull!==this.itemWidth&&(n.textBlock.width=this.itemWidth-(w+l+(\"line\"===n.chartType||\"spline\"===n.chartType||\"stepLine\"===n.chartType?2*0.1*this.lineHeight:0)));if(!q||q.width+Math.round(n.textBlock.width+w+l+(0===q.width?0:this.horizontalSpacing)+(\"line\"===n.chartType||\"spline\"===n.chartType||\"stepLine\"===n.chartType?2*0.1*this.lineHeight:0))>h)q={items:[],width:0},k.push(q),this.height+=g,g=0;g=Math.max(g,n.textBlock.height?n.textBlock.height:this.lineHeight);n.textBlock.x=q.width;n.textBlock.y=\n0;q.width+=Math.round(n.textBlock.width+w+l+(0===q.width?0:this.horizontalSpacing)+(\"line\"===n.chartType||\"spline\"===n.chartType||\"stepLine\"===n.chartType?2*0.1*this.lineHeight:0));q.items.push(n);this.width=Math.max(q.width,this.width)}else n.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:u,maxHeight:!0===this.itemWrap?d:1.5*this.fontSize,angle:0,text:n.text,horizontalAlign:\"left\",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,\ntextBaseline:\"middle\"}),n.textBlock.measureText(),null!==this.itemWidth&&(n.textBlock.width=this.itemWidth-(w+l+(\"line\"===n.chartType||\"spline\"===n.chartType||\"stepLine\"===n.chartType?2*0.1*this.lineHeight:0))),this.height<d-this.lineHeight?(q={items:[],width:0},k.push(q)):(q=k[z],z=(z+1)%k.length),q&&(this.height+=n.textBlock.height?n.textBlock.height:this.lineHeight,n.textBlock.x=q.width,n.textBlock.y=0,q.width+=Math.round(n.textBlock.width+w+l+(0===q.width?0:this.horizontalSpacing)+(\"line\"===n.chartType||\n\"spline\"===n.chartType||\"stepLine\"===n.chartType?2*0.1*this.lineHeight:0)),q.items.push(n),this.width=Math.max(q.width,this.width))}this.height=!1===this.itemWrap?k.length*this.lineHeight:this.height+g;this.height=Math.min(d,this.height);this.width=Math.min(h,this.width)}\"top\"===this.verticalAlign?(f=\"left\"===this.horizontalAlign?e.x1:\"right\"===this.horizontalAlign?e.x2-this.width:e.x1+e.width/2-this.width/2,b=e.y1):\"center\"===this.verticalAlign?(f=\"left\"===this.horizontalAlign?e.x1:\"right\"===this.horizontalAlign?\ne.x2-this.width:e.x1+e.width/2-this.width/2,b=e.y1+e.height/2-this.height/2):\"bottom\"===this.verticalAlign&&(f=\"left\"===this.horizontalAlign?e.x1:\"right\"===this.horizontalAlign?e.x2-this.width:e.x1+e.width/2-this.width/2,b=e.y2-this.height);this.items=v;for(m=0;m<this.items.length;m++)n=v[m],n.id=++this.chart._eventManager.lastObjectId,this.chart._eventManager.objectMap[n.id]={id:n.id,objectType:\"legendItem\",legendItemIndex:m,dataSeriesIndex:n.dataSeriesIndex,dataPointIndex:n.dataPointIndex};this.markerSize=\nw;this.rows=k;0<v.length&&a.layoutManager.registerSpace(c,{width:this.width+2+2,height:this.height+5+5});this.bounds={x1:f,y1:b,x2:f+this.width,y2:b+this.height}};I.prototype.render=function(){var a=this.bounds.x1,e=this.bounds.y1,c=this.markerMargin,b=this.maxWidth,f=this.maxHeight,h=this.markerSize,d=this.rows;(0<this.borderThickness&&this.borderColor||this.backgroundColor)&&this.ctx.roundRect(a,e,this.width,this.height,this.cornerRadius,this.borderThickness,this.backgroundColor,this.borderColor);\nfor(var p=0,l=0;l<d.length;l++){for(var k=d[l],m=0,q=0;q<k.items.length;q++){var n=k.items[q],g=n.textBlock.x+a+(0===q?0.2*h:this.horizontalSpacing),v=e+p,w=g;this.chart.data[n.dataSeriesIndex].visible||(this.ctx.globalAlpha=0.5);this.ctx.save();this.ctx.beginPath();this.ctx.rect(a,e,b,Math.max(f-f%this.lineHeight,0));this.ctx.clip();if(\"line\"===n.chartType||\"stepLine\"===n.chartType||\"spline\"===n.chartType)this.ctx.strokeStyle=n.lineColor,this.ctx.lineWidth=Math.ceil(this.lineHeight/8),this.ctx.beginPath(),\nthis.ctx.moveTo(g-0.1*this.lineHeight,v+this.lineHeight/2),this.ctx.lineTo(g+0.85*this.lineHeight,v+this.lineHeight/2),this.ctx.stroke(),w-=0.1*this.lineHeight;if(\"error\"===n.chartType){this.ctx.strokeStyle=this.errorMarkerColor[0];this.ctx.lineWidth=h/8;this.ctx.beginPath();var y=g-0.08*this.lineHeight+0.1*this.lineHeight,s=v+0.15*this.lineHeight,z=0.7*this.lineHeight,u=z+0.02*this.lineHeight;this.ctx.moveTo(y,s);this.ctx.lineTo(y+z,s);this.ctx.stroke();this.ctx.beginPath();this.ctx.moveTo(y+z/2,\ns);this.ctx.lineTo(y+z/2,s+u);this.ctx.stroke();this.ctx.beginPath();this.ctx.moveTo(y,s+u);this.ctx.lineTo(y+z,s+u);this.ctx.stroke();this.errorMarkerColor.shift()}Y.drawMarker(g+h/2,v+this.lineHeight/2,this.ctx,n.markerType,\"error\"===n.chartType||\"line\"===n.chartType||\"spline\"===n.chartType?n.markerSize/2:n.markerSize,n.markerColor,n.markerBorderColor,n.markerBorderThickness);n.textBlock.x=g+c+h;if(\"line\"===n.chartType||\"stepLine\"===n.chartType||\"spline\"===n.chartType)n.textBlock.x+=0.1*this.lineHeight;\nn.textBlock.y=Math.round(v+this.lineHeight/2);n.textBlock.render(!0);this.ctx.restore();m=0<q?Math.max(m,n.textBlock.height?n.textBlock.height:this.lineHeight):n.textBlock.height?n.textBlock.height:this.lineHeight;this.chart.data[n.dataSeriesIndex].visible||(this.ctx.globalAlpha=1);g=T(n.id);this.ghostCtx.fillStyle=g;this.ghostCtx.beginPath();this.ghostCtx.fillRect(w,n.textBlock.y-this.lineHeight/2,n.textBlock.x+n.textBlock.width-w,n.textBlock.height?n.textBlock.height:this.lineHeight);n.x1=this.chart._eventManager.objectMap[n.id].x1=\nw;n.y1=this.chart._eventManager.objectMap[n.id].y1=n.textBlock.y-this.lineHeight/2;n.x2=this.chart._eventManager.objectMap[n.id].x2=n.textBlock.x+n.textBlock.width;n.y2=this.chart._eventManager.objectMap[n.id].y2=n.textBlock.y+(n.textBlock.height?n.textBlock.height:this.lineHeight)-this.lineHeight/2}p+=m}};pa(O,K);O.prototype.getDefaultAxisPlacement=function(){var a=this.type;if(\"column\"===a||\"line\"===a||\"stepLine\"===a||\"spline\"===a||\"area\"===a||\"stepArea\"===a||\"splineArea\"===a||\"stackedColumn\"===\na||\"stackedLine\"===a||\"bubble\"===a||\"scatter\"===a||\"stackedArea\"===a||\"stackedColumn100\"===a||\"stackedLine100\"===a||\"stackedArea100\"===a||\"candlestick\"===a||\"ohlc\"===a||\"rangeColumn\"===a||\"rangeArea\"===a||\"rangeSplineArea\"===a||\"boxAndWhisker\"===a||\"waterfall\"===a)return\"normal\";if(\"bar\"===a||\"stackedBar\"===a||\"stackedBar100\"===a||\"rangeBar\"===a)return\"xySwapped\";if(\"pie\"===a||\"doughnut\"===a||\"funnel\"===a||\"pyramid\"===a)return\"none\";\"error\"!==a&&window.console.log(\"Unknown Chart Type: \"+a);return null};\nO.getDefaultLegendMarker=function(a){if(\"column\"===a||\"stackedColumn\"===a||\"stackedLine\"===a||\"bar\"===a||\"stackedBar\"===a||\"stackedBar100\"===a||\"bubble\"===a||\"scatter\"===a||\"stackedColumn100\"===a||\"stackedLine100\"===a||\"stepArea\"===a||\"candlestick\"===a||\"ohlc\"===a||\"rangeColumn\"===a||\"rangeBar\"===a||\"rangeArea\"===a||\"rangeSplineArea\"===a||\"boxAndWhisker\"===a||\"waterfall\"===a)return\"square\";if(\"line\"===a||\"stepLine\"===a||\"spline\"===a||\"pie\"===a||\"doughnut\"===a)return\"circle\";if(\"area\"===a||\"splineArea\"===\na||\"stackedArea\"===a||\"stackedArea100\"===a||\"funnel\"===a||\"pyramid\"===a)return\"triangle\";if(\"error\"===a)return\"none\";window.console.log(\"Unknown Chart Type: \"+a);return null};O.prototype.getDataPointAtX=function(a,e){if(!this.dataPoints||0===this.dataPoints.length)return null;var c={dataPoint:null,distance:Infinity,index:NaN},b=null,f=0,h=0,d=1,p=Infinity,l=0,k=0,m=0;\"none\"!==this.chart.plotInfo.axisPlacement&&(this.axisX.logarithmic?(m=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),\nm=1<m?Math.min(Math.max((this.dataPoints.length-1)/m*Math.log(a/this.dataPoints[0].x)>>0,0),this.dataPoints.length):0):(m=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,m=0<m?Math.min(Math.max((this.dataPoints.length-1)/m*(a-this.dataPoints[0].x)>>0,0),this.dataPoints.length):0));for(;;){h=0<d?m+f:m-f;if(0<=h&&h<this.dataPoints.length){var b=this.dataPoints[h],q=this.axisX.logarithmic?b.x>a?b.x/a:a/b.x:Math.abs(b.x-a);q<c.distance&&(c.dataPoint=b,c.distance=q,c.index=h);b=q;b<=p?\np=b:0<d?l++:k++;if(1E3<l&&1E3<k)break}else if(0>m-f&&m+f>=this.dataPoints.length)break;-1===d?(f++,d=1):d=-1}return e||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime?a.getTime():a)?e&&null!==c.dataPoint?c:null:c};O.prototype.getDataPointAtXY=function(a,e,c){if(!this.dataPoints||0===this.dataPoints.length||a<this.chart.plotArea.x1||a>this.chart.plotArea.x2||e<this.chart.plotArea.y1||e>this.chart.plotArea.y2)return null;c=c||!1;var b=[],f=0,h=0,d=1,l=!1,v=Infinity,k=0,m=\n0,q=0;if(\"none\"!==this.chart.plotInfo.axisPlacement)if(q=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:e}),this.axisX.logarithmic)var n=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),q=1<n?Math.min(Math.max((this.dataPoints.length-1)/n*Math.log(q/this.dataPoints[0].x)>>0,0),this.dataPoints.length):0;else n=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,q=0<n?Math.min(Math.max((this.dataPoints.length-1)/n*(q-this.dataPoints[0].x)>>\n0,0),this.dataPoints.length):0;for(;;){h=0<d?q+f:q-f;if(0<=h&&h<this.dataPoints.length){var n=this.chart._eventManager.objectMap[this.dataPointIds[h]],g=this.dataPoints[h],t=null;if(n){switch(this.type){case \"column\":case \"stackedColumn\":case \"stackedColumn100\":case \"bar\":case \"stackedBar\":case \"stackedBar100\":case \"rangeColumn\":case \"rangeBar\":case \"waterfall\":case \"error\":a>=n.x1&&(a<=n.x2&&e>=n.y1&&e<=n.y2)&&(b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(n.x1-\na),Math.abs(n.x2-a),Math.abs(n.y1-e),Math.abs(n.y2-e))}),l=!0);break;case \"line\":case \"stepLine\":case \"spline\":case \"area\":case \"stepArea\":case \"stackedArea\":case \"stackedArea100\":case \"splineArea\":case \"scatter\":var w=na(\"markerSize\",g,this)||4,y=c?20:w,t=Math.sqrt(Math.pow(n.x1-a,2)+Math.pow(n.y1-e,2));t<=y&&b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:t});n=Math.abs(n.x1-a);n<=v?v=n:0<d?k++:m++;t<=w/2&&(l=!0);break;case \"rangeArea\":case \"rangeSplineArea\":w=na(\"markerSize\",g,this)||\n4;y=c?20:w;t=Math.min(Math.sqrt(Math.pow(n.x1-a,2)+Math.pow(n.y1-e,2)),Math.sqrt(Math.pow(n.x1-a,2)+Math.pow(n.y2-e,2)));t<=y&&b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:t});n=Math.abs(n.x1-a);n<=v?v=n:0<d?k++:m++;t<=w/2&&(l=!0);break;case \"bubble\":w=n.size;t=Math.sqrt(Math.pow(n.x1-a,2)+Math.pow(n.y1-e,2));t<=w/2&&(b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:t}),l=!0);break;case \"pie\":case \"doughnut\":w=n.center;y=\"doughnut\"===this.type?n.percentInnerRadius*n.radius:\n0;t=Math.sqrt(Math.pow(w.x-a,2)+Math.pow(w.y-e,2));t<n.radius&&t>y&&(t=Math.atan2(e-w.y,a-w.x),0>t&&(t+=2*Math.PI),t=Number(((180*(t/Math.PI)%360+360)%360).toFixed(12)),w=Number(((180*(n.startAngle/Math.PI)%360+360)%360).toFixed(12)),y=Number(((180*(n.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===y&&1<n.endAngle&&(y=360),w>=y&&(0!==g.y&&!p(g.y))&&(y+=360,t<w&&(t+=360)),t>w&&t<y&&(b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:0}),l=!0));break;case \"funnel\":case \"pyramid\":t=n.funnelSection;\ne>t.y1&&e<t.y4&&(t.y6?e>t.y6?(h=t.x6+(t.x5-t.x6)/(t.y5-t.y6)*(e-t.y6),t=t.x3+(t.x4-t.x3)/(t.y4-t.y3)*(e-t.y3)):(h=t.x1+(t.x6-t.x1)/(t.y6-t.y1)*(e-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(e-t.y2)):(h=t.x1+(t.x4-t.x1)/(t.y4-t.y1)*(e-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(e-t.y2)),a>h&&a<t&&(b.push({dataPoint:g,dataPointIndex:n.dataPointIndex,dataSeries:this,distance:0}),l=!0));break;case \"boxAndWhisker\":if(a>=n.x1-n.borderThickness/2&&a<=n.x2+n.borderThickness/2&&e>=n.y4-n.borderThickness/2&&e<=n.y1+n.borderThickness/\n2||Math.abs(n.x2-a+n.x1-a)<n.borderThickness&&e>=n.y1&&e<=n.y4)b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(n.x1-a),Math.abs(n.x2-a),Math.abs(n.y2-e),Math.abs(n.y3-e))}),l=!0;break;case \"candlestick\":if(a>=n.x1-n.borderThickness/2&&a<=n.x2+n.borderThickness/2&&e>=n.y2-n.borderThickness/2&&e<=n.y3+n.borderThickness/2||Math.abs(n.x2-a+n.x1-a)<n.borderThickness&&e>=n.y1&&e<=n.y4)b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(n.x1-a),\nMath.abs(n.x2-a),Math.abs(n.y2-e),Math.abs(n.y3-e))}),l=!0;break;case \"ohlc\":if(Math.abs(n.x2-a+n.x1-a)<n.borderThickness&&e>=n.y2&&e<=n.y3||a>=n.x1&&a<=(n.x2+n.x1)/2&&e>=n.y1-n.borderThickness/2&&e<=n.y1+n.borderThickness/2||a>=(n.x1+n.x2)/2&&a<=n.x2&&e>=n.y4-n.borderThickness/2&&e<=n.y4+n.borderThickness/2)b.push({dataPoint:g,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(n.x1-a),Math.abs(n.x2-a),Math.abs(n.y2-e),Math.abs(n.y3-e))}),l=!0}if(l||1E3<k&&1E3<m)break}}else if(0>q-f&&q+f>=\nthis.dataPoints.length)break;-1===d?(f++,d=1):d=-1}a=null;for(e=0;e<b.length;e++)a?b[e].distance<=a.distance&&(a=b[e]):a=b[e];return a};O.prototype.getMarkerProperties=function(a,e,c,b){var f=this.dataPoints,h=f[a].markerColor?f[a].markerColor:this.markerColor?this.markerColor:f[a].color?f[a].color:this.color?this.color:this._colorSet[a%this._colorSet.length],d=f[a].markerBorderColor?f[a].markerBorderColor:this.markerBorderColor?this.markerBorderColor:null,l=p(f[a].markerBorderThickness)?this.markerBorderThickness?\nthis.markerBorderThickness:null:f[a].markerBorderThickness,t=f[a].markerType?f[a].markerType:this.markerType;a=p(f[a].markerSize)?this.markerSize:f[a].markerSize;return{x:e,y:c,ctx:b,type:t,size:a,color:h,borderColor:d,borderThickness:l}};pa(E,K);E.prototype.createExtraLabelsForLog=function(a){a=(a||0)+1;if(!(5<a)){var e=this.logLabelValues[0]||this.intervalStartPosition;if(Math.log(this.range)/Math.log(e/this.viewportMinimum)<this.noTicks-1){for(var c=E.getNiceNumber((e-this.viewportMinimum)/Math.min(Math.max(2,\nthis.noTicks-this.logLabelValues.length),3),!0),b=Math.ceil(this.viewportMinimum/c)*c;b<e;b+=c)b<this.viewportMinimum||this.logLabelValues.push(b);this.logLabelValues.sort(Sa);this.createExtraLabelsForLog(a)}}};E.prototype.createLabels=function(){var a,e,c=0,b=0,f,h=0,d=0,b=0,b=this.interval,l=0,t,k=0.6*this.chart.height,m;a=!1;var q=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],n=q.length?p(this.scaleBreaks.firstBreakIndex)?0:this.scaleBreaks.firstBreakIndex:0;if(\"axisX\"!==this.type||\"dateTime\"!==\nthis.valueType||this.logarithmic){f=this.viewportMaximum;if(this.labels){a=Math.ceil(b);for(var b=Math.ceil(this.intervalStartPosition),g=!1,c=b;c<this.viewportMaximum;c+=a)if(this.labels[c])g=!0;else{g=!1;break}g&&(this.interval=a,this.intervalStartPosition=b)}if(this.logarithmic&&!this.equidistantInterval)for(this.logLabelValues||(this.logLabelValues=[],this.createExtraLabelsForLog()),b=0,g=n;b<this.logLabelValues.length;b++)if(c=this.logLabelValues[b],c<this.viewportMinimum)b++;else{for(;g<q.length&&\nc>q[g].endValue;g++);a=g<q.length&&c>=q[g].startValue&&c<=q[g].endValue;m=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:m,label:this.labels[m]?this.labels[m]:null}):\"axisX\"===this.type&&this.labels[m]?this.labels[m]:fa(m,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:h,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,\ntextAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\",borderThickness:0}),this._labels.push({position:m,textBlock:a,effectiveHeight:null}))}g=n;for(c=this.intervalStartPosition;c<=f;c=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?\nc*Math.pow(this.logarithmBase,this.interval):c+this.interval).toFixed(12))){for(;g<q.length&&c>q[g].endValue;g++);a=g<q.length&&c>=q[g].startValue&&c<=q[g].endValue;m=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:m,label:this.labels[m]?this.labels[m]:null}):\"axisX\"===this.type&&this.labels[m]?this.labels[m]:fa(m,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:h,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,\ntextAlign:this.labelTextAlign,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\"}),this._labels.push({position:m,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),\nthis.intervalType,this.interval),f=Ya(new Date(this.viewportMaximum),this.interval,this.intervalType),g=n,c=this.intervalStartPosition;c<f;Ya(c,b,this.intervalType)){for(a=c.getTime();g<q.length&&a>q[g].endValue;g++);m=a;a=g<q.length&&a>=q[g].startValue&&a<=q[g].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(m),label:this.labels[m]?this.labels[m]:null}):\"axisX\"===this.type&&this.labels[m]?this.labels[m]:Ca(m,this.valueFormatString,this.chart._cultureInfo),\na=new ka(this.ctx,{x:0,y:0,maxWidth:h,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\"}),this._labels.push({position:m,textBlock:a,\neffectiveHeight:null,breaksLabelType:void 0}))}if(\"bottom\"===this._position||\"top\"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*\nU[this.intervalType+\"Duration\"]*this.interval,h=\"undefined\"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(d=\"undefined\"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if(\"left\"===this._position||\"right\"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/\nthis._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*U[this.intervalType+\"Duration\"]*this.interval,this.chart.panEnabled||(h=\"undefined\"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),d=\"undefined\"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>\n0:1.5*this.labelFontSize;for(b=0;b<this._labels.length;b++){a=this._labels[b].textBlock;a.maxWidth=h;a.maxHeight=d;var B=a.measureText();t=B.height}f=[];n=q=0;if(this.labelAutoFit||this.options.labelAutoFit)if(p(this.labelAngle)||(this.labelAngle=(this.labelAngle%360+360)%360,90<this.labelAngle&&270>this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),\"bottom\"===this._position||\"top\"===this._position)if(h=0.9*l>>0,n=0,!this.chart.panEnabled&&1<=\nthis._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=h;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c<this._labels.length;c++)if(!this._labels[c].breaksLabelType){a=this._labels[c].textBlock;for(var w,g=a.text.split(\" \"),b=0;b<g.length;b++)m=g[b],this.ctx.font=a.fontStyle+\" \"+a.fontWeight+\" \"+a.fontSize+\"px \"+a.fontFamily,m=this.ctx.measureText(m),\nm.width>n&&(w=c,n=m.width)}c=0;for(c=this.intervalStartPosition<this.viewportMinimum?1:0;c<this._labels.length;c++)if(!this._labels[c].breaksLabelType){a=this._labels[c].textBlock;B=a.measureText();for(g=c+1;g<this._labels.length;g++)if(!this._labels[g].breaksLabelType){e=this._labels[g].textBlock;e=e.measureText();break}f.push(a.height);this.sessionVariables.labelMaxHeight=Math.max.apply(Math,f);Math.cos(Math.PI/180*Math.abs(this.labelAngle));Math.sin(Math.PI/180*Math.abs(this.labelAngle));b=h*Math.sin(Math.PI/\n180*Math.abs(this.labelAngle))+(d-a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle));if(p(this.options.labelAngle)&&isNaN(this.options.labelAngle)&&0!==this.options.labelAngle)if(this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:Math.min((b-h*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),m=(k-(t+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(-25)))/Math.sin(Math.PI/180*Math.abs(-25)),!p(this.options.labelWrap))this.labelWrap?p(this.options.labelMaxWidth)?\n(this.sessionVariables.labelMaxWidth=Math.min(Math.max(h,n),m),this.sessionVariables.labelWrap=this.labelWrap,e&&B.width+e.width>>0>2*h&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>h?-25:this.sessionVariables.labelAngle):p(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=\nd,this.sessionVariables.labelMaxWidth=h,e&&B.width+e.width>>0>2*h&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>h?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelWrap=this.labelWrap);else{if(p(this.options.labelWrap))if(!p(this.options.labelMaxWidth))this.options.labelMaxWidth<h?\n(this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=b):(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=d);else if(!p(e))if(b=B.width+e.width>>0,g=this.labelFontSize,n<h)b-2*h>q&&(q=b-2*h,b>=2*h&&b<2.2*h?(this.sessionVariables.labelMaxWidth=h,p(this.options.labelFontSize)&&12<g&&(g=Math.floor(12/13*g),a.measureText()),this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?\ng:this.options.labelFontSize,this.sessionVariables.labelAngle=this.labelAngle):b>=2.2*h&&b<2.8*h?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelFontSize=g):b>=2.8*h&&b<3.2*h?(this.sessionVariables.labelMaxWidth=Math.max(h,n),this.sessionVariables.labelWrap=!0,p(this.options.labelFontSize)&&12<this.labelFontSize&&(this.labelFontSize=Math.floor(12/13*this.labelFontSize),a.measureText()),this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?\ng:this.options.labelFontSize,this.sessionVariables.labelAngle=this.labelAngle):b>=3.2*h&&b<3.6*h?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*h&&b<5*h?(p(this.options.labelFontSize)&&12<g&&(g=Math.floor(12/13*g),a.measureText()),this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=\n-25,this.sessionVariables.labelMaxWidth=m):b>5*h&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=h,this.sessionVariables.labelFontSize=g,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelAngle=this.labelAngle));else if(w===c&&(0===w&&n+this._labels[w+1].textBlock.measureText().width-2*h>q||w===this._labels.length-1&&n+this._labels[w-1].textBlock.measureText().width-2*h>q||0<w&&w<this._labels.length-1&&n+this._labels[w+1].textBlock.measureText().width-2*h>q&&\nn+this._labels[w-1].textBlock.measureText().width-2*h>q))q=0===w?n+this._labels[w+1].textBlock.measureText().width-2*h:n+this._labels[w-1].textBlock.measureText().width-2*h,this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m;else if(0===q)for(this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap=\n!0,b=0;b<this._labels.length;b++)a=this._labels[b].textBlock,a.maxWidth=this.sessionVariables.labelMaxWidth=Math.min(Math.max(h,n),m),B=a.measureText(),b<this._labels.length-1&&(g=b+1,e=this._labels[g].textBlock,e.maxWidth=this.sessionVariables.labelMaxWidth=Math.min(Math.max(h,n),m),e=e.measureText(),B.width+e.width>>0>2*h&&(this.sessionVariables.labelAngle=-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:Math.min((b-h*Math.cos(Math.PI/\n180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),m=0!=this.labelAngle?(k-(t+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):h,this.sessionVariables.labelMaxHeight=this.labelWrap?(k-m*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):1.5*this.labelFontSize,p(this.options.labelWrap))?p(this.options.labelWrap)&&(this.labelWrap&&!p(this.options.labelMaxWidth)?\n(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m,this.sessionVariables.labelMaxHeight=d):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelMaxHeight=b<0.9*l?0.9*l:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?\nthis.options.labelMaxWidth:m):(p(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=d)}for(b=0;b<this._labels.length;b++)a=this._labels[b].textBlock,a.maxWidth=this.labelMaxWidth=this.sessionVariables.labelMaxWidth,a.fontSize=this.sessionVariables.labelFontSize,a.angle=this.labelAngle=this.sessionVariables.labelAngle,a.wrap=this.labelWrap=this.sessionVariables.labelWrap,\na.maxHeight=this.sessionVariables.labelMaxHeight,a.measureText()}else for(c=0;c<this._labels.length;c++)a=this._labels[c].textBlock,a.maxWidth=this.labelMaxWidth=p(this.options.labelMaxWidth)?p(this.sessionVariables.labelMaxWidth)?this.sessionVariables.labelMaxWidth=h:this.sessionVariables.labelMaxWidth:this.options.labelMaxWidth,a.fontSize=this.labelFontSize=p(this.options.labelFontSize)?p(this.sessionVariables.labelFontSize)?this.sessionVariables.labelFontSize=this.labelFontSize:this.sessionVariables.labelFontSize:\nthis.options.labelFontSize,a.angle=this.labelAngle=p(this.options.labelAngle)?p(this.sessionVariables.labelAngle)?this.sessionVariables.labelAngle=this.labelAngle:this.sessionVariables.labelAngle:this.labelAngle,a.wrap=this.labelWrap=p(this.options.labelWrap)?p(this.sessionVariables.labelWrap)?this.sessionVariables.labelWrap=this.labelWrap:this.sessionVariables.labelWrap:this.options.labelWrap,a.maxHeight=p(this.sessionVariables.labelMaxHeight)?this.sessionVariables.labelMaxHeight=d:this.sessionVariables.labelMaxHeight,\na.measureText();else if(\"left\"===this._position||\"right\"===this._position)if(h=p(this.options.labelMaxWidth)?0.3*this.chart.width>>0:this.options.labelMaxWidth,d=\"undefined\"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=h;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=p(this.sessionVariables.labelAngle)?\n0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c<this._labels.length;c++)if(!this._labels[c].breaksLabelType){a=this._labels[c].textBlock;B=a.measureText();for(g=c+1;g<this._labels.length;g++)if(!this._labels[g].breaksLabelType){e=this._labels[g].textBlock;e=e.measureText();break}f.push(a.height);this.sessionVariables.labelMaxHeight=Math.max.apply(Math,f);b=h*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(d-a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle));\nMath.cos(Math.PI/180*Math.abs(this.labelAngle));Math.sin(Math.PI/180*Math.abs(this.labelAngle));p(this.options.labelAngle)&&isNaN(this.options.labelAngle)&&0!==this.options.labelAngle?p(this.options.labelWrap)?p(this.options.labelWrap)&&(p(this.options.labelMaxWidth)?p(e)||(l=B.height+e.height>>0,l-2*d>n&&(n=l-2*d,l>=2*d&&l<2.4*d?(p(this.options.labelFontSize)&&12<this.labelFontSize&&(this.labelFontSize=Math.floor(12/13*this.labelFontSize),a.measureText()),this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelFontSize=\np(this.options.labelFontSize)?this.labelFontSize:this.options.labelFontSize):l>=2.4*d&&l<2.8*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):l>=2.8*d&&l<3.2*d?(this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelWrap=!0,p(this.options.labelFontSize)&&12<this.labelFontSize&&(this.labelFontSize=Math.floor(12/13*this.labelFontSize),a.measureText()),this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?\nthis.labelFontSize:this.options.labelFontSize,this.sessionVariables.labelAngle=p(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle):l>=3.2*d&&l<3.6*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):l>3.6*d&&l<10*d?(p(this.options.labelFontSize)&&12<this.labelFontSize&&(this.labelFontSize=Math.floor(12/13*this.labelFontSize),a.measureText()),this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?\nthis.labelFontSize:this.options.labelFontSize,this.sessionVariables.labelMaxWidth=h,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelAngle=p(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle):l>10*d&&l<50*d&&(p(this.options.labelFontSize)&&12<this.labelFontSize&&(this.labelFontSize=Math.floor(12/13*this.labelFontSize),a.measureText()),this.sessionVariables.labelFontSize=p(this.options.labelFontSize)?this.labelFontSize:this.options.labelFontSize,this.sessionVariables.labelMaxHeight=\nd,this.sessionVariables.labelMaxWidth=h,this.sessionVariables.labelAngle=p(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle))):(this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:this.sessionVariables.labelMaxWidth)):(this.sessionVariables.labelMaxWidth=this.labelWrap?this.options.labelMaxWidth?this.options.labelMaxWidth:this.sessionVariables.labelMaxWidth:this.labelMaxWidth?this.options.labelMaxWidth?\nthis.options.labelMaxWidth:this.sessionVariables.labelMaxWidth:h,this.sessionVariables.labelMaxHeight=d):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=0===this.labelAngle?h:Math.min((b-d*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)),d),p(this.options.labelWrap))?p(this.options.labelWrap)&&(this.labelWrap&&!p(this.options.labelMaxWidth)?(this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:\nthis.sessionVariables.labelMaxWidth,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=b):(this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:h,this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:b,p(this.options.labelMaxWidth)&&(this.sessionVariables.labelAngle=this.labelAngle))):this.options.labelWrap?(this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:b,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=\nh):(this.sessionVariables.labelMaxHeight=d,p(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:this.sessionVariables.labelMaxWidth,this.sessionVariables.labelWrap=this.labelWrap)}for(b=0;b<this._labels.length;b++)a=this._labels[b].textBlock,a.maxWidth=this.labelMaxWidth=this.sessionVariables.labelMaxWidth,a.fontSize=this.labelFontSize=this.sessionVariables.labelFontSize,a.angle=this.labelAngle=this.sessionVariables.labelAngle,a.wrap=\nthis.labelWrap=this.sessionVariables.labelWrap,a.maxHeight=this.sessionVariables.labelMaxHeight,a.measureText()}else for(c=0;c<this._labels.length;c++)a=this._labels[c].textBlock,a.maxWidth=this.labelMaxWidth=p(this.options.labelMaxWidth)?p(this.sessionVariables.labelMaxWidth)?this.sessionVariables.labelMaxWidth=h:this.sessionVariables.labelMaxWidth:this.options.labelMaxWidth,a.fontSize=this.labelFontSize=p(this.options.labelFontSize)?p(this.sessionVariables.labelFontSize)?this.sessionVariables.labelFontSize=\nthis.labelFontSize:this.sessionVariables.labelFontSize:this.options.labelFontSize,a.angle=this.labelAngle=p(this.options.labelAngle)?p(this.sessionVariables.labelAngle)?this.sessionVariables.labelAngle=this.labelAngle:this.sessionVariables.labelAngle:this.labelAngle,a.wrap=this.labelWrap=p(this.options.labelWrap)?p(this.sessionVariables.labelWrap)?this.sessionVariables.labelWrap=this.labelWrap:this.sessionVariables.labelWrap:this.options.labelWrap,a.maxHeight=p(this.sessionVariables.labelMaxHeight)?\nthis.sessionVariables.labelMaxHeight=d:this.sessionVariables.labelMaxHeight,a.measureText();for(c=0;c<this.stripLines.length;c++){var h=this.stripLines[c],y;if(\"outside\"===h.labelPlacement){d=this.sessionVariables.labelMaxWidth;if(\"bottom\"===this._position||\"top\"===this._position)p(h.options.labelWrap)&&!p(this.sessionVariables.stripLineLabelMaxHeight)?y=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=y=h.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize;\nif(\"left\"===this._position||\"right\"===this._position)p(h.options.labelWrap)&&!p(this.sessionVariables.stripLineLabelMaxHeight)?y=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=y=h.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;p(h.labelBackgroundColor)&&(h.labelBackgroundColor=\"#EEEEEE\")}else d=\"bottom\"===this._position||\"top\"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,y=p(h.options.labelWrap)||h.labelWrap?\"bottom\"===this._position||\n\"top\"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,p(h.labelBackgroundColor)&&(p(h.startValue)&&0!==h.startValue?h.labelBackgroundColor=v?\"transparent\":null:h.labelBackgroundColor=\"#EEEEEE\");a=new ka(this.ctx,{x:0,y:0,backgroundColor:h.labelBackgroundColor,borderColor:h.labelBorderColor,borderThickness:h.labelBorderThickness,cornerRadius:h.labelCornerRadius,maxWidth:h.options.labelMaxWidth?h.options.labelMaxWidth:d,maxHeight:y,angle:this.labelAngle,text:h.labelFormatter?\nh.labelFormatter({chart:this.chart,axis:this,stripLine:h}):h.label,textAlign:this.labelTextAlign,fontSize:\"outside\"===h.labelPlacement?h.options.labelFontSize?h.labelFontSize:this.labelFontSize:h.labelFontSize,fontFamily:\"outside\"===h.labelPlacement?h.options.labelFontFamily?h.labelFontFamily:this.labelFontFamily:h.labelFontFamily,fontWeight:\"outside\"===h.labelPlacement?h.options.labelFontWeight?h.labelFontWeight:this.labelFontWeight:h.labelFontWeight,fontColor:h.labelFontColor||h.color,fontStyle:\"outside\"===\nh.labelPlacement?h.options.labelFontStyle?h.labelFontStyle:this.fontWeight:h.labelFontStyle,textBaseline:\"middle\"});this._stripLineLabels.push({position:h.value,textBlock:a,effectiveHeight:null,stripLine:h})}};E.prototype.createLabelsAndCalculateWidth=function(){var a=0,e=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if(\"left\"===this._position||\"right\"===this._position){this.createLabels();if(\"inside\"!=this.labelPlacement||\"inside\"===this.labelPlacement&&0<this._index)for(e=\n0;e<this._labels.length;e++){var b=this._labels[e].textBlock,f=b.measureText(),h=0,h=0===this.labelAngle?f.width:f.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(f.height-b.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle));a<h&&(this.labelEffectiveWidth=a=h);this._labels[e].effectiveWidth=h}for(e=0;e<this._stripLineLabels.length;e++)\"outside\"===this._stripLineLabels[e].stripLine.labelPlacement&&(this._stripLineLabels[e].stripLine.value>=this.viewportMinimum&&this._stripLineLabels[e].stripLine.value<=\nthis.viewportMaximum)&&(b=this._stripLineLabels[e].textBlock,f=b.measureText(),h=0===this.labelAngle?f.width:f.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(f.height-b.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),\"inside\"===this.tickPlacement&&(h+=this.tickLength),\"inside\"===this.labelPlacement&&(a+=0<this._index?h:0),a<h&&(a=h),this.stripLineLabelEffectiveWidth=this._stripLineLabels[e].effectiveWidth=h)}return(this.title?this._titleTextBlock.measureText().height+2:0)+a+(\"inside\"===\nthis.tickPlacement?0<this._index?this.tickLength:0:this.tickLength)+c};E.prototype.createLabelsAndCalculateHeight=function(){var a=0;this._labels=[];this._stripLineLabels=[];var e,c=0,b=this.chart.isNavigator?0:5;if(\"bottom\"===this._position||\"top\"===this._position){this.createLabels();if(\"inside\"!=this.labelPlacement||\"inside\"===this.labelPlacement&&0<this._index)for(c=0;c<this._labels.length;c++){e=this._labels[c].textBlock;var f=e.measureText(),h=0,h=0===this.labelAngle?f.height:f.width*Math.sin(Math.PI/\n180*Math.abs(this.labelAngle))+(f.height-e.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle));a<h&&(this.labelEffectiveHeight=a=h);this._labels[c].effectiveHeight=h}for(c=0;c<this._stripLineLabels.length;c++)\"outside\"===this._stripLineLabels[c].stripLine.labelPlacement&&(this._stripLineLabels[c].stripLine.value>=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(e=this._stripLineLabels[c].textBlock,f=e.measureText(),h=0===this.labelAngle?f.height:f.width*\nMath.sin(Math.PI/180*Math.abs(this.labelAngle))+(f.height-e.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),\"inside\"===this.tickPlacement&&(h+=this.tickLength),\"inside\"===this.labelPlacement&&(a+=0<this._index?h:0),a<h&&(a=h),this.stripLineLabelEffectiveHeight=this._stripLineLabels[c].effectiveHeight=h)}return(this.title?this._titleTextBlock.measureText().height+2:0)+a+(\"inside\"===this.tickPlacement?0<this._index?this.tickLength:0:this.tickLength)+b};E.setLayout=function(a,e,c,b,f,h){var d,\nl,t,k,m=a[0]?a[0].chart:e[0].chart,q=m.isNavigator?0:10,n=m._axes;if(a&&0<a.length)for(var g=0;g<a.length;g++)a[g]&&a[g].calculateAxisParameters();if(e&&0<e.length)for(g=0;g<e.length;g++)e[g].calculateAxisParameters();if(c&&0<c.length)for(g=0;g<c.length;g++)c[g].calculateAxisParameters();if(b&&0<b.length)for(g=0;g<b.length;g++)b[g].calculateAxisParameters();for(g=0;g<n.length;g++)if(n[g]&&n[g].scaleBreaks&&n[g].scaleBreaks._appliedBreaks.length)for(var v=n[g].scaleBreaks._appliedBreaks,w=0;w<v.length&&\n!(v[w].startValue>n[g].viewportMaximum);w++)v[w].endValue<n[g].viewportMinimum||(p(n[g].scaleBreaks.firstBreakIndex)&&(n[g].scaleBreaks.firstBreakIndex=w),v[w].startValue>=n[g].viewPortMinimum&&(n[g].scaleBreaks.lastBreakIndex=w));for(var y=w=0,s=0,z=0,u=0,D=0,C=0,A,B,E=l=0,H,I,K,v=H=I=K=!1,g=0;g<n.length;g++)n[g]&&n[g].title&&(n[g]._titleTextBlock=new ka(n[g].ctx,{text:n[g].title,horizontalAlign:\"center\",fontSize:n[g].titleFontSize,fontFamily:n[g].titleFontFamily,fontWeight:n[g].titleFontWeight,\nfontColor:n[g].titleFontColor,fontStyle:n[g].titleFontStyle,borderColor:n[g].titleBorderColor,borderThickness:n[g].titleBorderThickness,backgroundColor:n[g].titleBackgroundColor,cornerRadius:n[g].titleCornerRadius,textBaseline:\"middle\"}));for(g=0;g<n.length;g++)if(n[g].title)switch(n[g]._position){case \"left\":n[g]._titleTextBlock.maxWidth=n[g].titleMaxWidth||h.height;n[g]._titleTextBlock.maxHeight=n[g].titleWrap?0.8*h.width:1.5*n[g].titleFontSize;n[g]._titleTextBlock.angle=-90;break;case \"right\":n[g]._titleTextBlock.maxWidth=\nn[g].titleMaxWidth||h.height;n[g]._titleTextBlock.maxHeight=n[g].titleWrap?0.8*h.width:1.5*n[g].titleFontSize;n[g]._titleTextBlock.angle=90;break;default:n[g]._titleTextBlock.maxWidth=n[g].titleMaxWidth||h.width,n[g]._titleTextBlock.maxHeight=n[g].titleWrap?0.8*h.height:1.5*n[g].titleFontSize,n[g]._titleTextBlock.angle=0}if(\"normal\"===f){for(var z=[],u=[],D=[],C=[],N=[],P=[],O=[],Q=[];4>w;){var F=0,V=0,T=0,U=0,W=f=0,M=0,Z=0,X=0,Y=0,R=0,$=0;if(c&&0<c.length)for(D=[],g=R=0;g<c.length;g++)D.push(Math.ceil(c[g]?\nc[g].createLabelsAndCalculateWidth():0)),R+=D[g],M+=c[g]&&!m.isNavigator?c[g].margin:0;else D.push(Math.ceil(c[0]?c[0].createLabelsAndCalculateWidth():0));O.push(D);if(b&&0<b.length)for(C=[],g=$=0;g<b.length;g++)C.push(Math.ceil(b[g]?b[g].createLabelsAndCalculateWidth():0)),$+=C[g],Z+=b[g]?b[g].margin:0;else C.push(Math.ceil(b[0]?b[0].createLabelsAndCalculateWidth():0));Q.push(C);d=Math.round(h.x1+R+M);t=Math.round(h.x2-$-Z>m.width-q?m.width-q:h.x2-$-Z);if(a&&0<a.length)for(z=[],g=X=0;g<a.length;g++)a[g]&&\n(a[g].lineCoordinates={}),a[g].lineCoordinates.width=Math.abs(t-d),a[g].title&&(a[g]._titleTextBlock.maxWidth=0<a[g].titleMaxWidth&&a[g].titleMaxWidth<a[g].lineCoordinates.width?a[g].titleMaxWidth:a[g].lineCoordinates.width),z.push(Math.ceil(a[g]?a[g].createLabelsAndCalculateHeight():0)),X+=z[g],f+=a[g]&&!m.isNavigator?a[g].margin:0;else z.push(Math.ceil(a[0]?a[0].createLabelsAndCalculateHeight():0));N.push(z);if(e&&0<e.length)for(u=[],g=Y=0;g<e.length;g++)e[g]&&(e[g].lineCoordinates={}),e[g].lineCoordinates.width=\nMath.abs(t-d),e[g].title&&(e[g]._titleTextBlock.maxWidth=0<e[g].titleMaxWidth&&e[g].titleMaxWidth<e[g].lineCoordinates.width?e[g].titleMaxWidth:e[g].lineCoordinates.width),u.push(Math.ceil(e[g]?e[g].createLabelsAndCalculateHeight():0)),Y+=u[g],W+=e[g]&&!m.isNavigator?e[g].margin:0;else u.push(Math.ceil(e[0]?e[0].createLabelsAndCalculateHeight():0));P.push(u);if(a&&0<a.length)for(g=0;g<a.length;g++)a[g]&&(a[g].lineCoordinates.x1=d,t=Math.round(h.x2-$-Z>m.width-q?m.width-q:h.x2-$-Z),a[g]._labels&&1<\na[g]._labels.length&&(l=k=0,k=a[g]._labels[1],l=\"dateTime\"===a[g].valueType?a[g]._labels[a[g]._labels.length-2]:a[g]._labels[a[g]._labels.length-1],y=k.textBlock.width*Math.cos(Math.PI/180*Math.abs(k.textBlock.angle))+(k.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/180*Math.abs(k.textBlock.angle)),s=l.textBlock.width*Math.cos(Math.PI/180*Math.abs(l.textBlock.angle))+(l.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/180*Math.abs(l.textBlock.angle))),!a[g]||(!a[g].labelAutoFit||\np(A)||p(B)||m.isNavigator||m.stockChart)||(l=0,0<a[g].labelAngle?B+s>t&&(l+=0<a[g].labelAngle?B+s-t-$:0):0>a[g].labelAngle?A-y<d&&A-y<a[g].viewportMinimum&&(E=d-(M+a[g].tickLength+D+A-y+a[g].labelFontSize/2)):0===a[g].labelAngle&&(B+s>t&&(l=B+s/2-t-$),A-y<d&&A-y<a[g].viewportMinimum&&(E=d-M-a[g].tickLength-D-A+y/2)),a[g].viewportMaximum===a[g].maximum&&a[g].viewportMinimum===a[g].minimum&&0<a[g].labelAngle&&0<l?t-=l:a[g].viewportMaximum===a[g].maximum&&a[g].viewportMinimum===a[g].minimum&&0>a[g].labelAngle&&\n0<E?d+=E:a[g].viewportMaximum===a[g].maximum&&a[g].viewportMinimum===a[g].minimum&&0===a[g].labelAngle&&(0<E&&(d+=E),0<l&&(t-=l))),m.panEnabled?X=p(m.sessionVariables.axisX.height)?m.sessionVariables.axisX.height=X:m.sessionVariables.axisX.height:m.sessionVariables.axisX.height=X,l=Math.round(h.y2-X-f+F),k=Math.round(h.y2),a[g].lineCoordinates.x2=t,a[g].lineCoordinates.width=t-d,a[g].lineCoordinates.y1=l,a[g].lineCoordinates.y2=l,\"inside\"===a[g].labelPlacement&&0<g&&(a[g].lineCoordinates.y1=a[g-1].lineCoordinates.y2+\nF+(a[g].labelEffectiveHeight||0),a[g].lineCoordinates.y2=a[g].lineCoordinates.y1+a[g].lineThickness/2),\"inside\"===a[g].tickPlacement&&0<g&&(a[g].lineCoordinates.y1+=a[g].tickLength,a[g].lineCoordinates.y2=a[g].lineCoordinates.y1+a[g].lineThickness/2),a[g].bounds={x1:d,y1:l,x2:t,y2:k-(X+f-z[g]-F),width:t-d},a[g].bounds.height=a[g].bounds.y2-a[g].bounds.y1),F+=z[g]+a[g].margin;if(e&&0<e.length)for(g=0;g<e.length;g++)e[g].lineCoordinates.x1=Math.round(h.x1+R+M),e[g].lineCoordinates.x2=Math.round(h.x2-\n$-Z>m.width-q?m.width-q:h.x2-$-Z),e[g].lineCoordinates.width=Math.abs(t-d),e[g]._labels&&1<e[g]._labels.length&&(k=e[g]._labels[1],l=\"dateTime\"===e[g].valueType?e[g]._labels[e[g]._labels.length-2]:e[g]._labels[e[g]._labels.length-1],y=k.textBlock.width*Math.cos(Math.PI/180*Math.abs(k.textBlock.angle))+(k.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/180*Math.abs(k.textBlock.angle)),s=l.textBlock.width*Math.cos(Math.PI/180*Math.abs(l.textBlock.angle))+(l.textBlock.height-l.textBlock.fontSize/\n2)*Math.sin(Math.PI/180*Math.abs(l.textBlock.angle))),m.panEnabled?Y=p(m.sessionVariables.axisX2.height)?m.sessionVariables.axisX2.height=Y:m.sessionVariables.axisX2.height:m.sessionVariables.axisX2.height=Y,l=Math.round(h.y1),k=e[g].lineCoordinates.y1=l+Y+W-V,e[g].lineCoordinates.y2=l,\"inside\"===e[g].labelPlacement&&0<g&&(e[g].lineCoordinates.y1=e[g-1].lineCoordinates.y1-V-(e[g].labelEffectiveHeight||0)),\"inside\"===e[g].tickPlacement&&0<g&&(e[g].lineCoordinates.y1-=e[g].tickLength),e[g].bounds={x1:d,\ny1:l+(Y+W-u[g]-V),x2:t,y2:k,width:t-d},e[g].bounds.height=e[g].bounds.y2-e[g].bounds.y1,V+=u[g]+e[g].margin;if(c&&0<c.length)for(g=0;g<c.length;g++)M=m.isNavigator?0:10,c[g]&&(d=Math.round(a[0]?a[0].lineCoordinates.x1:e[0].lineCoordinates.x1),M=c[g]._labels&&0<c[g]._labels.length?c[g]._labels[c[g]._labels.length-1].textBlock.height/2:q,l=Math.round(h.y1+Y+W<Math.max(M,q)?Math.max(M,q):h.y1+Y+W),t=Math.round(a[0]?a[0].lineCoordinates.x1:e[0].lineCoordinates.x1),M=0<a.length?0:c[g]._labels&&0<c[g]._labels.length?\nc[g]._labels[0].textBlock.height/2:q,k=Math.round(h.y2-X-f-M),c[g].lineCoordinates={x1:d-T,y1:l,x2:t-T,y2:k,height:Math.abs(k-l)},\"inside\"===c[g].labelPlacement&&0<g&&(c[g].lineCoordinates.x1=c[g-1].lineCoordinates.x1-T-(c[g].labelEffectiveWidth||0),c[g].lineCoordinates.x2=c[g].lineCoordinates.x1+c[g].lineThickness/2),\"inside\"===c[g].tickPlacement&&0<g&&(c[g].lineCoordinates.x1-=c[g].tickLength,c[g].lineCoordinates.x2=c[g].lineCoordinates.x1+c[g].lineThickness/2),c[g].bounds={x1:d-(D[g]+T),y1:l,x2:t-\nT,y2:k,height:k-l},c[g].bounds.width=c[g].bounds.x2-c[g].bounds.x1,c[g].title&&(c[g]._titleTextBlock.maxWidth=0<c[g].titleMaxWidth&&c[g].titleMaxWidth<c[g].lineCoordinates.height?c[g].titleMaxWidth:c[g].lineCoordinates.height),T+=D[g]+c[g].margin);if(b&&0<b.length)for(g=0;g<b.length;g++)b[g]&&(d=Math.round(a[0]?a[0].lineCoordinates.x2:e[0].lineCoordinates.x2),t=Math.round(d),M=b[g]._labels&&0<b[g]._labels.length?b[g]._labels[b[g]._labels.length-1].textBlock.height/2:0,l=Math.round(h.y1+Y+W<Math.max(M,\nq)?Math.max(M,q):h.y1+Y+W),M=0<a.length?0:b[g]._labels&&0<b[g]._labels.length?b[g]._labels[0].textBlock.height/2:0,k=Math.round(h.y2-(X+f+M)),b[g].lineCoordinates={x1:d+U,y1:l,x2:d+U,y2:k,height:Math.abs(k-l)},\"inside\"===b[g].labelPlacement&&0<g&&(b[g].lineCoordinates.x1=b[g-1].lineCoordinates.x2+U+(b[g].labelEffectiveWidth||0),b[g].lineCoordinates.x2=b[g].lineCoordinates.x1+b[g].lineThickness/2),\"inside\"===b[g].tickPlacement&&0<g&&(b[g].lineCoordinates.x1+=b[g].tickLength,b[g].lineCoordinates.x2=\nb[g].lineCoordinates.x1+b[g].lineThickness/2),b[g].bounds={x1:d+U,y1:l,x2:t+(C[g]+U),y2:k,height:k-l},b[g].bounds.width=b[g].bounds.x2-b[g].bounds.x1,b[g].title&&(b[g]._titleTextBlock.maxWidth=0<b[g].titleMaxWidth&&b[g].titleMaxWidth<b[g].lineCoordinates.height?b[g].titleMaxWidth:b[g].lineCoordinates.height),U+=C[g]+b[g].margin);if(a&&0<a.length)for(g=0;g<a.length;g++)a[g]&&(a[g].calculateValueToPixelConversionParameters(),a[g].calculateBreaksSizeInValues(),a[g]._labels&&1<a[g]._labels.length&&(A=\n(a[g].logarithmic?Math.log(a[g]._labels[1].position/a[g].viewportMinimum)/a[g].conversionParameters.lnLogarithmBase:a[g]._labels[1].position-a[g].viewportMinimum)*Math.abs(a[g].conversionParameters.pixelPerUnit)+a[g].lineCoordinates.x1,d=a[g]._labels[a[g]._labels.length-(\"dateTime\"===a[g].valueType?2:1)].position,d=a[g].getApparentDifference(a[g].viewportMinimum,d),B=a[g].logarithmic?(1<d?Math.log(d)/a[g].conversionParameters.lnLogarithmBase*Math.abs(a[g].conversionParameters.pixelPerUnit):0)+a[g].lineCoordinates.x1:\n(0<d?d*Math.abs(a[g].conversionParameters.pixelPerUnit):0)+a[g].lineCoordinates.x1));if(e&&0<e.length)for(g=0;g<e.length;g++)e[g].calculateValueToPixelConversionParameters(),e[g].calculateBreaksSizeInValues(),e[g]._labels&&1<e[g]._labels.length&&(A=(e[g].logarithmic?Math.log(e[g]._labels[1].position/e[g].viewportMinimum)/e[g].conversionParameters.lnLogarithmBase:e[g]._labels[1].position-e[g].viewportMinimum)*Math.abs(e[g].conversionParameters.pixelPerUnit)+e[g].lineCoordinates.x1,d=e[g]._labels[e[g]._labels.length-\n(\"dateTime\"===e[g].valueType?2:1)].position,d=e[g].getApparentDifference(e[g].viewportMinimum,d),B=e[g].logarithmic?(1<d?Math.log(d)/e[g].conversionParameters.lnLogarithmBase*Math.abs(e[g].conversionParameters.pixelPerUnit):0)+e[g].lineCoordinates.x1:(0<d?d*Math.abs(e[g].conversionParameters.pixelPerUnit):0)+e[g].lineCoordinates.x1);for(g=0;g<n.length;g++)\"axisY\"===n[g].type&&(n[g].calculateValueToPixelConversionParameters(),n[g].calculateBreaksSizeInValues());if(0<w){if(a&&0<a.length)for(g=0;g<a.length;g++)v=\nN[w-1][g]===N[w][g]?!0:!1;else v=!0;if(e&&0<e.length)for(g=0;g<e.length;g++)H=P[w-1][g]===P[w][g]?!0:!1;else H=!0;if(c&&0<c.length)for(g=0;g<c.length;g++)I=O[w-1][g]===O[w][g]?!0:!1;else I=!0;if(b&&0<b.length)for(g=0;g<b.length;g++)K=Q[w-1][g]===Q[w][g]?!0:!1;else K=!0}if(v&&H&&I&&K)break;w++}if(a&&0<a.length)for(g=0;g<a.length;g++)a[g].calculateStripLinesThicknessInValues(),a[g].calculateBreaksInPixels();if(e&&0<e.length)for(g=0;g<e.length;g++)e[g].calculateStripLinesThicknessInValues(),e[g].calculateBreaksInPixels();\nif(c&&0<c.length)for(g=0;g<c.length;g++)c[g].calculateStripLinesThicknessInValues(),c[g].calculateBreaksInPixels();if(b&&0<b.length)for(g=0;g<b.length;g++)b[g].calculateStripLinesThicknessInValues(),b[g].calculateBreaksInPixels()}else{q=[];A=[];E=[];y=[];B=[];s=[];N=[];for(P=[];4>w;){X=U=T=Z=M=W=f=Q=O=F=Y=0;if(a&&0<a.length)for(E=[],g=U=0;g<a.length;g++)E.push(Math.ceil(a[g]?a[g].createLabelsAndCalculateWidth():0)),U+=E[g],f+=a[g]&&!m.isNavigator?a[g].margin:0;else E.push(Math.ceil(a[0]?a[0].createLabelsAndCalculateWidth():\n0));N.push(E);if(e&&0<e.length)for(y=[],g=X=0;g<e.length;g++)y.push(Math.ceil(e[g]?e[g].createLabelsAndCalculateWidth():0)),X+=y[g],W+=e[g]?e[g].margin:0;else y.push(Math.ceil(e[0]?e[0].createLabelsAndCalculateWidth():0));P.push(y);if(c&&0<c.length)for(g=0;g<c.length;g++)c[g].lineCoordinates={},d=Math.round(h.x1+U+f),t=Math.round(h.x2-X-W>m.width-10?m.width-10:h.x2-X-W),c[g].labelAutoFit&&!p(z)&&(0<!a.length&&(d=0>c[g].labelAngle?Math.max(d,z):0===c[g].labelAngle?Math.max(d,z/2):d),0<!e.length&&(t=\n0<c[g].labelAngle?t-u/2:0===c[g].labelAngle?t-u/2:t)),c[g].lineCoordinates.x1=d,c[g].lineCoordinates.x2=t,c[g].lineCoordinates.width=Math.abs(t-d),c[g].title&&(c[g]._titleTextBlock.maxWidth=0<c[g].titleMaxWidth&&c[g].titleMaxWidth<c[g].lineCoordinates.width?c[g].titleMaxWidth:c[g].lineCoordinates.width);if(b&&0<b.length)for(g=0;g<b.length;g++)b[g].lineCoordinates={},d=Math.round(h.x1+U+f),t=Math.round(h.x2-X-W>b[g].chart.width-10?b[g].chart.width-10:h.x2-X-W),b[g]&&b[g].labelAutoFit&&!p(D)&&(0<!a.length&&\n(d=0<b[g].labelAngle?Math.max(d,D):0===b[g].labelAngle?Math.max(d,D/2):d),0<!e.length&&(t-=C/2)),b[g].lineCoordinates.x1=d,b[g].lineCoordinates.x2=t,b[g].lineCoordinates.width=Math.abs(t-d),b[g].title&&(b[g]._titleTextBlock.maxWidth=0<b[g].titleMaxWidth&&b[g].titleMaxWidth<b[g].lineCoordinates.width?b[g].titleMaxWidth:b[g].lineCoordinates.width);if(c&&0<c.length)for(q=[],g=T=0;g<c.length;g++)q.push(Math.ceil(c[g]?c[g].createLabelsAndCalculateHeight():0)),T+=q[g]+c[g].margin,M+=c[g].margin;else q.push(Math.ceil(c[0]?\nc[0].createLabelsAndCalculateHeight():0));B.push(q);if(b&&0<b.length)for(A=[],g=0;g<b.length;g++)A.push(Math.ceil(b[g]?b[g].createLabelsAndCalculateHeight():0)),Z+=b[g].margin;else A.push(Math.ceil(b[0]?b[0].createLabelsAndCalculateHeight():0));s.push(A);if(c&&0<c.length)for(g=0;g<c.length;g++)0<c[g]._labels.length&&(k=c[g]._labels[0],l=c[g]._labels[c[g]._labels.length-1],z=k.textBlock.width*Math.cos(Math.PI/180*Math.abs(k.textBlock.angle))+(k.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/\n180*Math.abs(k.textBlock.angle)),u=l.textBlock.width*Math.cos(Math.PI/180*Math.abs(l.textBlock.angle))+(l.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/180*Math.abs(l.textBlock.angle)));if(b&&0<b.length)for(g=0;g<b.length;g++)b[g]&&0<b[g]._labels.length&&(k=b[g]._labels[0],l=b[g]._labels[b[g]._labels.length-1],D=k.textBlock.width*Math.cos(Math.PI/180*Math.abs(k.textBlock.angle))+(k.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/180*Math.abs(k.textBlock.angle)),C=l.textBlock.width*\nMath.cos(Math.PI/180*Math.abs(l.textBlock.angle))+(l.textBlock.height-l.textBlock.fontSize/2)*Math.sin(Math.PI/180*Math.abs(l.textBlock.angle)));if(m.panEnabled)for(g=0;g<c.length;g++)q[g]=p(m.sessionVariables.axisY[g].height)?m.sessionVariables.axisY[g].height=q[g]:m.sessionVariables.axisY[g].height;else for(g=0;g<c.length;g++)m.sessionVariables.axisY[g].height=q[g];if(c&&0<c.length)for(g=c.length-1;0<=g;g--)l=Math.round(h.y2),k=Math.round(h.y2>c[g].chart.height?c[g].chart.height:h.y2),c[g].lineCoordinates.y1=\nl-(q[g]+c[g].margin+Y),c[g].lineCoordinates.y2=l-(q[g]+c[g].margin+Y),\"inside\"===c[g].labelPlacement&&0<g&&(c[g].lineCoordinates.y1=c[g].lineCoordinates.y1+q[g]-(c[g]._titleTextBlock?c[g]._titleTextBlock.height:0)-c[g].tickLength-(c[g].stripLineLabelEffectiveHeight||0)-5,c[g].lineCoordinates.y2=c[g].lineCoordinates.y1+c[g].lineThickness/2),\"inside\"===c[g].tickPlacement&&0<g&&(c[g].lineCoordinates.y1+=c[g].tickLength,c[g].lineCoordinates.y2=c[g].lineCoordinates.y1+c[g].lineThickness/2),c[g].bounds=\n{x1:d,y1:l-(q[g]+Y+c[g].margin),x2:t,y2:k-(Y+c[g].margin),width:t-d,height:q[g]},c[g].title&&(c[g]._titleTextBlock.maxWidth=0<c[g].titleMaxWidth&&c[g].titleMaxWidth<c[g].lineCoordinates.width?c[g].titleMaxWidth:c[g].lineCoordinates.width),Y+=q[g]+c[g].margin;if(b&&0<b.length)for(g=b.length-1;0<=g;g--)b[g]&&(l=Math.round(h.y1),k=Math.round(h.y1+(A[g]+b[g].margin+F)),b[g].lineCoordinates.y1=k,b[g].lineCoordinates.y2=k,\"inside\"===b[g].labelPlacement&&0<g&&(b[g].lineCoordinates.y1=k-A[g]+(b[g]._titleTextBlock?\nb[g]._titleTextBlock.height:0)+b[g].tickLength+(b[g].stripLineLabelEffectiveHeight||0),b[g].lineCoordinates.y2=b[g].lineCoordinates.y1-b[g].lineThickness/2),\"inside\"===b[g].tickPlacement&&0<g&&(b[g].lineCoordinates.y1-=b[g].tickLength,b[g].lineCoordinates.y2=b[g].lineCoordinates.y1-b[g].lineThickness/2),b[g].bounds={x1:d,y1:l+(b[g].margin+F),x2:t,y2:k,width:t-d},b[g].bounds.height=b[g].bounds.y2-b[g].bounds.y1,b[g].title&&(b[g]._titleTextBlock.maxWidth=0<b[g].titleMaxWidth&&b[g].titleMaxWidth<b[g].lineCoordinates.width?\nb[g].titleMaxWidth:b[g].lineCoordinates.width),F+=A[g]+b[g].margin);if(a&&0<a.length)for(g=0;g<a.length;g++){M=a[g]._labels&&0<a[g]._labels.length?a[g]._labels[0].textBlock.fontSize/2:0;d=Math.round(h.x1+f);l=b&&0<b.length?Math.round(b[0]?b[0].lineCoordinates.y2:h.y1<Math.max(M,10)?Math.max(M,10):h.y1):h.y1<Math.max(M,10)?Math.max(M,10):h.y1;t=Math.round(h.x1+U+f);k=c&&0<c.length?Math.round(c[0]?c[0].lineCoordinates.y1:h.y2-T>m.height-Math.max(M,10)?m.height-Math.max(M,10):h.y2-T):h.y2>m.height-Math.max(M,\n10)?m.height-Math.max(M,10):h.y2;if(c&&0<c.length)for(M=0;M<c.length;M++)c[M]&&c[M].labelAutoFit&&(t=c[M].lineCoordinates.x1,d=0>c[M].labelAngle||0===c[M].labelAngle?t-U:d);if(b&&0<b.length)for(M=0;M<b.length;M++)b[M]&&b[M].labelAutoFit&&(t=b[M].lineCoordinates.x1,d=t-U);a[g].lineCoordinates={x1:t-O,y1:l,x2:t-O,y2:k,height:Math.abs(k-l)};\"inside\"===a[g].labelPlacement&&0<g&&(a[g].lineCoordinates.x1=a[g].lineCoordinates.x1-(E[g]-(a[g]._titleTextBlock?a[g]._titleTextBlock.height:0))+a[g].tickLength+\n(a[g].stripLineLabelEffectiveWidth||0),a[g].lineCoordinates.x2=a[g].lineCoordinates.x1+a[g].lineThickness/2);\"inside\"===a[g].tickPlacement&&0<g&&(a[g].lineCoordinates.x1-=a[g].tickLength,a[g].lineCoordinates.x2=a[g].lineCoordinates.x1+a[g].lineThickness/2);a[g].bounds={x1:t-(E[g]+O),y1:l,x2:t-O,y2:k,height:k-l};a[g].bounds.width=a[g].bounds.x2-a[g].bounds.x1;a[g].title&&(a[g]._titleTextBlock.maxWidth=0<a[g].titleMaxWidth&&a[g].titleMaxWidth<a[g].lineCoordinates.height?a[g].titleMaxWidth:a[g].lineCoordinates.height);\na[g].calculateValueToPixelConversionParameters();a[g].calculateBreaksSizeInValues();O+=E[g]+a[g].margin}if(e&&0<e.length)for(g=0;g<e.length;g++){M=e[g]._labels&&0<e[g]._labels.length?e[g]._labels[0].textBlock.fontSize/2:0;d=Math.round(h.x1-f);l=b&&0<b.length?Math.round(b[0]?b[0].lineCoordinates.y2:h.y1<Math.max(M,10)?Math.max(M,10):h.y1):h.y1<Math.max(M,10)?Math.max(M,10):h.y1;t=Math.round(h.x2-X-W);k=c&&0<c.length?Math.round(c[0]?c[0].lineCoordinates.y1:h.y2-T>m.height-Math.max(M,10)?m.height-Math.max(M,\n10):h.y2-T):h.y2>m.height-Math.max(M,10)?m.height-Math.max(M,10):h.y2;if(c&&0<c.length)for(M=0;M<c.length;M++)c[M]&&c[M].labelAutoFit&&(t=0>c[M].labelAngle?Math.max(t,z):0===c[M].labelAngle?Math.max(t,z/2):t,d=0>c[M].labelAngle||0===c[M].labelAngle?t-X:d);if(b&&0<b.length)for(M=0;M<b.length;M++)b[M]&&b[M].labelAutoFit&&(t=b[M].lineCoordinates.x2,d=t-X);e[g].lineCoordinates={x1:t+Q,y1:l,x2:t+Q,y2:k,height:Math.abs(k-l)};\"inside\"===e[g].labelPlacement&&0<g&&(e[g].lineCoordinates.x1=e[g].lineCoordinates.x1+\n(y[g]-(e[g]._titleTextBlock?e[g]._titleTextBlock.height:0)-2)-e[g].tickLength-(e[g].stripLineLabelEffectiveWidth||0),e[g].lineCoordinates.x2=e[g].lineCoordinates.x1+e[g].lineThickness/2);\"inside\"===e[g].tickPlacement&&0<g&&(e[g].lineCoordinates.x1+=e[g].tickLength,e[g].lineCoordinates.x2=e[g].lineCoordinates.x1+e[g].lineThickness/2);e[g].bounds={x1:e[g].lineCoordinates.x1,y1:l,x2:t+y[g]+Q,y2:k,width:t-d,height:k-l};e[g].bounds.width=e[g].bounds.x2-e[g].bounds.x1;e[g].title&&(e[g]._titleTextBlock.maxWidth=\n0<e[g].titleMaxWidth&&e[g].titleMaxWidth<e[g].lineCoordinates.height?e[g].titleMaxWidth:e[g].lineCoordinates.height);e[g].calculateValueToPixelConversionParameters();e[g].calculateBreaksSizeInValues();Q+=y[g]+e[g].margin}for(g=0;g<n.length;g++)\"axisY\"===n[g].type&&(n[g].calculateValueToPixelConversionParameters(),n[g].calculateBreaksSizeInValues());if(0<w){if(a&&0<a.length)for(g=0;g<a.length;g++)v=N[w-1][g]===N[w][g]?!0:!1;else v=!0;if(e&&0<e.length)for(g=0;g<e.length;g++)H=P[w-1][g]===P[w][g]?!0:\n!1;else H=!0;if(c&&0<c.length)for(g=0;g<c.length;g++)I=B[w-1][g]===B[w][g]?!0:!1;else I=!0;if(b&&0<b.length)for(g=0;g<b.length;g++)K=s[w-1][g]===s[w][g]?!0:!1;else K=!0}if(v&&H&&I&&K)break;w++}if(c&&0<c.length)for(g=0;g<c.length;g++)c[g].calculateStripLinesThicknessInValues(),c[g].calculateBreaksInPixels();if(b&&0<b.length)for(g=0;g<b.length;g++)b[g].calculateStripLinesThicknessInValues(),b[g].calculateBreaksInPixels();if(a&&0<a.length)for(g=0;g<a.length;g++)a[g].calculateStripLinesThicknessInValues(),\na[g].calculateBreaksInPixels();if(e&&0<e.length)for(g=0;g<e.length;g++)e[g].calculateStripLinesThicknessInValues(),e[g].calculateBreaksInPixels()}};E.render=function(a,e,c,b,f){var h=a[0]?a[0].chart:e[0].chart;f=h.ctx;h.alignVerticalAxes&&h.alignVerticalAxes();f.save();f.beginPath();a&&a.length&&f.rect(5,a[0].bounds.y1,a[0].chart.width-10,a[a.length-1].bounds.y2);e&&e.length&&f.rect(5,e[e.length-1].bounds.y1,e[0].chart.width-10,e[0].bounds.y2);f.clip();if(a&&0<a.length)for(var d=0;d<a.length;d++)a[d].renderLabelsTicksAndTitle();\nif(e&&0<e.length)for(d=0;d<e.length;d++)e[d].renderLabelsTicksAndTitle();f.restore();if(c&&0<c.length)for(d=0;d<c.length;d++)c[d].renderLabelsTicksAndTitle();if(b&&0<b.length)for(d=0;d<b.length;d++)b[d].renderLabelsTicksAndTitle();h.preparePlotArea();h=h.plotArea;f.save();f.beginPath();f.rect(h.x1,h.y1,Math.abs(h.x2-h.x1),Math.abs(h.y2-h.y1));f.clip();if(a&&0<a.length)for(d=0;d<a.length;d++)a[d].renderStripLinesOfThicknessType(\"value\");if(e&&0<e.length)for(d=0;d<e.length;d++)e[d].renderStripLinesOfThicknessType(\"value\");\nif(c&&0<c.length)for(d=0;d<c.length;d++)c[d].renderStripLinesOfThicknessType(\"value\");if(b&&0<b.length)for(d=0;d<b.length;d++)b[d].renderStripLinesOfThicknessType(\"value\");if(a&&0<a.length)for(d=0;d<a.length;d++)a[d].renderInterlacedColors();if(e&&0<e.length)for(d=0;d<e.length;d++)e[d].renderInterlacedColors();if(c&&0<c.length)for(d=0;d<c.length;d++)c[d].renderInterlacedColors();if(b&&0<b.length)for(d=0;d<b.length;d++)b[d].renderInterlacedColors();f.restore();if(a&&0<a.length)for(d=0;d<a.length;d++)a[d].renderGrid(),\nv&&(a[d].createMask(),a[d].renderBreaksBackground());if(e&&0<e.length)for(d=0;d<e.length;d++)e[d].renderGrid(),v&&(e[d].createMask(),e[d].renderBreaksBackground());if(c&&0<c.length)for(d=0;d<c.length;d++)c[d].renderGrid(),v&&(c[d].createMask(),c[d].renderBreaksBackground());if(b&&0<b.length)for(d=0;d<b.length;d++)b[d].renderGrid(),v&&(b[d].createMask(),b[d].renderBreaksBackground());if(a&&0<a.length)for(d=0;d<a.length;d++)a[d].renderAxisLine();if(e&&0<e.length)for(d=0;d<e.length;d++)e[d].renderAxisLine();\nif(c&&0<c.length)for(d=0;d<c.length;d++)c[d].renderAxisLine();if(b&&0<b.length)for(d=0;d<b.length;d++)b[d].renderAxisLine();if(a&&0<a.length)for(d=0;d<a.length;d++)a[d].renderStripLinesOfThicknessType(\"pixel\");if(e&&0<e.length)for(d=0;d<e.length;d++)e[d].renderStripLinesOfThicknessType(\"pixel\");if(c&&0<c.length)for(d=0;d<c.length;d++)c[d].renderStripLinesOfThicknessType(\"pixel\");if(b&&0<b.length)for(d=0;d<b.length;d++)b[d].renderStripLinesOfThicknessType(\"pixel\")};E.prototype.calculateStripLinesThicknessInValues=\nfunction(){for(var a=0;a<this.stripLines.length;a++)if(null!==this.stripLines[a].startValue&&null!==this.stripLines[a].endValue){var e=Math.min(this.stripLines[a].startValue,this.stripLines[a].endValue),c=Math.max(this.stripLines[a].startValue,this.stripLines[a].endValue),b=this.getApparentDifference(e,c);this.stripLines[a].value=this.convertPixelToValue(Math.abs(this.convertValueToPixel(e)+this.convertValueToPixel(c))/2);this.stripLines[a].thickness=b;this.stripLines[a]._thicknessType=\"value\"}};\nE.prototype.calculateBreaksSizeInValues=function(){for(var a=\"left\"===this._position||\"right\"===this._position?this.lineCoordinates.height||this.chart.height:this.lineCoordinates.width||this.chart.width,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c=this.conversionParameters.pixelPerUnit||a/(this.logarithmic?this.conversionParameters.maximum/this.conversionParameters.minimum:this.conversionParameters.maximum-this.conversionParameters.minimum),b=this.scaleBreaks&&!p(this.scaleBreaks.options.spacing),\nf,h=0;h<e.length;h++)f=b||!p(e[h].options.spacing),e[h].spacing=Ua(e[h].spacing,a,8,f?0.1*a:8,f?0:3)<<0,e[h].size=0>e[h].spacing?0:Math.abs(e[h].spacing/c),this.logarithmic&&(e[h].size=Math.pow(this.logarithmBase,e[h].size))};E.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var e=0;e<a.length&&\n!(a[e].startValue>this.conversionParameters.maximum);e++)a[e].endValue<this.conversionParameters.minimum||(p(this.scaleBreaks.firstBreakIndex)&&(this.scaleBreaks.firstBreakIndex=e),a[e].startValue>=this.conversionParameters.minimum&&(a[e].startPixel=this.convertValueToPixel(a[e].startValue),this.scaleBreaks.lastBreakIndex=e),a[e].endValue<=this.conversionParameters.maximum&&(a[e].endPixel=this.convertValueToPixel(a[e].endValue)))}};E.prototype.renderLabelsTicksAndTitle=function(){var a=this,e=!1,\nc=0,b=0,f=1,h=0;0!==this.labelAngle&&360!==this.labelAngle&&(f=1.2);if(\"undefined\"===typeof this.options.interval){if(\"bottom\"===this._position||\"top\"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],f=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,d,l=this.viewportMaximum,p=this.lineCoordinates.width/Math.log(this.range),k=this._labels.length-1;0<=k;k--){q=this._labels[k];if(q.position<this.viewportMinimum)break;q.position>this.viewportMaximum||!(k===\nthis._labels.length-1||d<Math.log(l/q.position)*p/f)||(c.push(q),l=q.position,d=q.textBlock.width*Math.abs(Math.cos(Math.PI/180*this.labelAngle))+q.textBlock.height*Math.abs(Math.sin(Math.PI/180*this.labelAngle)))}this._labels=c}else{for(k=0;k<this._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||(d=q.textBlock.width*Math.abs(Math.cos(Math.PI/180*this.labelAngle))+q.textBlock.height*Math.abs(Math.sin(Math.PI/180*this.labelAngle)),c+=d);c>this.lineCoordinates.width*f&&this.labelAutoFit&&\n(e=!0)}if(\"left\"===this._position||\"right\"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],m,l=this.viewportMaximum,p=this.lineCoordinates.height/Math.log(this.range),k=this._labels.length-1;0<=k;k--){q=this._labels[k];if(q.position<this.viewportMinimum)break;q.position>this.viewportMaximum||!(k===this._labels.length-1||m<Math.log(l/q.position)*p)||(c.push(q),l=q.position,m=q.textBlock.height*Math.abs(Math.cos(Math.PI/180*this.labelAngle))+q.textBlock.width*\nMath.abs(Math.sin(Math.PI/180*this.labelAngle)))}this._labels=c}else{for(k=0;k<this._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||(m=q.textBlock.height*Math.abs(Math.cos(Math.PI/180*this.labelAngle))+q.textBlock.width*Math.abs(Math.sin(Math.PI/180*this.labelAngle)),b+=m);b>this.lineCoordinates.height*f&&this.labelAutoFit&&(e=!0)}}this.logarithmic&&(!this.equidistantInterval&&this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var k=0,q,n;if(\"bottom\"===\nthis._position){for(k=0;k<this._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||q.position>this.viewportMaximum||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,n.y<<0),this.ctx.lineTo(b,n.y+this.tickLength<<0),this.ctx.stroke()),e&&0!==h++%2&&this.labelAutoFit||(0===q.textBlock.angle?\n(n.x-=q.textBlock.width/2,n.y=\"inside\"===this.labelPlacement?n.y-((\"inside\"===this.tickPlacement?this.tickLength:0)+q.textBlock.height-q.textBlock.fontSize/2):n.y+(\"inside\"===this.tickPlacement?0:this.tickLength)+q.textBlock.fontSize/2+5):(n.x=\"inside\"===this.labelPlacement?0>this.labelAngle?n.x:n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):n.x-(0>this.labelAngle?q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0),n.y=\"inside\"===this.labelPlacement?0>this.labelAngle?n.y-(\"inside\"===\nthis.tickPlacement?this.tickLength:0)-5:n.y-(\"inside\"===this.tickPlacement?this.tickLength:0)-Math.abs(q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):n.y+(\"inside\"===this.tickPlacement?0:this.tickLength)+Math.abs(0>this.labelAngle?q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),q.textBlock.x=n.x,q.textBlock.y=n.y));\"inside\"===this.tickPlacement&&this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;k<a._labels.length;k++)if(q=a._labels[k],!(q.position<\na.viewportMinimum||q.position>a.viewportMaximum)&&(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,n.y<<0);a.ctx.lineTo(b,n.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/\n2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height+this._titleTextBlock.fontSize/2-1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if(\"top\"===this._position){for(k=0;k<this._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||q.position>this.viewportMaximum||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,\nb=1===this.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,n.y<<0),this.ctx.lineTo(b,n.y-this.tickLength<<0),this.ctx.stroke()),e&&0!==h++%2&&this.labelAutoFit||(0===q.textBlock.angle?(n.x-=q.textBlock.width/2,n.y=\"inside\"===this.labelPlacement?n.y+this.labelFontSize/2+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:n.y-((\"inside\"===this.tickPlacement?0:this.tickLength)+q.textBlock.height-q.textBlock.fontSize/2)):(n.x=\"inside\"===this.labelPlacement?0<this.labelAngle?\nn.x:n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):n.x+(q.textBlock.height-this.labelFontSize)*Math.sin(Math.PI/180*this.labelAngle)-(0<this.labelAngle?q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0),n.y=\"inside\"===this.labelPlacement?0<this.labelAngle?n.y+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:n.y-q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:n.y-((\"inside\"===this.tickPlacement?0:this.tickLength)+((q.textBlock.height-\nq.textBlock.fontSize/2)*Math.cos(Math.PI/180*this.labelAngle)+(0<this.labelAngle?q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0)))),q.textBlock.x=n.x,q.textBlock.y=n.y));\"inside\"===this.tickPlacement&&this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;k<a._labels.length;k++)if(q=a._labels[k],!(q.position<a.viewportMinimum||q.position>a.viewportMaximum)&&(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=\na.tickColor;var b=1===a.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,n.y<<0);a.ctx.lineTo(b,n.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+this._titleTextBlock.fontSize/2+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if(\"left\"===\nthis._position){for(k=0;k<this._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||q.position>this.viewportMaximum||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0,this.ctx.beginPath(),this.ctx.moveTo(n.x<<0,b),this.ctx.lineTo(n.x-this.tickLength<<0,b),this.ctx.stroke()),e&&0!==h++%2&&this.labelAutoFit||(0===this.labelAngle?\n(q.textBlock.y=n.y,q.textBlock.x=\"inside\"===this.labelPlacement?n.x+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-(\"inside\"===this.tickPlacement?0:this.tickLength)-5):(q.textBlock.y=\"inside\"===this.labelPlacement?n.y:n.y-q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),q.textBlock.x=\"inside\"===this.labelPlacement?n.x+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:0<this.labelAngle?n.x-q.textBlock.width*Math.cos(Math.PI/\n180*this.labelAngle)-(\"inside\"===this.tickPlacement?0:this.tickLength)-5:n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+(q.textBlock.height-q.textBlock.fontSize/2-5)*Math.sin(Math.PI/180*this.labelAngle)-(\"inside\"===this.tickPlacement?0:this.tickLength))));\"inside\"===this.tickPlacement&&this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;k<a._labels.length;k++)if(q=a._labels[k],!(q.position<a.viewportMinimum||q.position>a.viewportMaximum)&&(n=a.getPixelCoordinatesOnAxis(q.position),\na.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(n.x<<0,b);a.ctx.lineTo(n.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+this._titleTextBlock.fontSize/2+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=\nthis._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if(\"right\"===this._position){for(k=0;k<this._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||q.position>this.viewportMaximum||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0,this.ctx.beginPath(),this.ctx.moveTo(n.x<<0,b),this.ctx.lineTo(n.x+this.tickLength<<\n0,b),this.ctx.stroke()),e&&0!==h++%2&&this.labelAutoFit||(0===this.labelAngle?(q.textBlock.y=n.y,q.textBlock.x=\"inside\"===this.labelPlacement?n.x-q.textBlock.width-(\"inside\"===this.tickPlacement?this.tickLength:0)-5:n.x+(\"inside\"===this.tickPlacement?0:this.tickLength)+5):(q.textBlock.y=\"inside\"===this.labelPlacement?n.y-q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?n.y:n.y-(q.textBlock.height-q.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),q.textBlock.x=\n\"inside\"===this.labelPlacement?n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-(\"inside\"===this.tickPlacement?this.tickLength:0)-5:0<this.labelAngle?n.x+(q.textBlock.height-q.textBlock.fontSize/2-5)*Math.sin(Math.PI/180*this.labelAngle)+(\"inside\"===this.tickPlacement?0:this.tickLength):n.x+(\"inside\"===this.tickPlacement?0:this.tickLength)+5)));\"inside\"===this.tickPlacement&&this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;k<a._labels.length;k++)if(q=a._labels[k],\n!(q.position<a.viewportMinimum||q.position>a.viewportMaximum)&&(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(n.x<<0,b);a.ctx.lineTo(n.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-this._titleTextBlock.fontSize/2-1,this._titleTextBlock.y=\nthis.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}h=0;if(\"inside\"===this.labelPlacement)this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;k<a._labels.length;k++)q=a._labels[k],q.position<a.viewportMinimum||(q.position>a.viewportMaximum||e&&0!==h++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),q.textBlock.render(!0),a.ctx.restore())},this);else for(k=0;k<\nthis._labels.length;k++)q=this._labels[k],q.position<this.viewportMinimum||(q.position>this.viewportMaximum||e&&0!==h++%2&&this.labelAutoFit)||q.textBlock.render(!0)};E.prototype.renderInterlacedColors=function(){var a=this.chart.plotArea.ctx,e,c,b=this.chart.plotArea,f=0;e=!0;if((\"bottom\"===this._position||\"top\"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,f=0;f<this._labels.length;f++)e?(e=this.getPixelCoordinatesOnAxis(this._labels[f].position),c=f+1>this._labels.length-\n1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[f+1].position),a.fillRect(Math.min(c.x,e.x),b.y1,Math.abs(c.x-e.x),Math.abs(b.y1-b.y2)),e=!1):e=!0;else if((\"left\"===this._position||\"right\"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,f=0;f<this._labels.length;f++)e?(c=this.getPixelCoordinatesOnAxis(this._labels[f].position),e=f+1>this._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[f+\n1].position),a.fillRect(b.x1,Math.min(c.y,e.y),Math.abs(b.x1-b.x2),Math.abs(e.y-c.y)),e=!1):e=!0;a.beginPath()};E.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0<this.stripLines.length&&a){var e=this,c,b,f=0,h=0,d=!1;b=!1;for(var l=[],t=[],k=!1,f=0;f<this.stripLines.length;f++){var m=this.stripLines[f];m._thicknessType===a&&(\"pixel\"===a&&(m.value<this.viewportMinimum||m.value>this.viewportMaximum||p(m.value)||isNaN(this.range))||\"value\"===a&&(m.startValue<=this.viewportMinimum&&\nm.endValue<=this.viewportMinimum||m.startValue>=this.viewportMaximum&&m.endValue>=this.viewportMaximum||p(m.startValue)||p(m.endValue)||isNaN(this.range))||l.push(m))}for(f=0;f<this._stripLineLabels.length;f++)if(m=this.stripLines[f],c=this._stripLineLabels[f],!(c.position<this.viewportMinimum||c.position>this.viewportMaximum||isNaN(this.range)))if(b=this.getPixelCoordinatesOnAxis(c.position),\"outside\"===c.stripLine.labelPlacement){m&&(this.ctx.strokeStyle=m.color,this.ctx.lineWidth=\"pixel\"===m._thicknessType?\nm.thickness:this.tickThickness);if(\"bottom\"===this._position){var q=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0;this.ctx.beginPath();this.ctx.moveTo(q,b.y<<0);this.ctx.lineTo(q,b.y+this.tickLength<<0);this.ctx.stroke();0===this.labelAngle?(b.x-=c.textBlock.width/2,b.y+=this.tickLength+c.textBlock.fontSize/2+5):(b.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,b.y+=this.tickLength+Math.abs(0>this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:\n5))}else\"top\"===this._position?(q=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0,this.ctx.beginPath(),this.ctx.moveTo(q,b.y<<0),this.ctx.lineTo(q,b.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(b.x-=c.textBlock.width/2,b.y-=this.tickLength+c.textBlock.height-c.textBlock.fontSize/2):(b.x+=(c.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0<this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0),b.y-=this.tickLength+(c.textBlock.height*\nMath.cos(Math.PI/180*this.labelAngle)+(0<this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0)))):\"left\"===this._position?(q=1===this.ctx.lineWidth%2?(b.y<<0)+0.5:b.y<<0,this.ctx.beginPath(),this.ctx.moveTo(b.x<<0,q),this.ctx.lineTo(b.x-this.tickLength<<0,q),this.ctx.stroke(),0===this.labelAngle?b.x=b.x-c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-this.tickLength-5:(b.y-=c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),b.x=0<this.labelAngle?b.x-c.textBlock.width*\nMath.cos(Math.PI/180*this.labelAngle)-this.tickLength-5:b.x-c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)+(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.sin(Math.PI/180*this.labelAngle)-this.tickLength)):\"right\"===this._position&&(q=1===this.ctx.lineWidth%2?(b.y<<0)+0.5:b.y<<0,this.ctx.beginPath(),this.ctx.moveTo(b.x<<0,q),this.ctx.lineTo(b.x+this.tickLength<<0,q),this.ctx.stroke(),0===this.labelAngle?b.x=b.x+this.tickLength+5:(b.y=0>this.labelAngle?b.y:b.y-(c.textBlock.height-c.textBlock.fontSize/\n2-5)*Math.cos(Math.PI/180*this.labelAngle),b.x=0<this.labelAngle?b.x+(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.sin(Math.PI/180*this.labelAngle)+this.tickLength:b.x+this.tickLength+5));c.textBlock.x=b.x;c.textBlock.y=b.y;t.push(c)}else m._thicknessType===a&&(c.textBlock.angle=-90,\"bottom\"===this._position?(c.textBlock.maxWidth=this.options.stripLines[f].labelMaxWidth?this.options.stripLines[f].labelMaxWidth:this.chart.plotArea.height-3,c.textBlock.measureText(),b.x-c.textBlock.height-m.thickness/\n2>this.chart.plotArea.x1?p(m.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,p(m.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===c.textBlock.angle?\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+\nc.textBlock.width+3:\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):\"top\"===this._position?(c.textBlock.maxWidth=this.options.stripLines[f].labelMaxWidth?this.options.stripLines[f].labelMaxWidth:this.chart.plotArea.height-3,c.textBlock.measureText(),b.x-c.textBlock.height-m.thickness/2>this.chart.plotArea.x1?p(m.startValue)?b.x-=c.textBlock.height-\nc.textBlock.fontSize/2+m.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,p(m.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===c.textBlock.angle?\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y1+\n3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):\"left\"===this._position?(c.textBlock.maxWidth=this.options.stripLines[f].labelMaxWidth?this.options.stripLines[f].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-m.thickness/2>this.chart.plotArea.y1?p(m.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y-=c.textBlock.height/\n2-c.textBlock.fontSize/2:p(m.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y+=c.textBlock.height/2-c.textBlock.fontSize+3,b.x=\"near\"===c.stripLine.labelAlign?this.chart.plotArea.x1+3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/2-c.textBlock.width/2:this.chart.plotArea.x2-c.textBlock.width-3):\"right\"===this._position&&(c.textBlock.maxWidth=this.options.stripLines[f].labelMaxWidth?this.options.stripLines[f].labelMaxWidth:this.chart.plotArea.width-\n3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-m.thickness/2>this.chart.plotArea.y1?p(m.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2:p(m.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2+3,b.x=\"near\"===c.stripLine.labelAlign?this.chart.plotArea.x2-c.textBlock.width-3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/\n2-c.textBlock.width/2:this.chart.plotArea.x1+3),c.textBlock.x=b.x,c.textBlock.y=b.y,t.push(c));if(!k){b=!1;this.ctx.save();this.ctx.beginPath();this.ctx.rect(this.chart.plotArea.x1,this.chart.plotArea.y1,this.chart.plotArea.width,this.chart.plotArea.height);this.ctx.clip();for(f=0;f<l.length;f++)m=l[f],m.showOnTop?d||(d=!0,this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){this.ctx.save();this.ctx.beginPath();this.ctx.rect(this.chart.plotArea.x1,this.chart.plotArea.y1,this.chart.plotArea.width,\nthis.chart.plotArea.height);this.ctx.clip();for(h=0;h<l.length;h++)m=l[h],m.showOnTop&&m.render();this.ctx.restore()},m)):m.render();for(f=0;f<t.length;f++)c=t[f],c.stripLine.showOnTop?b||(b=!0,this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(h=0;h<t.length;h++)c=t[h],\"inside\"===c.stripLine.labelPlacement&&c.stripLine.showOnTop&&(e.ctx.save(),e.ctx.beginPath(),e.ctx.rect(e.chart.plotArea.x1,e.chart.plotArea.y1,e.chart.plotArea.width,e.chart.plotArea.height),e.ctx.clip(),c.textBlock.render(!0),\ne.ctx.restore())},c.textBlock)):\"inside\"===c.stripLine.labelPlacement&&c.textBlock.render(!0);this.ctx.restore();k=!0}if(k)for(b=!1,f=0;f<t.length;f++)c=t[f],\"outside\"===c.stripLine.labelPlacement&&c.textBlock.render(!0)}};E.prototype.renderBreaksBackground=function(){this.chart._breaksCanvas&&(this.scaleBreaks&&0<this.scaleBreaks._appliedBreaks.length&&this.maskCanvas)&&(this.chart._breaksCanvasCtx.save(),this.chart._breaksCanvasCtx.beginPath(),this.chart._breaksCanvasCtx.rect(this.chart.plotArea.x1,\nthis.chart.plotArea.y1,this.chart.plotArea.width,this.chart.plotArea.height),this.chart._breaksCanvasCtx.clip(),this.chart._breaksCanvasCtx.drawImage(this.maskCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx.restore())};E.prototype.createMask=function(){if(this.scaleBreaks&&0<this.scaleBreaks._appliedBreaks.length){var a=this.scaleBreaks._appliedBreaks;v?(this.maskCanvas=va(this.chart.width,this.chart.height),this.maskCtx=this.maskCanvas.getContext(\"2d\")):(this.maskCanvas=\nthis.chart.plotArea.canvas,this.maskCtx=this.chart.plotArea.ctx);this.maskCtx.save();this.maskCtx.beginPath();this.maskCtx.rect(this.chart.plotArea.x1,this.chart.plotArea.y1,this.chart.plotArea.width,this.chart.plotArea.height);this.maskCtx.clip();for(var e=0;e<a.length;e++)a[e].endValue<this.viewportMinimum||(a[e].startValue>this.viewportMaximum||isNaN(this.range))||a[e].render(this.maskCtx);this.maskCtx.restore()}};E.prototype.renderCrosshair=function(a,e){isFinite(this.minimum)&&isFinite(this.maximum)&&\nthis.crosshair.render(a,e)};E.prototype.showCrosshair=function(a){p(a)||(a<this.viewportMinimum||a>this.viewportMaximum)||(\"top\"===this._position||\"bottom\"===this._position?this.crosshair.render(this.convertValueToPixel(a),null,a):this.crosshair.render(null,this.convertValueToPixel(a),a))};E.prototype.renderGrid=function(){if(this.gridThickness&&0<this.gridThickness){var a=this.chart.ctx;a.save();var e,c=this.chart.plotArea;a.lineWidth=this.gridThickness;a.strokeStyle=this.gridColor;a.setLineDash&&\na.setLineDash(H(this.gridDashType,this.gridThickness));if(\"bottom\"===this._position||\"top\"===this._position)for(b=0;b<this._labels.length;b++)this._labels[b].position<this.viewportMinimum||(this._labels[b].position>this.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),e=this.getPixelCoordinatesOnAxis(this._labels[b].position),e=1===a.lineWidth%2?(e.x<<0)+0.5:e.x<<0,a.moveTo(e,c.y1<<0),a.lineTo(e,c.y2<<0),a.stroke());else if(\"left\"===this._position||\"right\"===this._position)for(var b=\n0;b<this._labels.length;b++)this._labels[b].position<this.viewportMinimum||(this._labels[b].position>this.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),e=this.getPixelCoordinatesOnAxis(this._labels[b].position),e=1===a.lineWidth%2?(e.y<<0)+0.5:e.y<<0,a.moveTo(c.x1<<0,e),a.lineTo(c.x2<<0,e),a.stroke());a.restore()}};E.prototype.renderAxisLine=function(){var a=this.chart.ctx,e=v?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/\n(this.reversed?2:-2)),f,h;e.save();if(\"bottom\"===this._position||\"top\"===this._position){if(this.lineThickness){this.reversed?(f=this.lineCoordinates.x2,h=this.lineCoordinates.x1):(f=this.lineCoordinates.x1,h=this.lineCoordinates.x2);e.lineWidth=this.lineThickness;e.strokeStyle=this.lineColor?this.lineColor:\"black\";e.setLineDash&&e.setLineDash(H(this.lineDashType,this.lineThickness));var d=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;e.beginPath();if(this.scaleBreaks&&\n!p(this.scaleBreaks.firstBreakIndex))if(p(this.scaleBreaks.lastBreakIndex))f=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)e.moveTo(f,d),e.lineTo(this.scaleBreaks._appliedBreaks[l].startPixel+c,d),f=this.scaleBreaks._appliedBreaks[l].endPixel+b;f&&(e.moveTo(f,d),e.lineTo(h,d));e.stroke()}}else if((\"left\"===this._position||\"right\"===this._position)&&this.lineThickness){this.reversed?\n(f=this.lineCoordinates.y1,h=this.lineCoordinates.y2):(f=this.lineCoordinates.y2,h=this.lineCoordinates.y1);e.lineWidth=this.lineThickness;e.strokeStyle=this.lineColor;e.setLineDash&&e.setLineDash(H(this.lineDashType,this.lineThickness));d=1===this.lineThickness%2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;e.beginPath();if(this.scaleBreaks&&!p(this.scaleBreaks.firstBreakIndex))if(p(this.scaleBreaks.lastBreakIndex))f=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+\nc;else for(l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)e.moveTo(d,f),e.lineTo(d,this.scaleBreaks._appliedBreaks[l].startPixel+b),f=this.scaleBreaks._appliedBreaks[l].endPixel+c;f&&(e.moveTo(d,f),e.lineTo(d,h));e.stroke()}v&&(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),e.clearRect(0,0,this.chart.width,\nthis.chart.height));e.restore()};E.prototype.getPixelCoordinatesOnAxis=function(a){var e={};if(\"bottom\"===this._position||\"top\"===this._position)e.x=this.convertValueToPixel(a),e.y=this.lineCoordinates.y1;if(\"left\"===this._position||\"right\"===this._position)e.y=this.convertValueToPixel(a),e.x=this.lineCoordinates.x2;return e};E.prototype.convertPixelToValue=function(a){if(\"undefined\"===typeof a)return null;var e=0,c=0,b,e=!0,f=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c=\"number\"===typeof a?\na:\"left\"===this._position||\"right\"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===(\"left\"===this._position||\"right\"===this._position)!==this.reversed)for(c=0;c<f.length;c++){if(!(f[c].endValue<this.conversionParameters.minimum))if(e)if(f[c].startValue<this.conversionParameters.minimum){if(1<f[c].size&&this.conversionParameters.minimum*Math.pow(f[c].endValue/\nf[c].startValue,Math.log(b)/Math.log(f[c].size))<f[c].endValue){a=Math.pow(f[c].endValue/f[c].startValue,Math.log(b)/Math.log(f[c].size));break}else a*=f[c].endValue/this.conversionParameters.minimum/Math.pow(f[c].size,Math.log(f[c].endValue/this.conversionParameters.minimum)/Math.log(f[c].endValue/f[c].startValue)),b/=Math.pow(f[c].size,Math.log(f[c].endValue/this.conversionParameters.minimum)/Math.log(f[c].endValue/f[c].startValue));e=!1}else if(b>f[c].startValue/this.conversionParameters.minimum){b/=\nf[c].startValue/this.conversionParameters.minimum;if(b<f[c].size){a*=Math.pow(f[c].endValue/f[c].startValue,1===f[c].size?1:Math.log(b)/Math.log(f[c].size))/b;break}else a*=f[c].endValue/f[c].startValue/f[c].size;b/=f[c].size;e=!1}else break;else if(b>f[c].startValue/f[c-1].endValue){b/=f[c].startValue/f[c-1].endValue;if(b<f[c].size){a*=Math.pow(f[c].endValue/f[c].startValue,1===f[c].size?1:Math.log(b)/Math.log(f[c].size))/b;break}else a*=f[c].endValue/f[c].startValue/f[c].size;b/=f[c].size}else break}else for(c=\nf.length-1;0<=c;c--)if(!(f[c].startValue>this.conversionParameters.minimum))if(e)if(f[c].endValue>this.conversionParameters.minimum){if(1<f[c].size&&this.conversionParameters.minimum*Math.pow(f[c].endValue/f[c].startValue,Math.log(b)/Math.log(f[c].size))>f[c].startValue){a=Math.pow(f[c].endValue/f[c].startValue,Math.log(b)/Math.log(f[c].size));break}else a*=f[c].startValue/this.conversionParameters.minimum*Math.pow(f[c].size,Math.log(f[c].startValue/this.conversionParameters.minimum)/Math.log(f[c].endValue/\nf[c].startValue))*b,b*=Math.pow(f[c].size,Math.log(this.conversionParameters.minimum/f[c].startValue)/Math.log(f[c].endValue/f[c].startValue));e=!1}else if(b<f[c].endValue/this.conversionParameters.minimum){b/=f[c].endValue/this.conversionParameters.minimum;if(b>1/f[c].size){a*=Math.pow(f[c].endValue/f[c].startValue,1>=f[c].size?1:Math.log(b)/Math.log(f[c].size))*b;break}else a/=f[c].endValue/f[c].startValue/f[c].size;b*=f[c].size;e=!1}else break;else if(b<f[c].endValue/f[c+1].startValue){b/=f[c].endValue/\nf[c+1].startValue;if(b>1/f[c].size){a*=Math.pow(f[c].endValue/f[c].startValue,1>=f[c].size?1:Math.log(b)/Math.log(f[c].size))*b;break}else a/=f[c].endValue/f[c].startValue/f[c].size;b*=f[c].size}else break;e=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit;if(c<=this.conversionParameters.reference===(\"left\"===this._position||\"right\"===this._position)!==this.reversed)for(c=0;c<f.length;c++){if(!(f[c].endValue<this.conversionParameters.minimum))if(e)if(f[c].startValue<\nthis.conversionParameters.minimum){if(f[c].size&&this.conversionParameters.minimum+b*(f[c].endValue-f[c].startValue)/f[c].size<f[c].endValue){a=0>=f[c].size?0:b*(f[c].endValue-f[c].startValue)/f[c].size;break}else a+=f[c].endValue-this.conversionParameters.minimum-f[c].size*(f[c].endValue-this.conversionParameters.minimum)/(f[c].endValue-f[c].startValue),b-=f[c].size*(f[c].endValue-this.conversionParameters.minimum)/(f[c].endValue-f[c].startValue);e=!1}else if(b>f[c].startValue-this.conversionParameters.minimum){b-=\nf[c].startValue-this.conversionParameters.minimum;if(b<f[c].size){a+=(f[c].endValue-f[c].startValue)*(0===f[c].size?1:b/f[c].size)-b;break}else a+=f[c].endValue-f[c].startValue-f[c].size;b-=f[c].size;e=!1}else break;else if(b>f[c].startValue-f[c-1].endValue){b-=f[c].startValue-f[c-1].endValue;if(b<f[c].size){a+=(f[c].endValue-f[c].startValue)*(0===f[c].size?1:b/f[c].size)-b;break}else a+=f[c].endValue-f[c].startValue-f[c].size;b-=f[c].size}else break}else for(c=f.length-1;0<=c;c--)if(!(f[c].startValue>\nthis.conversionParameters.minimum))if(e)if(f[c].endValue>this.conversionParameters.minimum)if(f[c].size&&this.conversionParameters.minimum+b*(f[c].endValue-f[c].startValue)/f[c].size>f[c].startValue){a=0>=f[c].size?0:b*(f[c].endValue-f[c].startValue)/f[c].size;break}else a+=f[c].startValue-this.conversionParameters.minimum+f[c].size*(this.conversionParameters.minimum-f[c].startValue)/(f[c].endValue-f[c].startValue),b+=f[c].size*(this.conversionParameters.minimum-f[c].startValue)/(f[c].endValue-f[c].startValue),\ne=!1;else if(b<f[c].endValue-this.conversionParameters.minimum){b-=f[c].endValue-this.conversionParameters.minimum;if(b>-1*f[c].size){a+=(f[c].endValue-f[c].startValue)*(0===f[c].size?1:b/f[c].size)+b;break}else a-=f[c].endValue-f[c].startValue-f[c].size;b+=f[c].size;e=!1}else break;else if(b<f[c].endValue-f[c+1].startValue){b-=f[c].endValue-f[c+1].startValue;if(b>-1*f[c].size){a+=(f[c].endValue-f[c].startValue)*(0===f[c].size?1:b/f[c].size)+b;break}else a-=f[c].endValue-f[c].startValue-f[c].size;\nb+=f[c].size}else break;e=this.conversionParameters.minimum+a}return e};E.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:\"axisX\"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+\n0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};E.prototype.getApparentDifference=function(a,e,c,b){var f=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];if(this.logarithmic){c=p(c)?e/a:c;for(var h=0;h<f.length&&!(e<f[h].startValue);h++)a>f[h].endValue||(a<=f[h].startValue&&e>=f[h].endValue?c=c/f[h].endValue*f[h].startValue*f[h].size:a>=f[h].startValue&&e>=f[h].endValue?c=c/f[h].endValue*a*Math.pow(f[h].size,Math.log(f[h].endValue/\na)/Math.log(f[h].endValue/f[h].startValue)):a<=f[h].startValue&&e<=f[h].endValue?c=c/e*f[h].startValue*Math.pow(f[h].size,Math.log(e/f[h].startValue)/Math.log(f[h].endValue/f[h].startValue)):!b&&(a>f[h].startValue&&e<f[h].endValue)&&(c=a*Math.pow(f[h].size,Math.log(e/a)/Math.log(f[h].endValue/f[h].startValue))))}else for(c=p(c)?Math.abs(e-a):c,h=0;h<f.length&&!(e<f[h].startValue);h++)a>f[h].endValue||(a<=f[h].startValue&&e>=f[h].endValue?c=c-f[h].endValue+f[h].startValue+f[h].size:a>f[h].startValue&&\ne>=f[h].endValue?c=c-f[h].endValue+a+f[h].size*(f[h].endValue-a)/(f[h].endValue-f[h].startValue):a<=f[h].startValue&&e<f[h].endValue?c=c-e+f[h].startValue+f[h].size*(e-f[h].startValue)/(f[h].endValue-f[h].startValue):!b&&(a>f[h].startValue&&e<f[h].endValue)&&(c=a+f[h].size*(e-a)/(f[h].endValue-f[h].startValue)));return c};E.prototype.setViewPortRange=function(a,e){this.sessionVariables.newViewportMinimum=this.viewportMinimum=Math.min(a,e);this.sessionVariables.newViewportMaximum=this.viewportMaximum=\nMath.max(a,e)};E.prototype.getXValueAt=function(a){if(!a)return null;var e=null;\"left\"===this._position?e=this.convertPixelToValue(a.y):\"bottom\"===this._position&&(e=this.convertPixelToValue(a.x));return e};E.prototype.calculateValueToPixelConversionParameters=function(a){a=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];var e={pixelPerUnit:null,minimum:null,reference:null},c=this.lineCoordinates.width,b=this.lineCoordinates.height,c=\"bottom\"===this._position||\"top\"===this._position?c:b,b=Math.abs(this.range);\nif(this.logarithmic)for(var f=0;f<a.length&&!(this.viewportMaximum<a[f].startValue);f++)this.viewportMinimum>a[f].endValue||(this.viewportMinimum>=a[f].startValue&&this.viewportMaximum<=a[f].endValue?c=0:this.viewportMinimum<=a[f].startValue&&this.viewportMaximum>=a[f].endValue?(b=b/a[f].endValue*a[f].startValue,c=0<a[f].spacing.toString().indexOf(\"%\")?c*(1-parseFloat(a[f].spacing)/100):c-Math.min(a[f].spacing,0.1*c)):this.viewportMinimum>a[f].startValue&&this.viewportMaximum>=a[f].endValue?(b=b/\na[f].endValue*this.viewportMinimum,c=0<a[f].spacing.toString().indexOf(\"%\")?c*(1-parseFloat(a[f].spacing)/100*Math.log(a[f].endValue/this.viewportMinimum)/Math.log(a[f].endValue/a[f].startValue)):c-Math.min(a[f].spacing,0.1*c)*Math.log(a[f].endValue/this.viewportMinimum)/Math.log(a[f].endValue/a[f].startValue)):this.viewportMinimum<=a[f].startValue&&this.viewportMaximum<a[f].endValue&&(b=b/this.viewportMaximum*a[f].startValue,c=0<a[f].spacing.toString().indexOf(\"%\")?c*(1-parseFloat(a[f].spacing)/\n100*Math.log(this.viewportMaximum/a[f].startValue)/Math.log(a[f].endValue/a[f].startValue)):c-Math.min(a[f].spacing,0.1*c)*Math.log(this.viewportMaximum/a[f].startValue)/Math.log(a[f].endValue/a[f].startValue)));else for(f=0;f<a.length&&!(this.viewportMaximum<a[f].startValue);f++)this.viewportMinimum>a[f].endValue||(this.viewportMinimum>=a[f].startValue&&this.viewportMaximum<=a[f].endValue?c=0:this.viewportMinimum<=a[f].startValue&&this.viewportMaximum>=a[f].endValue?(b=b-a[f].endValue+a[f].startValue,\nc=0<a[f].spacing.toString().indexOf(\"%\")?c*(1-parseFloat(a[f].spacing)/100):c-Math.min(a[f].spacing,0.1*c)):this.viewportMinimum>a[f].startValue&&this.viewportMaximum>=a[f].endValue?(b=b-a[f].endValue+this.viewportMinimum,c=0<a[f].spacing.toString().indexOf(\"%\")?c*(1-parseFloat(a[f].spacing)/100*(a[f].endValue-this.viewportMinimum)/(a[f].endValue-a[f].startValue)):c-Math.min(a[f].spacing,0.1*c)*(a[f].endValue-this.viewportMinimum)/(a[f].endValue-a[f].startValue)):this.viewportMinimum<=a[f].startValue&&\nthis.viewportMaximum<a[f].endValue&&(b=b-this.viewportMaximum+a[f].startValue,c=0<a[f].spacing.toString().indexOf(\"%\")?c*(1-parseFloat(a[f].spacing)/100*(this.viewportMaximum-a[f].startValue)/(a[f].endValue-a[f].startValue)):c-Math.min(a[f].spacing,0.1*c)*(this.viewportMaximum-a[f].startValue)/(a[f].endValue-a[f].startValue)));e.minimum=this.viewportMinimum;e.maximum=this.viewportMaximum;e.range=b;if(\"bottom\"===this._position||\"top\"===this._position)this.logarithmic?(e.lnLogarithmBase=Math.log(this.logarithmBase),\ne.pixelPerUnit=(this.reversed?-1:1)*c*e.lnLogarithmBase/Math.log(Math.abs(b))):e.pixelPerUnit=(this.reversed?-1:1)*c/Math.abs(b),e.reference=this.reversed?this.lineCoordinates.x2:this.lineCoordinates.x1;if(\"left\"===this._position||\"right\"===this._position)this.logarithmic?(e.lnLogarithmBase=Math.log(this.logarithmBase),e.pixelPerUnit=(this.reversed?1:-1)*c*e.lnLogarithmBase/Math.log(Math.abs(b))):e.pixelPerUnit=(this.reversed?1:-1)*c/Math.abs(b),e.reference=this.reversed?this.lineCoordinates.y1:this.lineCoordinates.y2;\nthis.conversionParameters=e};E.prototype.calculateAxisParameters=function(){if(this.logarithmic)this.calculateLogarithmicAxisParameters();else{var a=this.chart.layoutManager.getFreeSpace(),e=!1,c=!1;\"bottom\"===this._position||\"top\"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a=\"axisX\"===this.type?\"xySwapped\"===this.chart.plotInfo.axisPlacement?62:70:\"xySwapped\"===this.chart.plotInfo.axisPlacement?50:40,b=4;\"axisX\"===this.type&&\n(b=600>this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),f,h,d,b=0;!p(this.options.viewportMinimum)&&(!p(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null);if(p(this.options.viewportMinimum)&&!p(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=\nthis.minimum;if(p(this.options.viewportMaximum)&&!p(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b<this.scaleBreaks._appliedBreaks.length;b++)if((!p(this.sessionVariables.newViewportMinimum)&&this.sessionVariables.newViewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue||\n!p(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!p(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!p(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!p(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!p(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,\n1);break}if(\"axisX\"===this.type){if(this.dataSeries&&0<this.dataSeries.length)for(f=0;f<this.dataSeries.length;f++)\"dateTime\"===this.dataSeries[f].xValueType&&(c=!0);f=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin;h=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax;0===h-f&&(b=\"undefined\"===typeof this.options.interval?0.4:this.options.interval,h+=b,f-=b);Infinity!==this.dataInfo.minDiff?d=this.dataInfo.minDiff:1<h-f?d=0.5*Math.abs(h-f):(d=1,c&&\n(e=!0))}else\"axisY\"===this.type&&(f=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,h=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,isFinite(f)||isFinite(h)?isFinite(f)?isFinite(h)||(h=f):f=h:(h=\"undefined\"===typeof this.options.interval?-Infinity:this.options.interval,f=\"undefined\"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),0===f&&0===h?(h+=9,f=0):0===h-f?(b=Math.min(Math.abs(0.01*Math.abs(h)),5),h+=b,f-=b):\nf>h?(b=Math.min(0.01*Math.abs(this.getApparentDifference(h,f,null,!0)),5),0<=h?f=h-b:h=isFinite(f)?f+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,h,null,!0)),0.05),0!==h&&(h+=b),0!==f&&(f-=b)),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1<h-f?0.5*Math.abs(h-f):1,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&0<f&&(f=0),this.includeZero&&(null===this.viewportMaximum||isNaN(this.viewportMaximum))&&0>h&&(h=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||\nnull===this.viewportMinimum?f:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?h:this.viewportMaximum,null,!0);if(\"axisX\"===this.type&&c){this.valueType=\"dateTime\";this.intervalType||(b/1<=a?(this.interval=1,this.intervalType=\"millisecond\"):b/2<=a?(this.interval=2,this.intervalType=\"millisecond\"):b/5<=a?(this.interval=5,this.intervalType=\"millisecond\"):b/10<=a?(this.interval=10,this.intervalType=\"millisecond\"):b/20<=a?(this.interval=20,this.intervalType=\"millisecond\"):\nb/50<=a?(this.interval=50,this.intervalType=\"millisecond\"):b/100<=a?(this.interval=100,this.intervalType=\"millisecond\"):b/200<=a?(this.interval=200,this.intervalType=\"millisecond\"):b/250<=a?(this.interval=250,this.intervalType=\"millisecond\"):b/300<=a?(this.interval=300,this.intervalType=\"millisecond\"):b/400<=a?(this.interval=400,this.intervalType=\"millisecond\"):b/500<=a?(this.interval=500,this.intervalType=\"millisecond\"):b/(1*U.secondDuration)<=a?(this.interval=1,this.intervalType=\"second\"):b/(2*\nU.secondDuration)<=a?(this.interval=2,this.intervalType=\"second\"):b/(5*U.secondDuration)<=a?(this.interval=5,this.intervalType=\"second\"):b/(10*U.secondDuration)<=a?(this.interval=10,this.intervalType=\"second\"):b/(15*U.secondDuration)<=a?(this.interval=15,this.intervalType=\"second\"):b/(20*U.secondDuration)<=a?(this.interval=20,this.intervalType=\"second\"):b/(30*U.secondDuration)<=a?(this.interval=30,this.intervalType=\"second\"):b/(1*U.minuteDuration)<=a?(this.interval=1,this.intervalType=\"minute\"):b/\n(2*U.minuteDuration)<=a?(this.interval=2,this.intervalType=\"minute\"):b/(5*U.minuteDuration)<=a?(this.interval=5,this.intervalType=\"minute\"):b/(10*U.minuteDuration)<=a?(this.interval=10,this.intervalType=\"minute\"):b/(15*U.minuteDuration)<=a?(this.interval=15,this.intervalType=\"minute\"):b/(20*U.minuteDuration)<=a?(this.interval=20,this.intervalType=\"minute\"):b/(30*U.minuteDuration)<=a?(this.interval=30,this.intervalType=\"minute\"):b/(1*U.hourDuration)<=a?(this.interval=1,this.intervalType=\"hour\"):b/\n(2*U.hourDuration)<=a?(this.interval=2,this.intervalType=\"hour\"):b/(3*U.hourDuration)<=a?(this.interval=3,this.intervalType=\"hour\"):b/(6*U.hourDuration)<=a?(this.interval=6,this.intervalType=\"hour\"):b/(1*U.dayDuration)<=a?(this.interval=1,this.intervalType=\"day\"):b/(2*U.dayDuration)<=a?(this.interval=2,this.intervalType=\"day\"):b/(4*U.dayDuration)<=a?(this.interval=4,this.intervalType=\"day\"):b/(1*U.weekDuration)<=a?(this.interval=1,this.intervalType=\"week\"):b/(2*U.weekDuration)<=a?(this.interval=2,\nthis.intervalType=\"week\"):b/(3*U.weekDuration)<=a?(this.interval=3,this.intervalType=\"week\"):b/(1*U.monthDuration)<=a?(this.interval=1,this.intervalType=\"month\"):b/(2*U.monthDuration)<=a?(this.interval=2,this.intervalType=\"month\"):b/(3*U.monthDuration)<=a?(this.interval=3,this.intervalType=\"month\"):b/(6*U.monthDuration)<=a?(this.interval=6,this.intervalType=\"month\"):(this.interval=b/(1*U.yearDuration)<=a?1:b/(2*U.yearDuration)<=a?2:b/(4*U.yearDuration)<=a?4:Math.floor(E.getNiceNumber(b/(a-1),!0)/\nU.yearDuration),this.intervalType=\"year\"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=f-d/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=h+d/2;e?this.autoValueFormatString=\"MMM DD YYYY HH:mm\":\"year\"===this.intervalType?this.autoValueFormatString=\"YYYY\":\"month\"===this.intervalType?this.autoValueFormatString=\"MMM YYYY\":\"week\"===this.intervalType?this.autoValueFormatString=\"MMM DD YYYY\":\"day\"===this.intervalType?this.autoValueFormatString=\n\"MMM DD YYYY\":\"hour\"===this.intervalType?this.autoValueFormatString=\"hh:mm TT\":\"minute\"===this.intervalType?this.autoValueFormatString=\"hh:mm TT\":\"second\"===this.intervalType?this.autoValueFormatString=\"hh:mm:ss TT\":\"millisecond\"===this.intervalType&&(this.autoValueFormatString=\"fff'ms'\");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType=\"number\";b=E.getNiceNumber(b,!1);this.interval=this.options&&0<this.options.interval?this.options.interval:E.getNiceNumber(b/\n(a-1),!0);if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=\"axisX\"===this.type?f-d/2:Math.floor(f/this.interval)*this.interval;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=\"axisX\"===this.type?h+d/2:Math.ceil(h/this.interval)*this.interval;0===this.viewportMaximum&&0===this.viewportMinimum&&(0===this.options.viewportMinimum?this.viewportMaximum+=10:0===this.options.viewportMaximum&&(this.viewportMinimum-=10),this.options&&\"undefined\"===\ntypeof this.options.interval&&(this.interval=E.getNiceNumber((this.viewportMaximum-this.viewportMinimum)/(a-1),!0)))}if(null===this.minimum||null===this.maximum)if(\"axisX\"===this.type?(f=null!==this.minimum?this.minimum:this.dataInfo.min,h=null!==this.maximum?this.maximum:this.dataInfo.max,0===h-f&&(b=\"undefined\"===typeof this.options.interval?0.4:this.options.interval,h+=b,f-=b),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1<h-f?0.5*Math.abs(h-f):1):\"axisY\"===this.type&&(f=null!==this.minimum?\nthis.minimum:this.dataInfo.min,h=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(f)||isFinite(h)?0===f&&0===h?(h+=9,f=0):0===h-f?(b=Math.min(Math.abs(0.01*Math.abs(h)),5),h+=b,f-=b):f>h?(b=Math.min(0.01*Math.abs(this.getApparentDifference(h,f,null,!0)),5),0<=h?f=h-b:h=isFinite(f)?f+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,h,null,!0)),0.05),0!==h&&(h+=b),0!==f&&(f-=b)):(h=\"undefined\"===typeof this.options.interval?-Infinity:this.options.interval,f=\"undefined\"!==typeof this.options.interval||\nisFinite(this.dataInfo.minDiff)?0:Infinity),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1<h-f?0.5*Math.abs(h-f):1,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&0<f&&(f=0),this.includeZero&&(null===this.maximum||isNaN(this.maximum))&&0>h&&(h=0)),Math.abs(this.getApparentDifference(f,h,null,!0)),\"axisX\"===this.type&&c){this.valueType=\"dateTime\";if(null===this.minimum||isNaN(this.minimum))this.minimum=f-d/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||\nisNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum=h+d/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType=\"number\",null===this.minimum&&(this.minimum=\"axisX\"===this.type?f-d/2:Math.floor(f/this.interval)*this.interval,this.minimum=Math.min(this.minimum,\nnull===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)),null===this.maximum&&(this.maximum=\"axisX\"===this.type?h+d/2:Math.ceil(h/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===\nthis.options.maximum&&(this.minimum-=10));p(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));p(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition=\"axisX\"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/\nthis.interval)*this.interval;this.valueFormatString||(this.valueFormatString=E.generateValueFormatString(this.range,2))}};E.prototype.calculateLogarithmicAxisParameters=function(){var a=this.chart.layoutManager.getFreeSpace(),e=Math.log(this.logarithmBase),c;\"bottom\"===this._position||\"top\"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a=\"axisX\"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/\n50),3),b,f,h,d;d=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(d=0;d<this.scaleBreaks._appliedBreaks.length;d++)if((!p(this.sessionVariables.newViewportMinimum)&&this.sessionVariables.newViewportMinimum>=this.scaleBreaks._appliedBreaks[d].startValue||!p(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[d].startValue||\n!p(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[d].startValue)&&(!p(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[d].endValue||!p(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[d].endValue||!p(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[d].endValue)){this.scaleBreaks._appliedBreaks.splice(d,1);break}\"axisX\"===this.type?\n(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,f=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,1===f/b&&(d=Math.pow(this.logarithmBase,\"undefined\"===typeof this.options.interval?0.4:this.options.interval),f*=d,b/=d),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:f/b>this.logarithmBase?f/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):\"axisY\"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,\nf=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(f)?(f=\"undefined\"===typeof this.options.interval?0:this.options.interval,b=1):0>=b?b=f:isFinite(f)||(f=b),1===b&&1===f?(f*=this.logarithmBase-1/this.logarithmBase,b=1):1===f/b?(d=Math.min(f*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),f*=d,b/=d):b>f?(d=Math.min(b/f*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=f?b=f/d:f=b*d):(d=Math.min(f/b*Math.pow(this.logarithmBase,\n0.01),Math.pow(this.logarithmBase,0.04)),1!==f&&(f*=d),1!==b&&(b/=d)),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:f/b>this.logarithmBase?f/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&1<b&&(b=1),this.includeZero&&(null===this.viewportMaximum||isNaN(this.viewportMaximum))&&1>f&&(f=1));d=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?f:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===\nthis.viewportMinimum?b:this.viewportMinimum);var l=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?f:this.viewportMaximum)-(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType=\"number\";d=Math.pow(this.logarithmBase,E.getNiceNumber(Math.abs(Math.log(d)/e),!1));this.options&&0<this.options.interval?this.interval=this.options.interval:(this.interval=E.getNiceExponent(Math.log(d)/e/(a-1),!0),c=E.getNiceNumber(l/(a-1),!0));if(null===this.viewportMinimum||\nisNaN(this.viewportMinimum))this.viewportMinimum=\"axisX\"===this.type?b/Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/e/this.interval));if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=\"axisX\"===this.type?f*Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(f)/e/this.interval));1===this.viewportMaximum&&1===this.viewportMinimum&&(1===this.options.viewportMinimum?this.viewportMaximum*=this.logarithmBase-1/this.logarithmBase:\n1===this.options.viewportMaximum&&(this.viewportMinimum/=this.logarithmBase-1/this.logarithmBase),this.options&&\"undefined\"===typeof this.options.interval&&(this.interval=E.getNiceExponent(Math.ceil(Math.log(d)/e)/(a-1)),c=E.getNiceNumber((this.viewportMaximum-this.viewportMinimum)/(a-1),!0)));if(null===this.minimum||null===this.maximum)\"axisX\"===this.type?(b=null!==this.minimum?this.minimum:this.dataInfo.min,f=null!==this.maximum?this.maximum:this.dataInfo.max,1===f/b&&(d=Math.pow(this.logarithmBase,\n\"undefined\"===typeof this.options.interval?0.4:this.options.interval),f*=d,b/=d),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:f/b>this.logarithmBase?f/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):\"axisY\"===this.type&&(b=null!==this.minimum?this.minimum:this.dataInfo.min,f=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(f)?1===b&&1===f?(f*=this.logarithmBase,b/=this.logarithmBase):1===f/b?(d=Math.pow(this.logarithmBase,this.interval),f*=d,b/=d):b>f?(d=\nMath.min(0.01*(b/f),5),1<=f?b=f/d:f=b*d):(d=Math.min(f/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==f&&(f*=d),1!==b&&(b/=d)):(f=\"undefined\"===typeof this.options.interval?0:this.options.interval,b=1),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:f/b>this.logarithmBase?f/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1<b&&(b=1),this.includeZero&&(null===this.maximum||isNaN(this.maximum))&&\n1>f&&(f=1)),this.intervalType=\"number\",null===this.minimum&&(this.minimum=\"axisX\"===this.type?b/Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/e/this.interval)),p(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?\"undefined\"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||\nisNaN(this.sessionVariables.viewportMinimum)?\"undefined\"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum=\"axisX\"===this.type?f*Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(f)/e/this.interval)),p(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?\"undefined\"===typeof this.sessionVariables.newViewportMaximum?\n0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?\"undefined\"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=\nthis.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum||this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/\nMath.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(e*this.interval)+0.2)*this.interval);this.range=this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.range<Math.pow(this.logarithmBase,8>this.viewportMaximum||3>a?2:3)){for(e=Math.floor(this.viewportMinimum/c+0.5)*c;e<this.viewportMinimum;)e+=c;this.equidistantInterval=\n!1;this.intervalStartPosition=e;this.interval=c}else this.options.interval||(c=Math.ceil(this.interval),this.range>this.interval&&(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(e*this.interval)+0.2)*this.interval))),this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString=\"#,##0.##\",1>this.viewportMinimum)){e=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(e)||!isFinite(e))e=2;\nif(2<e)for(d=0;d<e-2;d++)this.valueFormatString+=\"#\"}};E.generateValueFormatString=function(a,e){var c=\"#,##0.\",b=e;1>a&&(b+=Math.floor(Math.abs(Math.log(a)/Math.LN10)),isNaN(b)||!isFinite(b))&&(b=e);for(var f=0;f<b;f++)c+=\"#\";return c};E.getNiceExponent=function(a,e){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=0>c?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};E.getNiceNumber=function(a,e){var c=Math.floor(Math.log(a)/\nMath.LN10),b=a/Math.pow(10,c),b=e?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};E.prototype.getLabelStartPoint=function(){var a=U[this.intervalType+\"Duration\"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if(\"millisecond\"!==this.intervalType)if(\"second\"===this.intervalType)0<a.getMilliseconds()&&(a.setSeconds(a.getSeconds()+1),a.setMilliseconds(0));else if(\"minute\"===this.intervalType){if(0<a.getSeconds()||\n0<a.getMilliseconds())a.setMinutes(a.getMinutes()+1),a.setSeconds(0),a.setMilliseconds(0)}else if(\"hour\"===this.intervalType){if(0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setHours(a.getHours()+1),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else if(\"day\"===this.intervalType){if(0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setDate(a.getDate()+1),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else if(\"week\"===this.intervalType){if(0<\na.getDay()||0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setDate(a.getDate()+(7-a.getDay())),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else if(\"month\"===this.intervalType){if(1<a.getDate()||0<a.getHours()||0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)}else\"year\"===this.intervalType&&(0<a.getMonth()||1<a.getDate()||0<a.getHours()||\n0<a.getMinutes()||0<a.getSeconds()||0<a.getMilliseconds())&&(a.setFullYear(a.getFullYear()+1),a.setMonth(0),a.setDate(1),a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0));return a};pa(ea,K);pa(ca,K);ca.prototype.createUserOptions=function(a){if(\"undefined\"!==typeof a||this.options._isPlaceholder){var e=0;this.parent.options._isPlaceholder&&this.parent.createUserOptions();this.options._isPlaceholder||(Da(this.parent[this.optionsName]),e=this.parent.options[this.optionsName].indexOf(this.options));\nthis.options=\"undefined\"===typeof a?{}:a;this.parent.options[this.optionsName][e]=this.options}};ca.prototype.render=function(a){if(0!==this.spacing||0!==this.options.lineThickness&&(\"undefined\"!==typeof this.options.lineThickness||0!==this.parent.lineThickness)){var e=this.ctx,c=this.ctx.globalAlpha;this.ctx=a||this.ctx;this.ctx.save();this.ctx.beginPath();this.ctx.rect(this.chart.plotArea.x1,this.chart.plotArea.y1,this.chart.plotArea.width,this.chart.plotArea.height);this.ctx.clip();var b=this.scaleBreaks.parent.getPixelCoordinatesOnAxis(this.startValue),\nf=this.scaleBreaks.parent.getPixelCoordinatesOnAxis(this.endValue);this.ctx.strokeStyle=this.lineColor;this.ctx.fillStyle=this.color;this.ctx.beginPath();this.ctx.globalAlpha=1;T(this.id);var d,l,p,t,k,m;a=Math.max(this.spacing,3);var q=Math.max(0,this.lineThickness);this.ctx.lineWidth=q;this.ctx.setLineDash&&this.ctx.setLineDash(H(this.lineDashType,q));if(\"bottom\"===this.scaleBreaks.parent._position||\"top\"===this.scaleBreaks.parent._position)if(b=1===q%2?(b.x<<0)+0.5:b.x<<0,l=1===q%2?(f.x<<0)+0.5:\nf.x<<0,\"top\"===this.scaleBreaks.parent._position?(f=this.chart.plotArea.y1,p=this.chart.plotArea.y2+q/2+0.5<<0):(f=this.chart.plotArea.y2,p=this.chart.plotArea.y1-q/2+0.5<<0,a*=-1),this.bounds={x1:b-q/2,y1:f,x2:l+q/2,y2:p},this.ctx.moveTo(b,f),\"straight\"===this.type||\"top\"===this.scaleBreaks.parent._position&&0>=a||\"bottom\"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,p),this.ctx.lineTo(l,p),this.ctx.lineTo(l,f);else if(\"wavy\"===this.type){t=b;k=f;d=0.5;m=(p-k)/a/3;for(var n=0;n<m;n++)this.ctx.bezierCurveTo(t+\nd*a,k+a,t+d*a,k+2*a,t,k+3*a),k+=3*a,d*=-1;this.ctx.bezierCurveTo(t+d*a,k+a,t+d*a,k+2*a,t,k+3*a);t=l;d*=-1;this.ctx.lineTo(t,k);for(n=0;n<m;n++)this.ctx.bezierCurveTo(t+d*a,k-a,t+d*a,k-2*a,t,k-3*a),k-=3*a,d*=-1}else{if(\"zigzag\"===this.type){d=-1;k=f+a;t=b+a;m=(p-k)/a/2;for(n=0;n<m;n++)this.ctx.lineTo(t,k),t+=2*d*a,k+=2*a,d*=-1;this.ctx.lineTo(t,k);t+=l-b;for(n=0;n<m+1;n++)this.ctx.lineTo(t,k),t+=2*d*a,k-=2*a,d*=-1;this.ctx.lineTo(t+d*a,k+a)}}else if(\"left\"===this.scaleBreaks.parent._position||\"right\"===\nthis.scaleBreaks.parent._position)if(f=1===q%2?(f.y<<0)+0.5:f.y<<0,p=1===q%2?(b.y<<0)+0.5:b.y<<0,\"left\"===this.scaleBreaks.parent._position?(b=this.chart.plotArea.x1,l=this.chart.plotArea.x2+q/2+0.5<<0):(b=this.chart.plotArea.x2,l=this.chart.plotArea.x1-q/2+0.5<<0,a*=-1),this.bounds={x1:b,y1:f-q/2,x2:l,y2:p+q/2},this.ctx.moveTo(b,f),\"straight\"===this.type||\"left\"===this.scaleBreaks.parent._position&&0>=a||\"right\"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(l,f),this.ctx.lineTo(l,p),\nthis.ctx.lineTo(b,p);else if(\"wavy\"===this.type){t=b;k=f;d=0.5;m=(l-t)/a/3;for(n=0;n<m;n++)this.ctx.bezierCurveTo(t+a,k+d*a,t+2*a,k+d*a,t+3*a,k),t+=3*a,d*=-1;this.ctx.bezierCurveTo(t+a,k+d*a,t+2*a,k+d*a,t+3*a,k);k=p;d*=-1;this.ctx.lineTo(t,k);for(n=0;n<m;n++)this.ctx.bezierCurveTo(t-a,k+d*a,t-2*a,k+d*a,t-3*a,k),t-=3*a,d*=-1}else if(\"zigzag\"===this.type){d=1;k=f-a;t=b+a;m=(l-t)/a/2;for(n=0;n<m;n++)this.ctx.lineTo(t,k),k+=2*d*a,t+=2*a,d*=-1;this.ctx.lineTo(t,k);k+=p-f;for(n=0;n<m+1;n++)this.ctx.lineTo(t,\nk),k+=2*d*a,t-=2*a,d*=-1;this.ctx.lineTo(t+a,k+d*a)}0<q&&this.ctx.stroke();this.ctx.closePath();this.ctx.globalAlpha=this.fillOpacity;this.ctx.globalCompositeOperation=\"destination-over\";this.ctx.fill();this.ctx.restore();this.ctx.globalAlpha=c;this.ctx=e}};pa(P,K);P.prototype.createUserOptions=function(a){if(\"undefined\"!==typeof a||this.options._isPlaceholder){var e=0;this.parent.options._isPlaceholder&&this.parent.createUserOptions();this.options._isPlaceholder||(Da(this.parent.stripLines),e=this.parent.options.stripLines.indexOf(this.options));\nthis.options=\"undefined\"===typeof a?{}:a;this.parent.options.stripLines[e]=this.options}};P.prototype.render=function(){this.ctx.save();var a=this.parent.getPixelCoordinatesOnAxis(this.value),e=Math.abs(\"pixel\"===this._thicknessType?this.thickness:Math.abs(this.parent.convertValueToPixel(this.endValue)-this.parent.convertValueToPixel(this.startValue)));if(0<e){var c=null===this.opacity?1:this.opacity;this.ctx.strokeStyle=this.color;this.ctx.beginPath();var b=this.ctx.globalAlpha;this.ctx.globalAlpha=\nc;T(this.id);var f,d,l,p;this.ctx.lineWidth=e;this.ctx.setLineDash&&this.ctx.setLineDash(H(this.lineDashType,e));if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)f=d=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,l=this.chart.plotArea.y1,p=this.chart.plotArea.y2,this.bounds={x1:f-e/2,y1:l,x2:d+e/2,y2:p};else if(\"left\"===this.parent._position||\"right\"===this.parent._position)l=p=1===this.ctx.lineWidth%2?(a.y<<0)+0.5:a.y<<0,f=this.chart.plotArea.x1,d=this.chart.plotArea.x2,this.bounds=\n{x1:f,y1:l-e/2,x2:d,y2:p+e/2};this.ctx.moveTo(f,l);this.ctx.lineTo(d,p);this.ctx.stroke();this.ctx.globalAlpha=b}this.ctx.restore()};pa(da,K);da.prototype.showAt=function(a){if(!this.enabled)return!1;var e=this.chart,c=!1;e.resetOverlayedCanvas();e.clearedOverlayedCanvas=this.parent.type;this.chart.renderCrosshairs(this.parent);if(\"xySwapped\"===e.plotInfo.axisPlacement)if(\"bottom\"===this.parent._position)for(var b=0;b<e.axisY.length;b++)this.parent===e.axisY[b]&&(e.axisY[b]._crosshairValue=a>=e.axisY[b].viewportMinimum&&\na<=e.axisY[b].viewportMaximum?a:null);else if(\"top\"===this.parent._position)for(b=0;b<e.axisY2.length;b++)this.parent===e.axisY2[b]&&(e.axisY2[b]._crosshairValue=a>=e.axisY2[b].viewportMinimum&&a<=e.axisY2[b].viewportMaximum?a:null);else if(\"left\"===this.parent._position)for(b=0;b<e.axisX.length;b++)this.parent===e.axisX[b]&&(e.axisX[b]._crosshairValue=a>=e.axisX[b].viewportMinimum&&a<=e.axisX[b].viewportMaximum?a:null);else{if(\"right\"===this.parent._position)for(b=0;b<e.axisX2.length;b++)this.parent===\ne.axisX2[b]&&(e.axisX2[b]._crosshairValue=a>=e.axisX2[b].viewportMinimum&&a<=e.axisX2[b].viewportMaximum?a:null)}else if(\"bottom\"===this.parent._position)for(b=0;b<e.axisX.length;b++)this.parent===e.axisX[b]&&(e.axisX[b]._crosshairValue=a>=e.axisX[b].viewportMinimum&&a<=e.axisX[b].viewportMaximum?a:null);else if(\"top\"===this.parent._position)for(b=0;b<e.axisX2.length;b++)this.parent===e.axisX2[b]&&(e.axisX2[b]._crosshairValue=a>=e.axisX2[b].viewportMinimum&&a<=e.axisX2[b].viewportMaximum?a:null);\nelse if(\"left\"===this.parent._position)for(b=0;b<e.axisY.length;b++)this.parent===e.axisY[b]&&(e.axisY[b]._crosshairValue=a>=e.axisY[b].viewportMinimum&&a<=e.axisY[b].viewportMaximum?a:null);else if(\"right\"===this.parent._position)for(b=0;b<e.axisY2.length;b++)this.parent===e.axisY2[b]&&(e.axisY2[b]._crosshairValue=a>=e.axisY2[b].viewportMinimum&&a<=e.axisY2[b].viewportMaximum?a:null);for(b=0;b<e.axisX.length;b++)a=e.axisX[b]._crosshairValue,e.axisX[b].crosshair&&(e.axisX[b].crosshair.enabled&&!p(a)&&\na>=e.axisX[b].viewportMinimum&&a<=e.axisX[b].viewportMaximum)&&(e.axisX[b].showCrosshair(a),e.axisX[b].crosshair._updatedValue=a,this===e.axisX[b].crosshair&&(c=!0));for(b=0;b<e.axisX2.length;b++)a=e.axisX2[b]._crosshairValue,e.axisX2[b].crosshair&&(e.axisX2[b].crosshair.enabled&&!p(a)&&a>=e.axisX2[b].viewportMinimum&&a<=e.axisX2[b].viewportMaximum)&&(e.axisX2[b].showCrosshair(a),e.axisX2[b].crosshair._updatedValue=a,this===e.axisX2[b].crosshair&&(c=!0));for(b=0;b<e.axisY.length;b++)a=e.axisY[b]._crosshairValue,\ne.axisY[b].crosshair&&(e.axisY[b].crosshair.enabled&&!p(a)&&a>=e.axisY[b].viewportMinimum&&a<=e.axisY[b].viewportMaximum)&&(e.axisY[b].showCrosshair(a),e.axisY[b].crosshair._updatedValue=a,this===e.axisY[b].crosshair&&(c=!0));for(b=0;b<e.axisY2.length;b++)a=e.axisY2[b]._crosshairValue,e.axisY2[b].crosshair&&(e.axisY2[b].crosshair.enabled&&!p(a)&&a>=e.axisY2[b].viewportMinimum&&a<=e.axisY2[b].viewportMaximum)&&(e.axisY2[b].showCrosshair(a),e.axisY2[b].crosshair._updatedValue=a,this===e.axisY2[b].crosshair&&\n(c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};da.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent);this._hidden=!0};da.prototype.render=function(a,e,c){var b,f,d,l,t=null,v=null,k=null,m=\"\";this.valueFormatString||(\"dateTime\"===this.parent.valueType?this.valueFormatString=this.parent.valueFormatString:(k=0,k=\"xySwapped\"===this.chart.plotInfo.axisPlacement?50<this.parent.range?\n0:500<this.chart.width&&25>this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50<this.parent.range?0:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0),this.valueFormatString=E.generateValueFormatString(this.parent.range,k)));var q=null===this.opacity?1:this.opacity,n=Math.abs(\"pixel\"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit*\nthis.thickness),g=this.chart.overlaidCanvasCtx,B=g.globalAlpha;g.beginPath();g.strokeStyle=this.color;g.lineWidth=n;g.save();this.labelFontSize=Math.abs(p(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize);this.labelMaxWidth=p(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=p(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0<n&&g.setLineDash&&g.setLineDash(H(this.lineDashType,n));k=new ka(g,{x:0,y:0,\npadding:{top:2,right:3,bottom:2,left:4},backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxWidth:this.labelMaxWidth,maxHeight:this.labelMaxHeight,angle:this.labelAngle,text:m,horizontalAlign:\"left\",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\"});if(this.snapToDataPoint){var w=\n0,m=[];if(\"xySwapped\"===this.chart.plotInfo.axisPlacement){var y=null;if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)w=this.parent.dataSeries[0].axisX.convertPixelToValue({y:e});else if(\"left\"===this.parent._position||\"right\"===this.parent._position)w=this.parent.convertPixelToValue({y:e});for(var s=0;s<this.parent.dataSeries.length;s++)(y=this.parent.dataSeries[s].getDataPointAtX(w,!0))&&0<=y.index&&(y.dataSeries=this.parent.dataSeries[s],null!==y.dataPoint.y&&y.dataSeries.visible&&\nm.push(y));y=null;if(0===m.length)return;m.sort(function(a,b){return a.distance-b.distance});var z=y=0;yPercent=cumulativeY=0;for(var w=Infinity,u,s=0;s<m.length;s++){if(\"rangeBar\"===m[s].dataSeries.type||\"error\"===m[s].dataSeries.type){if(m[s].dataPoint.y)for(var D=0;D<m[s].dataPoint.y.length;D++)z=Math.abs(a-this.parent.convertValueToPixel(m[s].dataPoint.y[D])),z<=w&&(w=z,y=s)}else\"stackedBar\"===m[s].dataSeries.type?(cumulativeY=m[s].dataSeries.dataPointEOs[m[s].index].cumulativeY,z=Math.abs(a-\nthis.parent.convertValueToPixel(cumulativeY)),z<=w&&(w=z,y=s)):\"stackedBar100\"===m[s].dataSeries.type?(z=m[0].dataPoint.x.getTime?m[0].dataPoint.x.getTime():m[0].dataPoint.x,p(u)&&(u=Math.abs(a-this.parent.convertValueToPixel(100*(m[0].dataSeries.dataPointEOs[m[0].index].cumulativeY/m[0].dataSeries.plotUnit.dataPointYSums[z])))),cumulativeY=m[s].dataSeries.dataPointEOs[m[s].index].cumulativeY,z=m[s].dataPoint.x.getTime?m[s].dataPoint.x.getTime():m[s].dataPoint.x,yPercent=100*(cumulativeY/m[s].dataSeries.plotUnit.dataPointYSums[z]),\nz=Math.abs(a-this.parent.convertValueToPixel(yPercent)),z<=u&&(u=z,y=s)):(z=Math.abs(a-this.parent.convertValueToPixel(m[s].dataPoint.y)),z<=w&&(w=z,y=s));p(u)||(w=Math.min(w,u))}u=m[y];s=0;if(\"bottom\"===this.parent._position||\"top\"===this.parent._position){if(\"rangeBar\"===u.dataSeries.type||\"error\"===u.dataSeries.type){w=Math.abs(a-this.parent.convertValueToPixel(u.dataPoint.y[0]));for(m=0;m<u.dataPoint.y.length;m++)z=Math.abs(a-this.parent.convertValueToPixel(u.dataPoint.y[m])),z<w&&(w=z,s=m);t=\n1===g.lineWidth%2?(this.parent.convertValueToPixel(u.dataPoint.y[s])<<0)+0.5:this.parent.convertValueToPixel(u.dataPoint.y[s])<<0;this.value=u.dataPoint.y[s];k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.y[s]}):p(this.options.label)?fa(p(c)?u.dataPoint.y[s]:c,this.valueFormatString,this.chart._cultureInfo):this.label}else\"stackedBar\"===u.dataSeries.type?(w=Math.abs(a-this.parent.convertValueToPixel(m[0].dataPoint.y)),\ncumulativeY=u.dataSeries.dataPointEOs[u.index].cumulativeY,t=1===g.lineWidth%2?(this.parent.convertValueToPixel(cumulativeY)<<0)+0.5:this.parent.convertValueToPixel(cumulativeY)<<0,this.value=cumulativeY,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.y}):p(this.options.label)?fa(p(c)?u.dataPoint.y:c,this.valueFormatString,this.chart._cultureInfo):this.label):\"stackedBar100\"===u.dataSeries.type?(w=Math.abs(a-this.parent.convertValueToPixel(m[0].dataPoint.y)),\ncumulativeY=u.dataSeries.dataPointEOs[u.index].cumulativeY,z=u.dataPoint.x.getTime?u.dataPoint.x.getTime():u.dataPoint.x,yPercent=100*(cumulativeY/u.dataSeries.plotUnit.dataPointYSums[z]),t=1===g.lineWidth%2?(this.parent.convertValueToPixel(yPercent)<<0)+0.5:this.parent.convertValueToPixel(yPercent)<<0,this.value=yPercent,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:yPercent}):p(this.options.label)?fa(p(c)?yPercent:c,this.valueFormatString,\nthis.chart._cultureInfo):this.label):(t=1===g.lineWidth%2?(this.parent.convertValueToPixel(u.dataPoint.y)<<0)+0.5:this.parent.convertValueToPixel(u.dataPoint.y)<<0,this.value=u.dataPoint.y,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.y}):p(this.options.label)?fa(p(c)?u.dataPoint.y:c,this.valueFormatString,this.chart._cultureInfo):this.label);b=f=t;d=this.chart.plotArea.y1;l=this.chart.plotArea.y2;this.bounds={x1:b-\nn/2,y1:d,x2:f+n/2,y2:l};k.x=b-k.measureText().width/2;k.x+k.width>this.chart.bounds.x2?k.x=this.chart.bounds.x2-k.width:k.x<this.chart.bounds.x1&&(k.x=this.chart.bounds.x1);k.y=this.parent.lineCoordinates.y2+(\"top\"===this.parent._position?-k.height+this.parent.tickLength:k.fontSize/2)+2;k.y+k.height>this.chart.bounds.y2?k.y=this.chart.bounds.y2-k.height:k.y<this.chart.bounds.y1&&(k.y=this.chart.bounds.y1)}else if(\"left\"===this.parent._position||\"right\"===this.parent._position){d=l=v=1===g.lineWidth%\n2?(this.parent.convertValueToPixel(u.dataPoint.x)<<0)+0.5:this.parent.convertValueToPixel(u.dataPoint.x)<<0;b=this.chart.plotArea.x1;f=this.chart.plotArea.x2;this.bounds={x1:b,y1:d-n/2,x2:f,y2:l+n/2};s=!1;if(this.parent.labels)for(w=Math.ceil(this.parent.interval),m=0;m<this.parent.viewportMaximum;m+=w)if(this.parent.labels[m])s=!0;else{s=!1;break}if(s){if(\"axisX\"===this.parent.type)for(w=this.parent.convertPixelToValue({y:e}),y=null,s=0;s<this.parent.dataSeries.length;s++)(y=this.parent.dataSeries[s].getDataPointAtX(w,\n!0))&&0<=y.index&&(k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.x}):p(this.options.label)?y.dataPoint.label:this.label)}else k.text=\"dateTime\"!==this.parent.valueType||this.parent.logarithmic?this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.x}):p(this.options.label)?fa(u.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label:\nthis.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.x}):p(this.options.label)?Ca(u.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label;this.value=u.dataPoint.x;k.y=l+k.fontSize/2-k.measureText().height/2+2;k.y-k.fontSize/2<this.chart.bounds.y1?k.y=this.chart.bounds.y1+k.fontSize/2+2:k.y+k.measureText().height-k.fontSize/2>this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);\"left\"===\nthis.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}}else if(\"bottom\"===this.parent._position||\"top\"===this.parent._position){w=this.parent.convertPixelToValue({x:a});for(s=0;s<this.parent.dataSeries.length;s++)(y=this.parent.dataSeries[s].getDataPointAtX(w,!0))&&0<=y.index&&(y.dataSeries=this.parent.dataSeries[s],null!==y.dataPoint.y&&y.dataSeries.visible&&m.push(y));if(0===m.length)return;m.sort(function(a,\nb){return a.distance-b.distance});u=m[0];b=f=t=1===g.lineWidth%2?(this.parent.convertValueToPixel(u.dataPoint.x)<<0)+0.5:this.parent.convertValueToPixel(u.dataPoint.x)<<0;d=this.chart.plotArea.y1;l=this.chart.plotArea.y2;this.bounds={x1:b-n/2,y1:d,x2:f+n/2,y2:l};s=!1;if(this.parent.labels)for(w=Math.ceil(this.parent.interval),m=0;m<this.parent.viewportMaximum;m+=w)if(this.parent.labels[m])s=!0;else{s=!1;break}if(s){if(\"axisX\"===this.parent.type)for(w=this.parent.convertPixelToValue({x:a}),y=null,\ns=0;s<this.parent.dataSeries.length;s++)(y=this.parent.dataSeries[s].getDataPointAtX(w,!0))&&0<=y.index&&(k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.x}):p(this.options.label)?y.dataPoint.label:this.label)}else k.text=\"dateTime\"!==this.parent.valueType||this.parent.logarithmic?this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.x}):p(this.options.label)?\nfa(u.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label:this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.x}):p(this.options.label)?Ca(u.dataPoint.x,this.valueFormatString,this.chart._cultureInfo):this.label;this.value=u.dataPoint.x;k.x=b-k.measureText().width/2;k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.x<this.chart.bounds.x1&&(k.x=this.chart.bounds.x1);\"bottom\"===this.parent._position?\nk.y=this.parent.lineCoordinates.y2+k.fontSize/2+2:\"top\"===this.parent._position&&(k.y=this.parent.lineCoordinates.y1-k.height+k.fontSize/2+2)}else if(\"left\"===this.parent._position||\"right\"===this.parent._position){!p(this.parent.dataSeries)&&0<this.parent.dataSeries.length&&(w=this.parent.dataSeries[0].axisX.convertPixelToValue({x:a}));for(s=0;s<this.parent.dataSeries.length;s++)(y=this.parent.dataSeries[s].getDataPointAtX(w,!0))&&0<=y.index&&(y.dataSeries=this.parent.dataSeries[s],null!==y.dataPoint.y&&\ny.dataSeries.visible&&m.push(y));if(0===m.length)return;m.sort(function(a,b){return a.distance-b.distance});z=y=0;w=Infinity;for(s=0;s<m.length;s++){if(\"rangeColumn\"===m[s].dataSeries.type||\"rangeArea\"===m[s].dataSeries.type||\"error\"===m[s].dataSeries.type||\"rangeSplineArea\"===m[s].dataSeries.type||\"candlestick\"===m[s].dataSeries.type||\"ohlc\"===m[s].dataSeries.type||\"boxAndWhisker\"===m[s].dataSeries.type){if(m[s].dataPoint.y)for(D=0;D<m[s].dataPoint.y.length;D++)z=Math.abs(e-this.parent.convertValueToPixel(m[s].dataPoint.y[D])),\nz<=w&&(w=z,y=s)}else\"stackedColumn\"===m[s].dataSeries.type?(b=m[s].dataSeries.dataPointEOs[m[s].index].cumulativeY,z=Math.abs(e-this.parent.convertValueToPixel(b)),z<=w&&(w=z,y=s)):\"stackedArea\"===m[s].dataSeries.type?(b=m[s].dataSeries.dataPointEOs[m[s].index].cumulativeY,z=Math.abs(e-this.parent.convertValueToPixel(b)),z<=w&&(w=z,y=s)):\"stackedColumn100\"===m[s].dataSeries.type||\"stackedArea100\"===m[s].dataSeries.type?(z=m[0].dataPoint.x.getTime?m[0].dataPoint.x.getTime():m[0].dataPoint.x,p(u)&&\n(u=Math.abs(e-this.parent.convertValueToPixel(100*(m[0].dataSeries.dataPointEOs[m[0].index].cumulativeY/m[0].dataSeries.plotUnit.dataPointYSums[z])))),\"stackedColumn100\"===m[s].dataSeries.type?(v=m[s].dataSeries.dataPointEOs[m[s].index].cumulativeY,z=m[s].dataPoint.x.getTime?m[s].dataPoint.x.getTime():m[s].dataPoint.x,b=100*(v/m[s].dataSeries.plotUnit.dataPointYSums[z]),z=Math.abs(e-this.parent.convertValueToPixel(b)),z<=u&&(u=z,y=s)):\"stackedArea100\"===m[s].dataSeries.type&&(v=m[s].dataSeries.dataPointEOs[m[s].index].cumulativeY,\nz=m[s].dataPoint.x.getTime?m[s].dataPoint.x.getTime():m[s].dataPoint.x,b=100*(v/m[s].dataSeries.plotUnit.dataPointYSums[z]),z=Math.abs(e-this.parent.convertValueToPixel(b)),z<=u&&(u=z,y=s))):\"waterfall\"===m[s].dataSeries.type?(z=Math.abs(e-this.parent.convertValueToPixel(m[s].dataSeries.dataPointEOs[m[s].index].cumulativeSum)),z<=w&&(u=w=z,y=s)):(z=Math.abs(e-this.parent.convertValueToPixel(m[s].dataPoint.y)),z<=w&&(w=z,y=s));p(u)||(w=Math.min(w,u))}u=m[y];s=0;if(\"rangeColumn\"===u.dataSeries.type||\n\"rangeArea\"===u.dataSeries.type||\"error\"===u.dataSeries.type||\"rangeSplineArea\"===u.dataSeries.type||\"candlestick\"===u.dataSeries.type||\"ohlc\"===u.dataSeries.type||\"boxAndWhisker\"===u.dataSeries.type){w=Math.abs(e-this.parent.convertValueToPixel(u.dataPoint.y[0]));for(m=0;m<u.dataPoint.y.length;m++)z=Math.abs(e-this.parent.convertValueToPixel(u.dataPoint.y[m])),z<w&&(w=z,s=m);v=1===g.lineWidth%2?(this.parent.convertValueToPixel(u.dataPoint.y[s])<<0)+0.5:this.parent.convertValueToPixel(u.dataPoint.y[s])<<\n0;k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.y[s]}):p(this.options.label)?fa(p(c)?u.dataPoint.y[s]:c,this.valueFormatString,this.chart._cultureInfo):this.label;this.value=u.dataPoint.y[s]}else\"stackedColumn\"===u.dataSeries.type?(b=u.dataSeries.dataPointEOs[u.index].cumulativeY,v=1===g.lineWidth%2?(this.parent.convertValueToPixel(b)<<0)+0.5:this.parent.convertValueToPixel(b)<<0,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,\naxis:this.parent.options,crosshair:this.options,value:u.dataPoint.y}):p(this.options.label)?fa(p(c)?u.dataPoint.y:c,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=b):\"stackedArea\"===u.dataSeries.type?(b=u.dataSeries.dataPointEOs[u.index].cumulativeY,v=1===g.lineWidth%2?(this.parent.convertValueToPixel(b)<<0)+0.5:this.parent.convertValueToPixel(b)<<0,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:u.dataPoint.y}):\np(this.options.label)?fa(p(c)?u.dataPoint.y:c,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=b):\"stackedColumn100\"===u.dataSeries.type?(v=u.dataSeries.dataPointEOs[u.index].cumulativeY,z=u.dataPoint.x.getTime?u.dataPoint.x.getTime():u.dataPoint.x,b=100*(v/u.dataSeries.plotUnit.dataPointYSums[z]),v=1===g.lineWidth%2?(this.parent.convertValueToPixel(b)<<0)+0.5:this.parent.convertValueToPixel(b)<<0,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,\ncrosshair:this.options,value:b}):p(this.options.label)?fa(p(c)?b:c,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=b):\"stackedArea100\"===u.dataSeries.type?(v=u.dataSeries.dataPointEOs[u.index].cumulativeY,z=u.dataPoint.x.getTime?u.dataPoint.x.getTime():u.dataPoint.x,b=100*(v/u.dataSeries.plotUnit.dataPointYSums[z]),v=1===g.lineWidth%2?(this.parent.convertValueToPixel(b)<<0)+0.5:this.parent.convertValueToPixel(b)<<0,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,\naxis:this.parent.options,crosshair:this.options,value:b}):p(this.options.label)?fa(p(c)?b:c,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=b):\"waterfall\"===u.dataSeries.type?(v=1===g.lineWidth%2?(this.parent.convertValueToPixel(u.dataSeries.dataPointEOs[u.index].cumulativeSum)<<0)+0.5:this.parent.convertValueToPixel(u.dataSeries.dataPointEOs[u.index].cumulativeSum)<<0,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,\nvalue:u.dataSeries.dataPointEOs[u.index].cumulativeSum}):p(this.options.label)?fa(p(c)?u.dataSeries.dataPointEOs[u.index].cumulativeSum:c,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=u.dataSeries.dataPointEOs[u.index].cumulativeSum):(v=1===g.lineWidth%2?(p(a)?e:this.parent.convertValueToPixel(u.dataPoint.y)<<0)+0.5:p(a)?e:this.parent.convertValueToPixel(u.dataPoint.y)<<0,k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,\nvalue:p(c)?u.dataPoint.y:c}):p(this.options.label)?fa(p(c)?u.dataPoint.y:c,this.valueFormatString,this.chart._cultureInfo):this.label,this.value=u.dataPoint.y);d=l=v;b=this.chart.plotArea.x1;f=this.chart.plotArea.x2;this.bounds={x1:b,y1:d-n/2,x2:f,y2:l+n/2};k.y=l+k.fontSize/2-k.measureText().height/2+2;k.y-k.fontSize/2<this.chart.bounds.y1?k.y=this.chart.bounds.y1+k.fontSize/2+2:k.y+k.measureText().height-k.fontSize/2>this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/\n2);\"left\"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}m=null;g.globalAlpha=q;if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)\"top\"===this.parent._position&&k.y-k.fontSize/2<this.chart.bounds.y1&&(k.y=this.chart.bounds.y1+k.fontSize/2),\"bottom\"===this.parent._position&&this.parent.lineCoordinates.y2-k.fontSize/2+k.measureText().height>this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-\nk.height+k.fontSize/2+2),this.value>=Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0<n&&(g.moveTo(b,d),g.lineTo(f,l),g.stroke(),this._hidden=!1);if(\"left\"===this.parent._position||\"right\"===this.parent._position)\"left\"===this.parent._position&&k.x<this.chart.bounds.x1&&(k.x=this.chart.bounds.x1),\"right\"===this.parent._position&&k.x+k.measureText().width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-\nk.measureText().width),this.value>=Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0<n&&(g.moveTo(b,d),g.lineTo(f,l),g.stroke(),this._hidden=!1)}else{if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)b=f=t=1===g.lineWidth%2?(a<<0)+0.5:a<<0,d=this.chart.plotArea.y1,l=this.chart.plotArea.y2,this.bounds={x1:b-n/2,y1:d,x2:f+n/2,y2:l};else if(\"left\"===this.parent._position||\"right\"===this.parent._position)d=\nl=v=1===g.lineWidth%2?(e<<0)+0.5:e<<0,b=this.chart.plotArea.x1,f=this.chart.plotArea.x2,this.bounds={x1:b,y1:d-n/2,x2:f,y2:l+n/2};if(\"xySwapped\"===this.chart.plotInfo.axisPlacement)if(\"left\"===this.parent._position||\"right\"===this.parent._position){s=!1;if(this.parent.labels)for(w=Math.ceil(this.parent.interval),m=0;m<this.parent.viewportMaximum;m+=w)if(this.parent.labels[m])s=!0;else{s=!1;break}if(s){if(\"axisX\"===this.parent.type)for(w=this.parent.convertPixelToValue({y:e}),y=null,s=0;s<this.parent.dataSeries.length;s++)(y=\nthis.parent.dataSeries[s].getDataPointAtX(w,!0))&&0<=y.index&&(k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(a):c}):p(this.options.label)?y.dataPoint.label:this.label)}else k.text=\"dateTime\"!==this.parent.valueType||this.parent.logarithmic?this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(e):\nc}):p(this.options.label)?fa(p(c)?this.parent.convertPixelToValue(e):c,this.valueFormatString,this.chart._cultureInfo):this.label:this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(e):c}):p(this.options.label)?Ca(p(c)?this.parent.convertPixelToValue(e):c,this.valueFormatString,this.chart._cultureInfo):this.label;k.y=e+k.fontSize/2-k.measureText().height/2+2;k.y-k.fontSize/2<this.chart.bounds.y1?k.y=this.chart.bounds.y1+\nk.fontSize/2+2:k.y+k.measureText().height-k.fontSize/2>this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);\"left\"===this.parent._position?k.x=this.parent.lineCoordinates.x1-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}else{if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(a):\nc}):p(this.options.label)?fa(p(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label,k.x=b-k.measureText().width/2,k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width),k.x<this.chart.bounds.x1&&(k.x=this.chart.bounds.x1),\"bottom\"===this.parent._position?k.y=this.parent.lineCoordinates.y2+k.fontSize/2+2:\"top\"===this.parent._position&&(k.y=this.parent.lineCoordinates.y1-k.height+k.fontSize/2+2)}else if(\"bottom\"===this.parent._position||\"top\"===\nthis.parent._position){s=!1;m=\"\";if(this.parent.labels)for(w=Math.ceil(this.parent.interval),m=0;m<this.parent.viewportMaximum;m+=w)if(this.parent.labels[m])s=!0;else{s=!1;break}if(s){if(\"axisX\"===this.parent.type)for(w=this.parent.convertPixelToValue({x:a}),y=null,s=0;s<this.parent.dataSeries.length;s++)(y=this.parent.dataSeries[s].getDataPointAtX(w,!0))&&0<=y.index&&(k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(a):\nc}):p(this.options.label)?p(c)?y.dataPoint.label:c:this.label)}else k.text=\"dateTime\"!==this.parent.valueType||this.parent.logarithmic?this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?0<this.parent.dataSeries.length?this.parent.convertPixelToValue(a):\"\":c}):p(this.options.label)?fa(p(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label:this.labelFormatter?this.labelFormatter({chart:this.chart,\naxis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(a):c}):p(this.options.label)?Ca(p(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label;k.x=b-k.measureText().width/2;k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.x<this.chart.bounds.x1&&(k.x=this.chart.bounds.x1);\"bottom\"===this.parent._position?k.y=this.parent.lineCoordinates.y2+k.fontSize/2+2:\"top\"===this.parent._position&&(k.y=this.parent.lineCoordinates.y1-\nk.height+k.fontSize/2+2)}else if(\"left\"===this.parent._position||\"right\"===this.parent._position)k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:p(c)?this.parent.convertPixelToValue(e):c}):p(this.options.label)?fa(p(c)?this.parent.convertPixelToValue(e):c,this.valueFormatString,this.chart._cultureInfo):this.label,k.y=e+k.fontSize/2-k.measureText().height/2+2,k.y-k.fontSize/2<this.chart.bounds.y1?k.y=this.chart.bounds.y1+k.fontSize/\n2+2:k.y+k.measureText().height-k.fontSize/2>this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2),\"left\"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2);\"left\"===this.parent._position&&k.x<this.chart.bounds.x1?k.x=this.chart.bounds.x1:\"right\"===this.parent._position&&k.x+k.measureText().width>this.chart.bounds.x2?k.x=this.chart.bounds.x2-k.measureText().width:\"top\"===\nthis.parent._position&&k.y-k.fontSize/2<this.chart.bounds.y1?k.y=this.chart.bounds.y1+k.fontSize/2:\"bottom\"===this.parent._position&&this.parent.lineCoordinates.y2-k.fontSize/2+k.measureText().height>this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2);g.globalAlpha=q;0<n&&(g.moveTo(b,d),g.lineTo(f,l),g.stroke(),this._hidden=!1);this.value=\"bottom\"===this.parent._position||\"top\"===this.parent._position?this.parent.convertPixelToValue(a):this.parent.convertPixelToValue(e)}if(\"bottom\"===\nthis.parent._position||\"top\"===this.parent._position)this._updatedValue=this.parent.convertPixelToValue(t);if(\"left\"===this.parent._position||\"right\"===this.parent._position)this._updatedValue=this.parent.convertPixelToValue(v);this._textBlock=k;this._label=c;p(c)||this.renderLabel();g.restore();g.globalAlpha=B};da.prototype.renderLabel=function(){this.value>=Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&\n(p(this._textBlock)||(p(this._textBlock.text)||!(\"number\"===typeof this._textBlock.text.valueOf()||0<this._textBlock.text.length)||this._hidden)||this._textBlock.render(!0),p(this._label)&&this.dispatchEvent(\"updated\",{chart:this.chart,crosshair:this.options,axis:this.parent,value:this.value},this.parent))};pa(W,K);W.prototype._initialize=function(){this.updateOption(\"updated\");this.updateOption(\"hidden\");if(this.enabled){this.container=document.createElement(\"div\");this.container.setAttribute(\"class\",\n\"canvasjs-chart-tooltip\");this.container.style.position=\"absolute\";this.container.style.height=\"auto\";this.container.style.boxShadow=\"1px 1px 2px 2px rgba(0,0,0,0.1)\";this.container.style.zIndex=\"1000\";this.container.style.pointerEvents=\"none\";this.container.style.display=\"none\";var a=document.createElement(\"div\");a.style.width=\"auto\";a.style.height=\"auto\";a.style.minWidth=\"50px\";a.style.lineHeight=\"normal\";a.style.margin=\"0px 0px 0px 0px\";a.style.padding=\"5px\";a.style.fontFamily=\"Calibri, Arial, Georgia, serif\";\na.style.fontWeight=\"normal\";a.style.fontStyle=v?\"italic\":\"normal\";a.style.fontSize=\"14px\";a.style.color=\"#000000\";a.style.textShadow=\"1px 1px 1px rgba(0, 0, 0, 0.1)\";a.style.textAlign=\"left\";a.style.border=\"2px solid gray\";a.style.background=v?\"rgba(255,255,255,.9)\":\"rgb(255,255,255)\";a.style.textIndent=\"0px\";a.style.whiteSpace=\"nowrap\";a.style.borderRadius=\"5px\";a.style.MozUserSelect=\"none\";a.style.WebkitUserSelect=\"none\";a.style.msUserSelect=\"none\";a.style.userSelect=\"none\";v||(a.style.filter=\"alpha(opacity = 90)\",\na.style.filter=\"progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=135, Color='#666666')\");a.innerText=\"Sample Tooltip\";this.container.appendChild(a);this.contentDiv=this.container.firstChild;this.container.style.borderRadius=this.contentDiv.style.borderRadius;this.chart._canvasJSContainer.appendChild(this.container)}};W.prototype.mouseMoveHandler=function(a,e){this._lastUpdated&&4>(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),\nthis._updateToolTip(a,e),!this._updatedEventParameters||(isNaN(this._prevX)||isNaN(this._prevY))||this.dispatchEvent(\"updated\",this._updatedEventParameters,this))};W.prototype._updateToolTip=function(a,e,c){c=\"undefined\"===typeof c?!0:c;this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if(\"undefined\"===typeof a||\"undefined\"===typeof e){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;e=this._prevY}else this._prevX=a,this._prevY=e;var b=null,\nf=null,d=[],l=0;if(this.shared&&this.enabled&&\"none\"!==this.chart.plotInfo.axisPlacement){var t=[];if(this.chart.axisX)for(var B=0;B<this.chart.axisX.length;B++){for(var l=\"xySwapped\"===this.chart.plotInfo.axisPlacement?this.chart.axisX[B].convertPixelToValue({y:e}):this.chart.axisX[B].convertPixelToValue({x:a}),k=null,b=0;b<this.chart.axisX[B].dataSeries.length;b++)(k=this.chart.axisX[B].dataSeries[b].getDataPointAtX(l,c))&&0<=k.index&&(k.dataSeries=this.chart.axisX[B].dataSeries[b],null!==k.dataPoint.y&&\nk.dataSeries.visible&&t.push(k));k=null}if(this.chart.axisX2)for(B=0;B<this.chart.axisX2.length;B++){l=\"xySwapped\"===this.chart.plotInfo.axisPlacement?this.chart.axisX2[B].convertPixelToValue({y:e}):this.chart.axisX2[B].convertPixelToValue({x:a});k=null;for(b=0;b<this.chart.axisX2[B].dataSeries.length;b++)(k=this.chart.axisX2[B].dataSeries[b].getDataPointAtX(l,c))&&0<=k.index&&(k.dataSeries=this.chart.axisX2[B].dataSeries[b],null!==k.dataPoint.y&&k.dataSeries.visible&&t.push(k));k=null}if(0===t.length)return;\nt.sort(function(a,b){return a.distance-b.distance});c=t[0];for(b=0;b<t.length;b++)t[b].dataPoint.x.valueOf()===c.dataPoint.x.valueOf()&&d.push(t[b]);t=null}else{if(b=this.chart.getDataPointAtXY(a,e,c))this.currentDataPointIndex=b.dataPointIndex,this.currentSeriesIndex=b.dataSeries.index;else if(v)if(b=ab(a,e,this.chart._eventManager.ghostCtx),0<b&&\"undefined\"!==typeof this.chart._eventManager.objectMap[b]){b=this.chart._eventManager.objectMap[b];if(\"legendItem\"===b.objectType)return;this.currentSeriesIndex=\nb.dataSeriesIndex;this.currentDataPointIndex=0<=b.dataPointIndex?b.dataPointIndex:-1}else this.currentDataPointIndex=-1;else this.currentDataPointIndex=-1;if(0<=this.currentSeriesIndex){f=this.chart.data[this.currentSeriesIndex];k={};if(0<=this.currentDataPointIndex)b=f.dataPoints[this.currentDataPointIndex],k.dataSeries=f,k.dataPoint=b,k.index=this.currentDataPointIndex,k.distance=Math.abs(b.x-l),\"waterfall\"===f.type&&(k.cumulativeSumYStartValue=f.dataPointEOs[this.currentDataPointIndex].cumulativeSumYStartValue,\nk.cumulativeSum=f.dataPointEOs[this.currentDataPointIndex].cumulativeSum);else{if(!this.enabled||\"line\"!==f.type&&\"stepLine\"!==f.type&&\"spline\"!==f.type&&\"area\"!==f.type&&\"stepArea\"!==f.type&&\"splineArea\"!==f.type&&\"stackedArea\"!==f.type&&\"stackedArea100\"!==f.type&&\"rangeArea\"!==f.type&&\"rangeSplineArea\"!==f.type&&\"candlestick\"!==f.type&&\"ohlc\"!==f.type&&\"boxAndWhisker\"!==f.type){\"toolTip\"===this.chart.clearedOverlayedCanvas&&(this.chart.resetOverlayedCanvas(),this.chart.clearedOverlayedCanvas=null);\nreturn}l=f.axisX.convertPixelToValue({x:a});k=f.getDataPointAtX(l,c);p(k)||(k.dataSeries=f,this.currentDataPointIndex=k.index,b=k.dataPoint)}if(!p(k)&&!p(k.dataPoint)&&!p(k.dataPoint.y))if(k.dataSeries.axisY)if(0<k.dataPoint.y.length){for(b=c=0;b<k.dataPoint.y.length;b++)k.dataPoint.y[b]<k.dataSeries.axisY.viewportMinimum?c--:k.dataPoint.y[b]>k.dataSeries.axisY.viewportMaximum&&c++;c<k.dataPoint.y.length&&c>-k.dataPoint.y.length&&d.push(k)}else\"column\"===f.type||\"bar\"===f.type?0>k.dataPoint.y?0>k.dataSeries.axisY.viewportMinimum&&\nk.dataSeries.axisY.viewportMaximum>=k.dataPoint.y&&d.push(k):k.dataSeries.axisY.viewportMinimum<=k.dataPoint.y&&0<=k.dataSeries.axisY.viewportMaximum&&d.push(k):\"bubble\"===f.type?(c=this.chart._eventManager.objectMap[f.dataPointIds[k.index]].size/2,k.dataPoint.y>=k.dataSeries.axisY.viewportMinimum-c&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum+c&&d.push(k)):\"waterfall\"===f.type?(c=0,k.cumulativeSumYStartValue<k.dataSeries.axisY.viewportMinimum?c--:k.cumulativeSumYStartValue>k.dataSeries.axisY.viewportMaximum&&\nc++,k.cumulativeSum<k.dataSeries.axisY.viewportMinimum?c--:k.cumulativeSum>k.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2<c&&d.push(k)):(0<=k.dataSeries.type.indexOf(\"100\")||\"stackedColumn\"===f.type||\"stackedBar\"===f.type||k.dataPoint.y>=k.dataSeries.axisY.viewportMinimum&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum)&&d.push(k);else d.push(k)}}if(0<d.length){if(this.highlightObjects(d),this.enabled){c=\"\";c=this.getToolTipInnerHTML({entries:d});if(null!==c){this.contentDiv.innerHTML=c;if(this.isToolTipDefinedInData&&\np(this.options.content)&&p(this.options.contentFormatter))for(l=this.contentDiv.getElementsByTagName(\"span\"),b=0;b<l.length;b++)l[b]&&(l[b].style.color=l[b].getAttribute(\"data-color\"));l=!1;\"none\"===this.container.style.display&&(l=!0,this.container.style.display=\"block\");try{this.contentDiv.style.background=this.backgroundColor?this.backgroundColor:v?\"rgba(255,255,255,.9)\":\"rgb(255,255,255)\",this.borderColor=\"waterfall\"===d[0].dataSeries.type?this.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=\nthis.contentDiv.style.borderColor=this.options.borderColor?this.options.borderColor:d[0].dataPoint.color?d[0].dataPoint.color:0<d[0].dataPoint.y?d[0].dataSeries.risingColor:d[0].dataSeries.fallingColor:\"error\"===d[0].dataSeries.type?this.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=this.options.borderColor?this.options.borderColor:d[0].dataSeries.color?d[0].dataSeries.color:d[0].dataSeries._colorSet[f.index%d[0].dataSeries._colorSet.length]:\nthis.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=this.options.borderColor?this.options.borderColor:d[0].dataPoint.color?d[0].dataPoint.color:d[0].dataSeries.color?d[0].dataSeries.color:d[0].dataSeries._colorSet[d[0].index%d[0].dataSeries._colorSet.length],this.contentDiv.style.borderWidth=this.borderThickness||0===this.borderThickness?this.borderThickness+\"px\":\"2px\",this.contentDiv.style.borderRadius=this.cornerRadius||0===this.cornerRadius?\nthis.cornerRadius+\"px\":\"5px\",this.container.style.borderRadius=this.contentDiv.style.borderRadius,this.contentDiv.style.fontSize=this.fontSize||0===this.fontSize?this.fontSize+\"px\":\"14px\",this.contentDiv.style.color=this.fontColor?this.fontColor:\"#000000\",this.contentDiv.style.fontFamily=this.fontFamily?this.fontFamily:\"Calibri, Arial, Georgia, serif;\",this.contentDiv.style.fontWeight=this.fontWeight?this.fontWeight:\"normal\",this.contentDiv.style.fontStyle=this.fontStyle?this.fontStyle:v?\"italic\":\n\"normal\"}catch(m){}\"pie\"===d[0].dataSeries.type||\"doughnut\"===d[0].dataSeries.type||\"funnel\"===d[0].dataSeries.type||\"pyramid\"===d[0].dataSeries.type||\"bar\"===d[0].dataSeries.type||\"rangeBar\"===d[0].dataSeries.type||\"stackedBar\"===d[0].dataSeries.type||\"stackedBar100\"===d[0].dataSeries.type?a=a-10-this.container.clientWidth:(a=d[0].dataSeries.axisX.convertValueToPixel(d[0].dataPoint.x)-this.container.clientWidth<<0,a-=10);0>a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,\nthis.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));e=1!==d.length||this.shared||\"line\"!==d[0].dataSeries.type&&\"stepLine\"!==d[0].dataSeries.type&&\"spline\"!==d[0].dataSeries.type&&\"area\"!==d[0].dataSeries.type&&\"stepArea\"!==d[0].dataSeries.type&&\"splineArea\"!==d[0].dataSeries.type?\"bar\"===d[0].dataSeries.type||\"rangeBar\"===d[0].dataSeries.type||\"stackedBar\"===d[0].dataSeries.type||\"stackedBar100\"===d[0].dataSeries.type?d[0].dataSeries.axisX.convertValueToPixel(d[0].dataPoint.x):\ne:d[0].dataSeries.axisY.convertValueToPixel(d[0].dataPoint.y);e=-e+10;0<e+this.container.clientHeight+5&&(e-=e+this.container.clientHeight+5-0);this.fixMozTransitionDelay(a,e);!this.animationEnabled||l?this.disableAnimation():(this.enableAnimation(),this.container.style.MozTransition=this.mozContainerTransition);this.positionLeft=a;this.positionBottom=e;this.container.style.left=a+\"px\";this.container.style.bottom=e+\"px\"}else this.hide(!1),this.enabled&&this.dispatchEvent(\"hidden\",{chart:this.chart,\ntoolTip:this},this);e=[];for(b=0;b<d.length;b++)e.push({xValue:d[b].dataPoint.x,dataPoint:d[b].dataPoint,dataSeries:d[b].dataSeries,dataPointIndex:d[b].index,dataSeriesIndex:d[b].dataSeries._index});this._updatedEventParameters={chart:this.chart,toolTip:this.options,content:c,entries:e};this._entries=d}}else this.hide(),this.enabled&&this.dispatchEvent(\"hidden\",{chart:this.chart,toolTip:this},this)}};W.prototype.highlightObjects=function(a){var e=this.chart.overlaidCanvasCtx;p(this.chart.clearedOverlayedCanvas)||\n\"toolTip\"===this.chart.clearedOverlayedCanvas?(this.chart.resetOverlayedCanvas(),e.clearRect(0,0,this.chart.width,this.chart.height),this.chart.clearedOverlayedCanvas=\"toolTip\"):this.chart.clearedOverlayedCanvas=null;e.save();var c=this.chart.plotArea,b=0;e.beginPath();e.rect(c.x1,c.y1,c.x2-c.x1,c.y2-c.y1);e.clip();for(c=0;c<a.length;c++){var f=a[c];if((f=this.chart._eventManager.objectMap[f.dataSeries.dataPointIds[f.index]])&&f.objectType&&\"dataPoint\"===f.objectType){var b=this.chart.data[f.dataSeriesIndex],\nd=b.dataPoints[f.dataPointIndex],l=f.dataPointIndex;!1===d.highlightEnabled||!0!==b.highlightEnabled&&!0!==d.highlightEnabled||(\"line\"===b.type||\"stepLine\"===b.type||\"spline\"===b.type||\"scatter\"===b.type||\"area\"===b.type||\"stepArea\"===b.type||\"splineArea\"===b.type||\"stackedArea\"===b.type||\"stackedArea100\"===b.type||\"rangeArea\"===b.type||\"rangeSplineArea\"===b.type?(d=b.getMarkerProperties(l,f.x1,f.y1,this.chart.overlaidCanvasCtx),d.size=Math.max(1.5*d.size<<0,10),d.borderColor=d.borderColor||\"#FFFFFF\",\nd.borderThickness=d.borderThickness||Math.ceil(0.1*d.size),Y.drawMarkers([d]),\"undefined\"!==typeof f.y2&&(d=b.getMarkerProperties(l,f.x1,f.y2,this.chart.overlaidCanvasCtx),d.size=Math.max(1.5*d.size<<0,10),d.borderColor=d.borderColor||\"#FFFFFF\",d.borderThickness=d.borderThickness||Math.ceil(0.1*d.size),Y.drawMarkers([d]))):\"bubble\"===b.type?(d=b.getMarkerProperties(l,f.x1,f.y1,this.chart.overlaidCanvasCtx),d.size=f.size,d.color=\"white\",d.borderColor=\"white\",e.globalAlpha=0.3,Y.drawMarkers([d]),e.globalAlpha=\n1):\"column\"===b.type||\"stackedColumn\"===b.type||\"stackedColumn100\"===b.type||\"bar\"===b.type||\"rangeBar\"===b.type||\"stackedBar\"===b.type||\"stackedBar100\"===b.type||\"rangeColumn\"===b.type||\"waterfall\"===b.type?ba(e,f.x1,f.y1,f.x2,f.y2,\"white\",0,null,!1,!1,!1,!1,0.3):\"pie\"===b.type||\"doughnut\"===b.type?qa(e,f.center,f.radius,\"white\",b.type,f.startAngle,f.endAngle,0.3,f.percentInnerRadius):\"funnel\"===b.type||\"pyramid\"===b.type?sa(e,f.funnelSection,0.3,\"white\"):\"candlestick\"===b.type?(e.globalAlpha=1,\ne.strokeStyle=f.color,e.lineWidth=2*f.borderThickness,b=0===e.lineWidth%2?0:0.5,e.beginPath(),e.moveTo(f.x3-b,Math.min(f.y2,f.y3)),e.lineTo(f.x3-b,Math.min(f.y1,f.y4)),e.stroke(),e.beginPath(),e.moveTo(f.x3-b,Math.max(f.y1,f.y4)),e.lineTo(f.x3-b,Math.max(f.y2,f.y3)),e.stroke(),ba(e,f.x1,Math.min(f.y1,f.y4),f.x2,Math.max(f.y1,f.y4),\"transparent\",2*f.borderThickness,f.color,!1,!1,!1,!1),e.globalAlpha=1):\"ohlc\"===b.type?(e.globalAlpha=1,e.strokeStyle=f.color,e.lineWidth=2*f.borderThickness,b=0===e.lineWidth%\n2?0:0.5,e.beginPath(),e.moveTo(f.x3-b,f.y2),e.lineTo(f.x3-b,f.y3),e.stroke(),e.beginPath(),e.moveTo(f.x3,f.y1),e.lineTo(f.x1,f.y1),e.stroke(),e.beginPath(),e.moveTo(f.x3,f.y4),e.lineTo(f.x2,f.y4),e.stroke(),e.globalAlpha=1):\"boxAndWhisker\"===b.type?(e.save(),e.globalAlpha=1,e.strokeStyle=f.stemColor,e.lineWidth=2*f.stemThickness,0<f.stemThickness&&(e.beginPath(),e.moveTo(f.x3,f.y2+f.borderThickness/2),e.lineTo(f.x3,f.y1+f.whiskerThickness/2),e.stroke(),e.beginPath(),e.moveTo(f.x3,f.y4-f.whiskerThickness/\n2),e.lineTo(f.x3,f.y3-f.borderThickness/2),e.stroke()),e.beginPath(),ba(e,f.x1,Math.max(f.y2,f.y3),f.x2,Math.min(f.y2,f.y3),\"transparent\",2*f.borderThickness,f.color,!1,!1,!1,!1),e.globalAlpha=1,e.strokeStyle=f.whiskerColor,e.lineWidth=2*f.whiskerThickness,0<f.whiskerThickness&&(e.beginPath(),e.moveTo(Math.floor(f.x3-f.whiskerLength/2),f.y4),e.lineTo(Math.ceil(f.x3+f.whiskerLength/2),f.y4),e.stroke(),e.beginPath(),e.moveTo(Math.floor(f.x3-f.whiskerLength/2),f.y1),e.lineTo(Math.ceil(f.x3+f.whiskerLength/\n2),f.y1),e.stroke()),e.globalAlpha=1,e.strokeStyle=f.lineColor,e.lineWidth=2*f.lineThickness,0<f.lineThickness&&(e.beginPath(),e.moveTo(f.x1,f.y5),e.lineTo(f.x2,f.y5),e.stroke()),e.restore(),e.globalAlpha=1):\"error\"===b.type&&B(e,f.x1,f.y1,f.x2,f.y2,\"white\",f.whiskerProperties,f.stemProperties,f.isXYSwapped,0.3))}}e.restore();e.globalAlpha=1;e.beginPath()};W.prototype.getToolTipInnerHTML=function(a){a=a.entries;var e=null,c=null,b=null,d=0,h=\"\";this.isToolTipDefinedInData=!0;for(var l=0;l<a.length;l++)if(a[l].dataSeries.toolTipContent||\na[l].dataPoint.toolTipContent){this.isToolTipDefinedInData=!1;break}if(this.isToolTipDefinedInData&&(this.content&&\"function\"===typeof this.content||this.contentFormatter))a={chart:this.chart,toolTip:this.options,entries:a},e=this.contentFormatter?this.contentFormatter(a):this.content(a);else if(this.shared&&\"none\"!==this.chart.plotInfo.axisPlacement){for(var p=null,t=\"\",l=0;l<a.length;l++){c=a[l].dataSeries;b=a[l].dataPoint;d=a[l].index;h=\"\";if(0===l&&this.isToolTipDefinedInData&&!this.content){this.chart.axisX&&\n0<this.chart.axisX.length?t+=\"undefined\"!==typeof this.chart.axisX[0].labels[b.x]?this.chart.axisX[0].labels[b.x]:\"{x}\":this.chart.axisX2&&0<this.chart.axisX2.length&&(t+=\"undefined\"!==typeof this.chart.axisX2[0].labels[b.x]?this.chart.axisX2[0].labels[b.x]:\"{x}\");t+=\"</br>\";if(!c.visible)continue;t=this.chart.replaceKeywordsWithValue(t,b,c,d)}null===b.toolTipContent||\"undefined\"===typeof b.toolTipContent&&null===c.options.toolTipContent||(\"line\"===c.type||\"stepLine\"===c.type||\"spline\"===c.type||\n\"area\"===c.type||\"stepArea\"===c.type||\"splineArea\"===c.type||\"column\"===c.type||\"bar\"===c.type||\"scatter\"===c.type||\"stackedColumn\"===c.type||\"stackedColumn100\"===c.type||\"stackedBar\"===c.type||\"stackedBar100\"===c.type||\"stackedArea\"===c.type||\"stackedArea100\"===c.type||\"waterfall\"===c.type?(this.chart.axisX&&1<this.chart.axisX.length&&(h+=p!=c.axisXIndex?c.axisX.title?c.axisX.title+\"<br/>\":\"X:{axisXIndex}<br/>\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\n\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>{name}:</span>  {y}\",p=c.axisXIndex):\"bubble\"===c.type?(this.chart.axisX&&1<this.chart.axisX.length&&(h+=p!=c.axisXIndex?c.axisX.title?c.axisX.title+\"<br/>\":\"X:{axisXIndex}<br/>\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\n\"\\\"'>{name}:</span>  {y},   {z}\"):\"rangeColumn\"===c.type||\"rangeBar\"===c.type||\"rangeArea\"===c.type||\"rangeSplineArea\"===c.type||\"error\"===c.type?(this.chart.axisX&&1<this.chart.axisX.length&&(h+=p!=c.axisXIndex?c.axisX.title?c.axisX.title+\"<br/>\":\"X:{axisXIndex}<br/>\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>{name}:</span>  {y[0]}, {y[1]}\"):\n\"candlestick\"===c.type||\"ohlc\"===c.type?(this.chart.axisX&&1<this.chart.axisX.length&&(h+=p!=c.axisXIndex?c.axisX.title?c.axisX.title+\"<br/>\":\"X:{axisXIndex}<br/>\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>{name}:</span><br/>Open:   {y[0]}<br/>High:    {y[1]}<br/>Low:   {y[2]}<br/>Close:   {y[3]}\"):\n\"boxAndWhisker\"===c.type&&(this.chart.axisX&&1<this.chart.axisX.length&&(h+=p!=c.axisXIndex?c.axisX.title?c.axisX.title+\"<br/>\":\"X:{axisXIndex}<br/>\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>{name}:</span><br/>Minimum:  {y[0]}<br/>Q1:            {y[1]}<br/>Q2:            {y[4]}<br/>Q3:            {y[2]}<br/>Maximum:  {y[3]}\"),\nnull===e&&(e=\"\"),c.visible&&(!0===this.reversed?(e=this.chart.replaceKeywordsWithValue(h,b,c,d)+e,l<a.length-1&&(e=\"</br>\"+e)):(e+=this.chart.replaceKeywordsWithValue(h,b,c,d),l<a.length-1&&(e+=\"</br>\"))))}null!==e&&(e=t+e)}else{c=a[0].dataSeries;b=a[0].dataPoint;d=a[0].index;if(null===b.toolTipContent||\"undefined\"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;\"line\"===c.type||\"stepLine\"===c.type||\"spline\"===c.type||\"area\"===c.type||\"stepArea\"===c.type||\"splineArea\"===c.type||\n\"column\"===c.type||\"bar\"===c.type||\"scatter\"===c.type||\"stackedColumn\"===c.type||\"stackedColumn100\"===c.type||\"stackedBar\"===c.type||\"stackedBar100\"===c.type||\"stackedArea\"===c.type||\"stackedArea100\"===c.type||\"waterfall\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>\"+(b.label?\"{label}\":\"{x}\")+\":</span>  {y}\":\"bubble\"===c.type?\nh=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>\"+(b.label?\"{label}\":\"{x}\")+\":</span>  {y},   {z}\":\"pie\"===c.type||\"doughnut\"===c.type||\"funnel\"===c.type||\"pyramid\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\n\"\":\"'{color}'\")+\"\\\"'>\"+(b.name?\"{name}:</span>  \":b.label?\"{label}:</span>  \":\"</span>\")+\"{y}\":\"rangeColumn\"===c.type||\"rangeBar\"===c.type||\"rangeArea\"===c.type||\"rangeSplineArea\"===c.type||\"error\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>\"+(b.label?\"{label}\":\"{x}\")+\" :</span>  {y[0]},  {y[1]}\":\"candlestick\"===\nc.type||\"ohlc\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>\"+(b.label?\"{label}\":\"{x}\")+\"</span><br/>Open:   {y[0]}<br/>High:    {y[1]}<br/>Low:     {y[2]}<br/>Close:   {y[3]}\":\"boxAndWhisker\"===c.type&&(h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\n\"function\"!==typeof this.content?this.content:\"<span data-color='\\\"\"+(this.options.fontColor?\"\":\"'{color}'\")+\"\\\"'>\"+(b.label?\"{label}\":\"{x}\")+\"</span><br/>Minimum:  {y[0]}<br/>Q1:            {y[1]}<br/>Q2:            {y[4]}<br/>Q3:            {y[2]}<br/>Maximum:  {y[3]}\");null===e&&(e=\"\");e+=this.chart.replaceKeywordsWithValue(h,\nb,c,d)}return e};W.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};W.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition=\"\",this.container.style.MozTransition=\"\",\nthis.container.style.MsTransition=\"\",this.container.style.transition=\"\")};W.prototype.hide=function(a){this.container&&(this.container.style.display=\"none\",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,(\"undefined\"===typeof a||a)&&this.chart.resetOverlayedCanvas())};W.prototype.show=function(a,e,c){this._updateToolTip(a,e,\"undefined\"===typeof c?!1:c)};W.prototype.showAtIndex=function(a,e){};W.prototype.showAtX=function(a,e){if(!this.enabled)return!1;this.chart.clearedOverlayedCanvas=null;\nvar c,b,d,h=[];d=!1;e=!p(e)&&0<=e&&e<this.chart.data.length?e:0;if(this.shared)for(var l=0;l<this.chart.data.length;l++)c=this.chart.data[l],(b=c.getDataPointAtX(a,!1))&&(b.dataPoint&&!p(b.dataPoint.y)&&c.visible)&&(b.dataSeries=c,h.push(b));else c=this.chart.data[e],(b=c.getDataPointAtX(a,!1))&&(b.dataPoint&&!p(b.dataPoint.y)&&c.visible)&&(b.dataSeries=c,h.push(b));if(0<h.length){for(l=0;l<h.length;l++)if(b=h[l],(this.shared||0<=b.dataSeries.type.indexOf(\"100\"))&&b.dataPoint.x>=b.dataSeries.axisX.viewportMinimum&&\nb.dataPoint.x<=b.dataSeries.axisX.viewportMaximum){d=!1;break}else if(b.dataPoint.x<b.dataSeries.axisX.viewportMinimum||b.dataPoint.x>b.dataSeries.axisX.viewportMaximum||b.dataPoint.y<b.dataSeries.axisY.viewportMinimum||b.dataPoint.y>b.dataSeries.axisY.viewportMaximum)d=!0;else{d=!1;break}if(d)return this.hide(),!1;this.highlightObjects(h);this._entries=h;l=\"\";l=this.getToolTipInnerHTML({entries:h});if(null!==l){this.contentDiv.innerHTML=l;if(this.isToolTipDefinedInData&&p(this.options.content)&&\np(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName(\"span\"),l=0;l<b.length;l++)b[l]&&(b[l].style.color=b[l].getAttribute(\"data-color\"));l=!1;\"none\"===this.container.style.display&&(l=!0,this.container.style.display=\"block\");try{this.contentDiv.style.background=this.backgroundColor?this.backgroundColor:v?\"rgba(255,255,255,.9)\":\"rgb(255,255,255)\",this.borderColor=\"waterfall\"===h[0].dataSeries.type?this.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=\nthis.options.borderColor?this.options.borderColor:h[0].dataPoint.color?h[0].dataPoint.color:0<h[0].dataPoint.y?h[0].dataSeries.risingColor:h[0].dataSeries.fallingColor:\"error\"===h[0].dataSeries.type?this.contentDiv.style.borderRightColor=this.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=this.options.borderColor?this.options.borderColor:h[0].dataSeries.color?h[0].dataSeries.color:h[0].dataSeries._colorSet[c.index%h[0].dataSeries._colorSet.length]:this.contentDiv.style.borderRightColor=\nthis.contentDiv.style.borderLeftColor=this.contentDiv.style.borderColor=this.options.borderColor?this.options.borderColor:h[0].dataPoint.color?h[0].dataPoint.color:h[0].dataSeries.color?h[0].dataSeries.color:h[0].dataSeries._colorSet[h[0].index%h[0].dataSeries._colorSet.length],this.contentDiv.style.borderWidth=this.borderThickness||0===this.borderThickness?this.borderThickness+\"px\":\"2px\",this.contentDiv.style.borderRadius=this.cornerRadius||0===this.cornerRadius?this.cornerRadius+\"px\":\"5px\",this.container.style.borderRadius=\nthis.contentDiv.style.borderRadius,this.contentDiv.style.fontSize=this.fontSize||0===this.fontSize?this.fontSize+\"px\":\"14px\",this.contentDiv.style.color=this.fontColor?this.fontColor:\"#000000\",this.contentDiv.style.fontFamily=this.fontFamily?this.fontFamily:\"Calibri, Arial, Georgia, serif;\",this.contentDiv.style.fontWeight=this.fontWeight?this.fontWeight:\"normal\",this.contentDiv.style.fontStyle=this.fontStyle?this.fontStyle:v?\"italic\":\"normal\"}catch(t){}\"pie\"===h[0].dataSeries.type||\"doughnut\"===\nh[0].dataSeries.type||\"funnel\"===h[0].dataSeries.type||\"pyramid\"===h[0].dataSeries.type?c=mouseX-10-this.container.clientWidth:(c=\"bar\"===h[0].dataSeries.type||\"rangeBar\"===h[0].dataSeries.type||\"stackedBar\"===h[0].dataSeries.type||\"stackedBar100\"===h[0].dataSeries.type?h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y)-this.container.clientWidth<<0:h[0].dataSeries.axisX.convertValueToPixel(h[0].dataPoint.x)-this.container.clientWidth<<0,c-=10);0>c&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>\nMath.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));h=1!==h.length||this.shared||\"line\"!==h[0].dataSeries.type&&\"stepLine\"!==h[0].dataSeries.type&&\"spline\"!==h[0].dataSeries.type&&\"area\"!==h[0].dataSeries.type&&\"stepArea\"!==h[0].dataSeries.type&&\"splineArea\"!==h[0].dataSeries.type?\"bar\"===h[0].dataSeries.type||\"rangeBar\"===h[0].dataSeries.type||\"stackedBar\"===h[0].dataSeries.type||\"stackedBar100\"===\nh[0].dataSeries.type?h[0].dataSeries.axisX.convertValueToPixel(h[0].dataPoint.x):h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y):h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y);h=-h+10;0<h+this.container.clientHeight+5&&(h-=h+this.container.clientHeight+5-0);this.fixMozTransitionDelay(c,h);!this.animationEnabled||l?this.disableAnimation():(this.enableAnimation(),this.container.style.MozTransition=this.mozContainerTransition);this.container.style.left=c+\"px\";this.container.style.bottom=\nh+\"px\"}else return this.hide(!1),!1}else return this.hide(),!1;return!0};W.prototype.fixMozTransitionDelay=function(a,e){if(20<this.chart._eventManager.lastObjectId)this.mozContainerTransition=this.getContainerTransition(0);else{var c=parseFloat(this.container.style.left),c=isNaN(c)?0:c,b=parseFloat(this.container.style.bottom),b=isNaN(b)?0:b;10<Math.sqrt(Math.pow(c-a,2)+Math.pow(b-e,2))?this.mozContainerTransition=this.getContainerTransition(0.1):this.mozContainerTransition=this.getContainerTransition(0)}};\nW.prototype.getContainerTransition=function(a){return\"left \"+a+\"s ease-out 0s, bottom \"+a+\"s ease-out 0s\"};X.prototype.reset=function(){this.lastObjectId=0;this.objectMap=[];this.rectangularRegionEventSubscriptions=[];this.previousDataPointEventObject=null;this.eventObjects=[];v&&(this.ghostCtx.clearRect(0,0,this.chart.width,this.chart.height),this.ghostCtx.beginPath())};X.prototype.getNewObjectTrackingId=function(){return++this.lastObjectId};X.prototype.mouseEventHandler=function(a){if(\"mousemove\"===\na.type||\"click\"===a.type){var e=[],c=Pa(a),b=null;if((b=this.chart.getObjectAtXY(c.x,c.y,!1))&&\"undefined\"!==typeof this.objectMap[b])if(b=this.objectMap[b],\"dataPoint\"===b.objectType){var d=this.chart.data[b.dataSeriesIndex],h=d.dataPoints[b.dataPointIndex],l=b.dataPointIndex;b.eventParameter={x:c.x,y:c.y,dataPoint:h,dataSeries:d.options,dataPointIndex:l,dataSeriesIndex:d.index,chart:this.chart};b.eventContext={context:h,userContext:h,mouseover:\"mouseover\",mousemove:\"mousemove\",mouseout:\"mouseout\",\nclick:\"click\"};e.push(b);b=this.objectMap[d.id];b.eventParameter={x:c.x,y:c.y,dataPoint:h,dataSeries:d.options,dataPointIndex:l,dataSeriesIndex:d.index,chart:this.chart};b.eventContext={context:d,userContext:d.options,mouseover:\"mouseover\",mousemove:\"mousemove\",mouseout:\"mouseout\",click:\"click\"};e.push(this.objectMap[d.id])}else\"legendItem\"===b.objectType&&(d=this.chart.data[b.dataSeriesIndex],h=null!==b.dataPointIndex?d.dataPoints[b.dataPointIndex]:null,b.eventParameter={x:c.x,y:c.y,dataSeries:d.options,\ndataPoint:h,dataPointIndex:b.dataPointIndex,dataSeriesIndex:b.dataSeriesIndex,chart:this.chart},b.eventContext={context:this.chart.legend,userContext:this.chart.legend.options,mouseover:\"itemmouseover\",mousemove:\"itemmousemove\",mouseout:\"itemmouseout\",click:\"itemclick\"},e.push(b));d=[];for(c=0;c<this.mouseoveredObjectMaps.length;c++){h=!0;for(b=0;b<e.length;b++)if(e[b].id===this.mouseoveredObjectMaps[c].id){h=!1;break}h?this.fireEvent(this.mouseoveredObjectMaps[c],\"mouseout\",a):d.push(this.mouseoveredObjectMaps[c])}this.mouseoveredObjectMaps=\nd;for(c=0;c<e.length;c++){d=!1;for(b=0;b<this.mouseoveredObjectMaps.length;b++)if(e[c].id===this.mouseoveredObjectMaps[b].id){d=!0;break}d||(this.fireEvent(e[c],\"mouseover\",a),this.mouseoveredObjectMaps.push(e[c]));\"click\"===a.type?this.fireEvent(e[c],\"click\",a):\"mousemove\"===a.type&&this.fireEvent(e[c],\"mousemove\",a)}}};X.prototype.fireEvent=function(a,e,c){if(a&&e){var b=a.eventParameter,d=a.eventContext,h=a.eventContext.userContext;h&&(d&&h[d[e]])&&h[d[e]].call(h,b);\"mouseout\"!==e?h.cursor&&h.cursor!==\nc.target.style.cursor&&(c.target.style.cursor=h.cursor):(c.target.style.cursor=this.chart.panEnabled?\"itemmouseout\"!==d.mouseout||h.dockInsidePlotArea?\"move\":this.chart._defaultCursor:this.chart._defaultCursor,delete a.eventParameter,delete a.eventContext);\"click\"===e&&(\"dataPoint\"===a.objectType&&this.chart.pieDoughnutClickHandler)&&this.chart.pieDoughnutClickHandler.call(this.chart.data[a.dataSeriesIndex],b);\"click\"===e&&(\"dataPoint\"===a.objectType&&this.chart.funnelPyramidClickHandler)&&this.chart.funnelPyramidClickHandler.call(this.chart.data[a.dataSeriesIndex],\nb)}};ja.prototype.animate=function(a,d,c,b,f){var h=this;this.chart.isAnimating=!0;f=f||N.easing.linear;c&&this.animations.push({startTime:(new Date).getTime()+(a?a:0),duration:d,animationCallback:c,onComplete:b});for(a=[];0<this.animations.length;)if(d=this.animations.shift(),c=(new Date).getTime(),b=0,d.startTime<=c&&(b=f(Math.min(c-d.startTime,d.duration),0,1,d.duration),b=Math.min(b,1),isNaN(b)||!isFinite(b))&&(b=1),1>b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=\na;0<this.animations.length?this.animationRequestId=this.chart.requestAnimFrame.call(window,function(){h.animate.call(h)}):this.chart.isAnimating=!1};ja.prototype.cancelAllAnimations=function(){this.animations=[];this.animationRequestId&&this.chart.cancelRequestAnimFrame.call(window,this.animationRequestId);this.animationRequestId=null;this.chart.isAnimating=!1};var N={yScaleAnimation:function(a,d){if(0!==a){var c=d.dest,b=d.source.canvas,f=d.animationBase;c.drawImage(b,0,0,b.width,b.height,0,f-f*\na,c.canvas.width/ma,a*c.canvas.height/ma)}},xScaleAnimation:function(a,d){if(0!==a){var c=d.dest,b=d.source.canvas,f=d.animationBase;c.drawImage(b,0,0,b.width,b.height,f-f*a,0,a*c.canvas.width/ma,c.canvas.height/ma)}},xClipAnimation:function(a,d){if(0!==a){var c=d.dest,b=d.source.canvas;c.save();0<a&&c.drawImage(b,0,0,b.width*a,b.height,0,0,b.width*a/ma,b.height/ma);c.restore()}},fadeInAnimation:function(a,d){if(0!==a){var c=d.dest,b=d.source.canvas;c.save();c.globalAlpha=a;c.drawImage(b,0,0,b.width,\nb.height,0,0,c.canvas.width/ma,c.canvas.height/ma);c.restore()}},easing:{linear:function(a,d,c,b){return c*a/b+d},easeOutQuad:function(a,d,c,b){return-c*(a/=b)*(a-2)+d},easeOutQuart:function(a,d,c,b){return-c*((a=a/b-1)*a*a*a-1)+d},easeInQuad:function(a,d,c,b){return c*(a/=b)*a+d},easeInQuart:function(a,d,c,b){return c*(a/=b)*a*a*a+d}}},Y={drawMarker:function(a,d,c,b,f,h,l,p){if(c){var t=1;c.fillStyle=h?h:\"#000000\";c.strokeStyle=l?l:\"#000000\";c.lineWidth=p?p:0;c.setLineDash&&c.setLineDash(H(\"solid\",\np));\"circle\"===b?(c.moveTo(a,d),c.beginPath(),c.arc(a,d,f/2,0,2*Math.PI,!1),h&&c.fill(),p&&(l?c.stroke():(t=c.globalAlpha,c.globalAlpha=0.15,c.strokeStyle=\"black\",c.stroke(),c.globalAlpha=t))):\"square\"===b?(c.beginPath(),c.rect(a-f/2,d-f/2,f,f),h&&c.fill(),p&&(l?c.stroke():(t=c.globalAlpha,c.globalAlpha=0.15,c.strokeStyle=\"black\",c.stroke(),c.globalAlpha=t))):\"triangle\"===b?(c.beginPath(),c.moveTo(a-f/2,d+f/2),c.lineTo(a+f/2,d+f/2),c.lineTo(a,d-f/2),c.closePath(),h&&c.fill(),p&&(l?c.stroke():(t=c.globalAlpha,\nc.globalAlpha=0.15,c.strokeStyle=\"black\",c.stroke(),c.globalAlpha=t)),c.beginPath()):\"cross\"===b&&(c.strokeStyle=h,c.lineWidth=f/4,c.beginPath(),c.moveTo(a-f/2,d-f/2),c.lineTo(a+f/2,d+f/2),c.stroke(),c.moveTo(a+f/2,d-f/2),c.lineTo(a-f/2,d+f/2),c.stroke())}},drawMarkers:function(a){for(var d=0;d<a.length;d++){var c=a[d];Y.drawMarker(c.x,c.y,c.ctx,c.type,c.size,c.color,c.borderColor,c.borderThickness)}}};return l}();B.version=\"v3.8.1 GA\";window.CanvasJS&&(B&&!window.CanvasJS.Chart)&&(window.CanvasJS.Chart=\nB)})();\n\r\n/*\n excanvas is used to support IE678 which do not implement HTML5 Canvas Element. You can safely remove the following excanvas code if you don't need to support older browsers.\n\n Copyright 2006 Google Inc. https://code.google.com/p/explorercanvas/\n Licensed under the Apache License, Version 2.0\n*/\ndocument.createElement(\"canvas\").getContext||function(){function V(){return this.context_||(this.context_=new C(this))}function W(a,b,c){var g=M.call(arguments,2);return function(){return a.apply(b,g.concat(M.call(arguments)))}}function N(a){return String(a).replace(/&/g,\"&\").replace(/\"/g,\""\")}function O(a){a.namespaces.g_vml_||a.namespaces.add(\"g_vml_\",\"urn:schemas-microsoft-com:vml\",\"#default#VML\");a.namespaces.g_o_||a.namespaces.add(\"g_o_\",\"urn:schemas-microsoft-com:office:office\",\"#default#VML\");\na.styleSheets.ex_canvas_||(a=a.createStyleSheet(),a.owningElement.id=\"ex_canvas_\",a.cssText=\"canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}\")}function X(a){var b=a.srcElement;switch(a.propertyName){case \"width\":b.getContext().clearRect();b.style.width=b.attributes.width.nodeValue+\"px\";b.firstChild.style.width=b.clientWidth+\"px\";break;case \"height\":b.getContext().clearRect(),b.style.height=b.attributes.height.nodeValue+\"px\",b.firstChild.style.height=b.clientHeight+\n\"px\"}}function Y(a){a=a.srcElement;a.firstChild&&(a.firstChild.style.width=a.clientWidth+\"px\",a.firstChild.style.height=a.clientHeight+\"px\")}function D(){return[[1,0,0],[0,1,0],[0,0,1]]}function t(a,b){for(var c=D(),g=0;3>g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=\na.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf(\"(\",3),c=a.indexOf(\")\",b+1),b=a.substring(b+1,c).split(\",\");if(4!=b.length||\"a\"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;1<c&&c--;return 1>6*c?a+6*(b-a)*c:\n1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if(\"#\"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b=\"#\";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf(\"%\")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b=\"#\"+\nv[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle=\"#000\";this.lineWidth=1;this.lineJoin=\"miter\";this.lineCap=\"butt\";this.miterLimit=1*q;this.globalAlpha=1;this.font=\"10px sans-serif\";this.textAlign=\"left\";this.textBaseline=\"alphabetic\";this.canvas=a;var b=\"width:\"+a.clientWidth+\"px;height:\"+a.clientHeight+\"px;overflow:hidden;position:absolute\",\nc=a.ownerDocument.createElement(\"div\");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor=\"red\";b.style.filter=\"alpha(opacity=0)\";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:\"bezierCurveTo\",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push(\"<g_vml_:stroke\",\n' opacity=\"',c,'\"',' joinstyle=\"',a.lineJoin,'\"',' miterlimit=\"',a.miterLimit,'\"',' endcap=\"',$[a.lineCap]||\"square\",'\"',' weight=\"',e,'px\"',' color=\"',g,'\" />')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if(\"gradient\"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q,\nn/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r<d;r++){var t=f[r];n.push(t.offset*m+u+\" \"+t.color)}b.push('<g_vml_:fill type=\"',e.type_,'\"',' method=\"none\" focus=\"100%\"',' color=\"',p,'\"',' color2=\"',c,'\"',' colors=\"',n.join(\",\"),'\"',' opacity=\"',a,'\"',' g_o_:opacity2=\"',k,'\"',' angle=\"',h,'\"',' focusposition=\"',g,\",\",l,'\" />')}else e instanceof\nI?k&&n&&b.push(\"<g_vml_:fill\",' position=\"',-c.x/k*f*f,\",\",-c.y/n*d*d,'\"',' type=\"tile\"',' src=\"',e.src_,'\" />'):(e=G(a.fillStyle),b.push('<g_vml_:fill color=\"',e.color,'\" opacity=\"',e.alpha*a.globalAlpha,'\" />'))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]*\nb[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||\"IMG\"!=a.tagName)throw new A(\"TYPE_MISMATCH_ERR\");if(\"complete\"!=a.readyState)throw new A(\"INVALID_STATE_ERR\");switch(b){case \"repeat\":case null:case \"\":this.repetition_=\"repeat\";break;case \"repeat-x\":case \"repeat-y\":case \"no-repeat\":this.repetition_=b;break;default:throw new A(\"SYNTAX_ERR\");}this.src_=a.src;this.width_=a.width;this.height_=a.height}\nfunction A(a){this.code=this[a];this.message=a+\": DOM Exception \"+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement(\"canvas\");a.attachEvent(\"onreadystatechange\",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName(\"canvas\");for(var b=0;b<a.length;b++)this.initElement(a[b])},initElement:function(a){if(!a.getContext){a.getContext=\nV;O(a.ownerDocument);a.innerHTML=\"\";a.attachEvent(\"onpropertychange\",X);a.attachEvent(\"onresize\",Y);var b=a.attributes;b.width&&b.width.specified?a.style.width=b.width.nodeValue+\"px\":a.width=a.clientWidth;b.height&&b.height.specified?a.style.height=b.height.nodeValue+\"px\":a.height=a.clientHeight}return a}};U.init();for(var v=[],d=0;16>d;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:\"#F0F8FF\",antiquewhite:\"#FAEBD7\",aquamarine:\"#7FFFD4\",azure:\"#F0FFFF\",beige:\"#F5F5DC\",\nbisque:\"#FFE4C4\",black:\"#000000\",blanchedalmond:\"#FFEBCD\",blueviolet:\"#8A2BE2\",brown:\"#A52A2A\",burlywood:\"#DEB887\",cadetblue:\"#5F9EA0\",chartreuse:\"#7FFF00\",chocolate:\"#D2691E\",coral:\"#FF7F50\",cornflowerblue:\"#6495ED\",cornsilk:\"#FFF8DC\",crimson:\"#DC143C\",cyan:\"#00FFFF\",darkblue:\"#00008B\",darkcyan:\"#008B8B\",darkgoldenrod:\"#B8860B\",darkgray:\"#A9A9A9\",darkgreen:\"#006400\",darkgrey:\"#A9A9A9\",darkkhaki:\"#BDB76B\",darkmagenta:\"#8B008B\",darkolivegreen:\"#556B2F\",darkorange:\"#FF8C00\",darkorchid:\"#9932CC\",darkred:\"#8B0000\",\ndarksalmon:\"#E9967A\",darkseagreen:\"#8FBC8F\",darkslateblue:\"#483D8B\",darkslategray:\"#2F4F4F\",darkslategrey:\"#2F4F4F\",darkturquoise:\"#00CED1\",darkviolet:\"#9400D3\",deeppink:\"#FF1493\",deepskyblue:\"#00BFFF\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1E90FF\",firebrick:\"#B22222\",floralwhite:\"#FFFAF0\",forestgreen:\"#228B22\",gainsboro:\"#DCDCDC\",ghostwhite:\"#F8F8FF\",gold:\"#FFD700\",goldenrod:\"#DAA520\",grey:\"#808080\",greenyellow:\"#ADFF2F\",honeydew:\"#F0FFF0\",hotpink:\"#FF69B4\",indianred:\"#CD5C5C\",indigo:\"#4B0082\",\nivory:\"#FFFFF0\",khaki:\"#F0E68C\",lavender:\"#E6E6FA\",lavenderblush:\"#FFF0F5\",lawngreen:\"#7CFC00\",lemonchiffon:\"#FFFACD\",lightblue:\"#ADD8E6\",lightcoral:\"#F08080\",lightcyan:\"#E0FFFF\",lightgoldenrodyellow:\"#FAFAD2\",lightgreen:\"#90EE90\",lightgrey:\"#D3D3D3\",lightpink:\"#FFB6C1\",lightsalmon:\"#FFA07A\",lightseagreen:\"#20B2AA\",lightskyblue:\"#87CEFA\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#B0C4DE\",lightyellow:\"#FFFFE0\",limegreen:\"#32CD32\",linen:\"#FAF0E6\",magenta:\"#FF00FF\",mediumaquamarine:\"#66CDAA\",\nmediumblue:\"#0000CD\",mediumorchid:\"#BA55D3\",mediumpurple:\"#9370DB\",mediumseagreen:\"#3CB371\",mediumslateblue:\"#7B68EE\",mediumspringgreen:\"#00FA9A\",mediumturquoise:\"#48D1CC\",mediumvioletred:\"#C71585\",midnightblue:\"#191970\",mintcream:\"#F5FFFA\",mistyrose:\"#FFE4E1\",moccasin:\"#FFE4B5\",navajowhite:\"#FFDEAD\",oldlace:\"#FDF5E6\",olivedrab:\"#6B8E23\",orange:\"#FFA500\",orangered:\"#FF4500\",orchid:\"#DA70D6\",palegoldenrod:\"#EEE8AA\",palegreen:\"#98FB98\",paleturquoise:\"#AFEEEE\",palevioletred:\"#DB7093\",papayawhip:\"#FFEFD5\",\npeachpuff:\"#FFDAB9\",peru:\"#CD853F\",pink:\"#FFC0CB\",plum:\"#DDA0DD\",powderblue:\"#B0E0E6\",rosybrown:\"#BC8F8F\",royalblue:\"#4169E1\",saddlebrown:\"#8B4513\",salmon:\"#FA8072\",sandybrown:\"#F4A460\",seagreen:\"#2E8B57\",seashell:\"#FFF5EE\",sienna:\"#A0522D\",skyblue:\"#87CEEB\",slateblue:\"#6A5ACD\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#FFFAFA\",springgreen:\"#00FF7F\",steelblue:\"#4682B4\",tan:\"#D2B48C\",thistle:\"#D8BFD8\",tomato:\"#FF6347\",turquoise:\"#40E0D0\",violet:\"#EE82EE\",wheat:\"#F5DEB3\",whitesmoke:\"#F5F5F5\",yellowgreen:\"#9ACD32\"},\nH={},L={},$={butt:\"flat\",round:\"round\"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=\"\"};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:\"moveTo\",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:\"lineTo\",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo=\nfunction(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?\"at\":\"wa\",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d,\nx:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+\nc,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w(\"gradient\");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w(\"gradientradial\");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width=\"auto\";a.runtimeStyle.height=\"auto\";var l=a.width,u=a.height;a.runtimeStyle.width=\ne;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error(\"Invalid number of arguments\");var m=s(this,c,g),p=[];p.push(\" <g_vml_:group\",' coordsize=\"',10*q,\",\",10*q,'\"',' coordorigin=\"0,0\"',' style=\"width:',\n10,\"px;height:\",10,\"px;position:absolute;\");if(1!=this.m_[0][0]||this.m_[0][1]||1!=this.m_[1][1]||this.m_[1][0]){var t=[];t.push(\"M11=\",this.m_[0][0],\",\",\"M12=\",this.m_[1][0],\",\",\"M21=\",this.m_[0][1],\",\",\"M22=\",this.m_[1][1],\",\",\"Dx=\",k(m.x/q),\",\",\"Dy=\",k(m.y/q),\"\");var v=s(this,c+e,g),w=s(this,c,g+d);c=s(this,c+e,g+d);m.x=x.max(m.x,v.x,w.x,c.x);m.y=x.max(m.y,v.y,w.y,c.y);p.push(\"padding:0 \",k(m.x/q),\"px \",k(m.y/q),\"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(\",t.join(\"\"),\", sizingmethod='clip');\")}else p.push(\"top:\",\nk(m.y/q),\"px;left:\",k(m.x/q),\"px;\");p.push(' \">','<g_vml_:image src=\"',a.src,'\"',' style=\"width:',q*e,\"px;\",\" height:\",q*d,'px\"',' cropleft=\"',r/l,'\"',' croptop=\"',y/u,'\"',' cropright=\"',(l-r-n)/l,'\"',' cropbottom=\"',(u-y-h)/u,'\"',\" />\",\"</g_vml_:group>\");this.element_.insertAdjacentHTML(\"BeforeEnd\",p.join(\"\"))};d.stroke=function(a){var b=[];b.push(\"<g_vml_:shape\",' filled=\"',!!a,'\"',' style=\"position:absolute;width:',10,\"px;height:\",10,'px;\"',' coordorigin=\"0,0\"',' coordsize=\"',10*q,\",\",10*q,'\"',\n' stroked=\"',!a,'\"',' path=\"');for(var c={x:null,y:null},d={x:null,y:null},e=0;e<this.currentPath_.length;e++){var f=this.currentPath_[e];switch(f.type){case \"moveTo\":b.push(\" m \",k(f.x),\",\",k(f.y));break;case \"lineTo\":b.push(\" l \",k(f.x),\",\",k(f.y));break;case \"close\":b.push(\" x \");f=null;break;case \"bezierCurveTo\":b.push(\" c \",k(f.cp1x),\",\",k(f.cp1y),\",\",k(f.cp2x),\",\",k(f.cp2y),\",\",k(f.x),\",\",k(f.y));break;case \"at\":case \"wa\":b.push(\" \",f.type,\" \",k(f.x-this.arcScaleX_*f.radius),\",\",k(f.y-this.arcScaleY_*\nf.radius),\" \",k(f.x+this.arcScaleX_*f.radius),\",\",k(f.y+this.arcScaleY_*f.radius),\" \",k(f.xStart),\",\",k(f.yStart),\" \",k(f.xEnd),\",\",k(f.yEnd))}if(f){if(null==c.x||f.x<c.x)c.x=f.x;if(null==d.x||f.x>d.x)d.x=f.x;if(null==c.y||f.y<c.y)c.y=f.y;if(null==d.y||f.y>d.y)d.y=f.y}}b.push(' \">');a?T(this,b,c,d):S(this,b);b.push(\"</g_vml_:shape>\");this.element_.insertAdjacentHTML(\"beforeEnd\",b.join(\"\"))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:\"close\"})};d.save=function(){var a=\n{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a,\nb,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement(\"div\").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||\"normal\",variant:l.fontVariant||\"normal\",weight:l.fontWeight||\"normal\",size:l.fontSize||10,family:l.fontFamily||\"sans-serif\"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize);\nm=parseFloat(l.size);\"number\"==typeof l.size?h.size=l.size:-1!=l.size.indexOf(\"px\")?h.size=m:-1!=l.size.indexOf(\"em\")?h.size=p*m:-1!=l.size.indexOf(\"%\")?h.size=p/100*m:-1!=l.size.indexOf(\"pt\")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+\" \"+h.variant+\" \"+h.weight+\" \"+h.size+\"px \"+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case \"left\":case \"center\":case \"right\":break;case \"end\":l=\"ltr\"==m.direction?\"right\":\"left\";break;case \"start\":l=\"rtl\"==m.direction?\"right\":\n\"left\";break;default:l=\"left\"}switch(this.textBaseline){case \"hanging\":case \"top\":t=h.size/1.75;break;case \"middle\":break;default:case null:case \"alphabetic\":case \"ideographic\":case \"bottom\":t=-h.size/2.25}switch(l){case \"right\":d=1E3;r=0.05;break;case \"center\":d=r=500}b=s(this,b+0,c+t);n.push('<g_vml_:line from=\"',-d,' 0\" to=\"',r,' 0.05\" ',' coordsize=\"100 100\" coordorigin=\"0 0\"',' filled=\"',!e,'\" stroked=\"',!!e,'\" style=\"position:absolute;width:1px;height:1px;\">');e?S(this,n):T(this,n,{x:-d,y:0},\n{x:r,y:h.size});e=f[0][0].toFixed(3)+\",\"+f[1][0].toFixed(3)+\",\"+f[0][1].toFixed(3)+\",\"+f[1][1].toFixed(3)+\",0,0\";b=k(b.x/q)+\",\"+k(b.y/q);n.push('<g_vml_:skew on=\"t\" matrix=\"',e,'\" ',' offset=\"',b,'\" origin=\"',d,' 0\" />','<g_vml_:path textpathok=\"true\" />','<g_vml_:textpath on=\"true\" string=\"',N(a),'\" style=\"v-text-align:',l,\";font:\",N(p),'\" /></g_vml_:line>');this.element_.insertAdjacentHTML(\"beforeEnd\",n.join(\"\"))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a,\nb,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML(\"beforeEnd\",'<span style=\"position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;\"></span>'),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML=\"\";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){};\nd.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR=\n13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}();\n/*tslint:enable*/\r\n/*eslint-enable*/\r\n/*jshint ignore:end*/","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location<State = any> extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase<LowerCaseFormMethod>;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `<Form>`,\n * useSubmit(), `<fetcher.Form>`, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude<FormMethod, \"get\">;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude<V7_FormMethod, \"GET\">;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs<Context> {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs<Context = any>\n extends DataFunctionArgs<Context> {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs<Context = any>\n extends DataFunctionArgs<Context> {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable<unknown> | null;\n\ntype DataFunctionReturnValue = Promise<DataFunctionValue> | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction<Context = any> = {\n (\n args: LoaderFunctionArgs<Context>,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction<Context = any> {\n (\n args: ActionFunctionArgs<Context>,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise<HandlerResult>\n ) => Promise<HandlerResult>;\n}\n\nexport interface DataStrategyFunctionArgs<Context = any>\n extends DataFunctionArgs<Context> {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise<HandlerResult[]>;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record<string, any>;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne<T, Key = keyof T> = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit<T, K> & Required<Pick<T, K>> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n (): Promise<RequireOne<Omit<R, ImmutableRouteKey>>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if you could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch<string, RouteObjectType>(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch<Data = unknown, Handle = unknown> {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam<Path>;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam<Path>];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce<Mutable<Params>>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how <a href> works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set<string> = new Set<string>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record<string, unknown>;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record<string, unknown>,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise<void>;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise<void>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n\n /**\n * Map of current blockers\n */\n blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial<FutureConfig>;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n activeDeferreds: Record<string, DeferredData> | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise<any>;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map<string, Set<string>> = new Map<\n string,\n Set<string>\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set<string>();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map<string, number>();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set<string>();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map<string, BlockerFunction>();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial<RouterState>,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set<string>([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record<string, RouteData> | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise<DataResult[]> {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve<DataResult>({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial<StaticHandlerFutureConfig>;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map<string, DeferredData>();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set<string>(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise<DataResult[]> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set<string>,\n fetchLoadMatches: Map<string, FetchLoadMatch>,\n fetchRedirectIds: Set<string>,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record<string, any> = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType<DataStrategyFunction> {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise<HandlerResult[]> {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set<string>()\n );\n let loadedMatches = new Set<string>();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters<DataStrategyMatch[\"resolve\"]>[0],\n staticContext?: unknown\n): Promise<HandlerResult> {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise<HandlerResult> => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise<HandlerResult> to\n // satisfy the function return value\n let abortPromise = new Promise<HandlerResult>((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise<HandlerResult>;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise<DataResult> {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map<string, DeferredData>,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map<string, Set<string>>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map<string, Set<string>>\n) {\n if (transitions.size > 0) {\n let json: Record<string, string[]> = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import { useState } from 'react';\n\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef<HTMLDivElement>()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return <div ref={attachRef} />\n * ```\n *\n * @category refs\n */\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useEffect, useRef } from 'react';\n\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\nfunction useCommittedRef(value) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n const ref = useCommittedRef(fn);\n return useCallback(function (...args) {\n return ref.current && ref.current(...args);\n }, [ref]);\n}","import { useEffect, useLayoutEffect } from 'react';\nconst isReactNative = typeof global !== 'undefined' &&\n// @ts-ignore\nglobal.navigator &&\n// @ts-ignore\nglobal.navigator.product === 'ReactNative';\nconst isDOM = typeof document !== 'undefined';\n\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n const a = toFnRef(refA);\n const b = toFnRef(refB);\n return value => {\n if (a) a(value);\n if (b) b(value);\n };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return <button ref={mergedRef} {...props}/>\n * })\n * ```\n *\n * @param refA A Callback or mutable Ref\n * @param refB A Callback or mutable Ref\n * @category refs\n */\nfunction useMergedRefs(refA, refB) {\n return useMemo(() => mergeRefs(refA, refB), [refA, refB]);\n}\nexport default useMergedRefs;","import { useRef, useEffect } from 'react';\n\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\nexport default function useMounted() {\n const mounted = useRef(true);\n const isMounted = useRef(() => mounted.current);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","const _excluded = [\"as\", \"disabled\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n const meta = {\n tagName\n };\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n if (disabled) {\n event.stopPropagation();\n return;\n }\n onClick == null ? void 0 : onClick(event);\n };\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n if (disabled) {\n href = undefined;\n }\n }\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. <Tag {...props} {...hookProps} />\n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","import * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext(null);\nexport default DropdownContext;","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import { useCallback } from 'react';\nimport useMounted from './useMounted';\n\n/**\n * `useSafeState` takes the return value of a `useState` hook and wraps the\n * setter to prevent updates onces the component has unmounted. Can used\n * with `useMergeState` and `useStateAsync` as well\n *\n * @param state The return value of a useStateHook\n *\n * ```ts\n * const [show, setShow] = useSafeState(useState(true));\n * ```\n */\n\nfunction useSafeState(state) {\n const isMounted = useMounted();\n return [state[0], useCallback(nextState => {\n if (!isMounted()) return;\n return state[1](nextState);\n }, [isMounted, state[1]])];\n}\nexport default useSafeState;","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import arrow from '@popperjs/core/lib/modifiers/arrow';\nimport computeStyles from '@popperjs/core/lib/modifiers/computeStyles';\nimport eventListeners from '@popperjs/core/lib/modifiers/eventListeners';\nimport flip from '@popperjs/core/lib/modifiers/flip';\nimport hide from '@popperjs/core/lib/modifiers/hide';\nimport offset from '@popperjs/core/lib/modifiers/offset';\nimport popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';\nimport preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';\nimport { placements } from '@popperjs/core/lib/enums';\nimport { popperGenerator } from '@popperjs/core/lib/popper-base';\n\n// For the common JS build we will turn this file into a bundle with no imports.\n// This is b/c the Popper lib is all esm files, and would break in a common js only environment\nexport const createPopper = popperGenerator({\n defaultModifiers: [hide, popperOffsets, computeStyles, eventListeners, offset, flip, preventOverflow, arrow]\n});\nexport { placements };","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","const _excluded = [\"enabled\", \"placement\", \"strategy\", \"modifiers\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { dequal } from 'dequal';\nimport useSafeState from '@restart/hooks/useSafeState';\nimport { createPopper } from './popper';\nconst disabledApplyStylesModifier = {\n name: 'applyStyles',\n enabled: false,\n phase: 'afterWrite',\n fn: () => undefined\n};\n\n// until docjs supports type exports...\n\nconst ariaDescribedByModifier = {\n name: 'ariaDescribedBy',\n enabled: true,\n phase: 'afterWrite',\n effect: ({\n state\n }) => () => {\n const {\n reference,\n popper\n } = state.elements;\n if ('removeAttribute' in reference) {\n const ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(id => id.trim() !== popper.id);\n if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));\n }\n },\n fn: ({\n state\n }) => {\n var _popper$getAttribute;\n const {\n popper,\n reference\n } = state.elements;\n const role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();\n if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {\n const ids = reference.getAttribute('aria-describedby');\n if (ids && ids.split(',').indexOf(popper.id) !== -1) {\n return;\n }\n reference.setAttribute('aria-describedby', ids ? `${ids},${popper.id}` : popper.id);\n }\n }\n};\nconst EMPTY_MODIFIERS = [];\n/**\n * Position an element relative some reference element using Popper.js\n *\n * @param referenceElement\n * @param popperElement\n * @param {object} options\n * @param {object=} options.modifiers Popper.js modifiers\n * @param {boolean=} options.enabled toggle the popper functionality on/off\n * @param {string=} options.placement The popper element placement relative to the reference element\n * @param {string=} options.strategy the positioning strategy\n * @param {function=} options.onCreate called when the popper is created\n * @param {function=} options.onUpdate called when the popper is updated\n *\n * @returns {UsePopperState} The popper state\n */\nfunction usePopper(referenceElement, popperElement, _ref = {}) {\n let {\n enabled = true,\n placement = 'bottom',\n strategy = 'absolute',\n modifiers = EMPTY_MODIFIERS\n } = _ref,\n config = _objectWithoutPropertiesLoose(_ref, _excluded);\n const prevModifiers = useRef(modifiers);\n const popperInstanceRef = useRef();\n const update = useCallback(() => {\n var _popperInstanceRef$cu;\n (_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();\n }, []);\n const forceUpdate = useCallback(() => {\n var _popperInstanceRef$cu2;\n (_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();\n }, []);\n const [popperState, setState] = useSafeState(useState({\n placement,\n update,\n forceUpdate,\n attributes: {},\n styles: {\n popper: {},\n arrow: {}\n }\n }));\n const updateModifier = useMemo(() => ({\n name: 'updateStateModifier',\n enabled: true,\n phase: 'write',\n requires: ['computeStyles'],\n fn: ({\n state\n }) => {\n const styles = {};\n const attributes = {};\n Object.keys(state.elements).forEach(element => {\n styles[element] = state.styles[element];\n attributes[element] = state.attributes[element];\n });\n setState({\n state,\n styles,\n attributes,\n update,\n forceUpdate,\n placement: state.placement\n });\n }\n }), [update, forceUpdate, setState]);\n const nextModifiers = useMemo(() => {\n if (!dequal(prevModifiers.current, modifiers)) {\n prevModifiers.current = modifiers;\n }\n return prevModifiers.current;\n }, [modifiers]);\n useEffect(() => {\n if (!popperInstanceRef.current || !enabled) return;\n popperInstanceRef.current.setOptions({\n placement,\n strategy,\n modifiers: [...nextModifiers, updateModifier, disabledApplyStylesModifier]\n });\n }, [strategy, placement, updateModifier, enabled, nextModifiers]);\n useEffect(() => {\n if (!enabled || referenceElement == null || popperElement == null) {\n return undefined;\n }\n popperInstanceRef.current = createPopper(referenceElement, popperElement, Object.assign({}, config, {\n placement,\n strategy,\n modifiers: [...nextModifiers, ariaDescribedByModifier, updateModifier]\n }));\n return () => {\n if (popperInstanceRef.current != null) {\n popperInstanceRef.current.destroy();\n popperInstanceRef.current = undefined;\n setState(s => Object.assign({}, s, {\n attributes: {},\n styles: {\n popper: {}\n }\n }));\n }\n };\n // This is only run once to _create_ the popper\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, referenceElement, popperElement]);\n return popperState;\n}\nexport default usePopper;","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\nconst noop = () => {};\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nexport const getRefTarget = ref => ref && ('current' in ref ? ref.current : ref);\nconst InitialTriggerEvents = {\n click: 'mousedown',\n mouseup: 'mousedown',\n pointerup: 'pointerdown'\n};\n\n/**\n * The `useClickOutside` hook registers your callback on the document that fires\n * when a pointer event is registered outside of the provided ref or element.\n *\n * @param {Ref<HTMLElement>| HTMLElement} ref The element boundary\n * @param {function} onClickOutside\n * @param {object=} options\n * @param {boolean=} options.disabled\n * @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useClickOutside(ref, onClickOutside = noop, {\n disabled,\n clickTrigger = 'click'\n} = {}) {\n const preventMouseClickOutsideRef = useRef(false);\n const waitingForTrigger = useRef(false);\n const handleMouseCapture = useCallback(e => {\n const currentTarget = getRefTarget(ref);\n warning(!!currentTarget, 'ClickOutside captured a close event but does not have a ref to compare it to. ' + 'useClickOutside(), should be passed a ref that resolves to a DOM node');\n preventMouseClickOutsideRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target) || waitingForTrigger.current;\n waitingForTrigger.current = false;\n }, [ref]);\n const handleInitialMouse = useEventCallback(e => {\n const currentTarget = getRefTarget(ref);\n if (currentTarget && contains(currentTarget, e.target)) {\n waitingForTrigger.current = true;\n }\n });\n const handleMouse = useEventCallback(e => {\n if (!preventMouseClickOutsideRef.current) {\n onClickOutside(e);\n }\n });\n useEffect(() => {\n var _ownerWindow$event, _ownerWindow$parent;\n if (disabled || ref == null) return undefined;\n const doc = ownerDocument(getRefTarget(ref));\n const ownerWindow = doc.defaultView || window;\n\n // Store the current event to avoid triggering handlers immediately\n // For things rendered in an iframe, the event might originate on the parent window\n // so we should fall back to that global event if the local one doesn't exist\n // https://github.com/facebook/react/issues/20074\n let currentEvent = (_ownerWindow$event = ownerWindow.event) != null ? _ownerWindow$event : (_ownerWindow$parent = ownerWindow.parent) == null ? void 0 : _ownerWindow$parent.event;\n let removeInitialTriggerListener = null;\n if (InitialTriggerEvents[clickTrigger]) {\n removeInitialTriggerListener = listen(doc, InitialTriggerEvents[clickTrigger], handleInitialMouse, true);\n }\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n const removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n const removeMouseListener = listen(doc, clickTrigger, e => {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n handleMouse(e);\n });\n let mobileSafariHackListeners = [];\n if ('ontouchstart' in doc.documentElement) {\n mobileSafariHackListeners = [].slice.call(doc.body.children).map(el => listen(el, 'mousemove', noop));\n }\n return () => {\n removeInitialTriggerListener == null ? void 0 : removeInitialTriggerListener();\n removeMouseCaptureListener();\n removeMouseListener();\n mobileSafariHackListeners.forEach(remove => remove());\n };\n }, [ref, disabled, clickTrigger, handleMouseCapture, handleInitialMouse, handleMouse]);\n}\nexport default useClickOutside;","export function toModifierMap(modifiers) {\n const result = {};\n if (!Array.isArray(modifiers)) {\n return modifiers || result;\n }\n\n // eslint-disable-next-line no-unused-expressions\n modifiers == null ? void 0 : modifiers.forEach(m => {\n result[m.name] = m;\n });\n return result;\n}\nexport function toModifierArray(map = {}) {\n if (Array.isArray(map)) return map;\n return Object.keys(map).map(k => {\n map[k].name = k;\n return map[k];\n });\n}\nexport default function mergeOptionsWithPopperConfig({\n enabled,\n enableEvents,\n placement,\n flip,\n offset,\n fixed,\n containerPadding,\n arrowElement,\n popperConfig = {}\n}) {\n var _modifiers$eventListe, _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;\n const modifiers = toModifierMap(popperConfig.modifiers);\n return Object.assign({}, popperConfig, {\n placement,\n enabled,\n strategy: fixed ? 'fixed' : popperConfig.strategy,\n modifiers: toModifierArray(Object.assign({}, modifiers, {\n eventListeners: {\n enabled: enableEvents,\n options: (_modifiers$eventListe = modifiers.eventListeners) == null ? void 0 : _modifiers$eventListe.options\n },\n preventOverflow: Object.assign({}, modifiers.preventOverflow, {\n options: containerPadding ? Object.assign({\n padding: containerPadding\n }, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options\n }),\n offset: {\n options: Object.assign({\n offset\n }, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)\n },\n arrow: Object.assign({}, modifiers.arrow, {\n enabled: !!arrowElement,\n options: Object.assign({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {\n element: arrowElement\n })\n }),\n flip: Object.assign({\n enabled: !!flip\n }, modifiers.flip)\n }))\n });\n}","const _excluded = [\"children\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useContext, useRef } from 'react';\nimport * as React from 'react';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport DropdownContext from './DropdownContext';\nimport usePopper from './usePopper';\nimport useClickOutside from './useClickOutside';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst noop = () => {};\n\n/**\n * @memberOf Dropdown\n * @param {object} options\n * @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection\n * @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle\n * @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`\n * @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.\n * @param {string} options.rootCloseEvent The pointer event to listen for when determining \"clicks outside\" the menu for triggering a close.\n * @param {object} options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.\n */\nexport function useDropdownMenu(options = {}) {\n const context = useContext(DropdownContext);\n const [arrowElement, attachArrowRef] = useCallbackRef();\n const hasShownRef = useRef(false);\n const {\n flip,\n offset,\n rootCloseEvent,\n fixed = false,\n placement: placementOverride,\n popperConfig = {},\n enableEventListeners = true,\n usePopper: shouldUsePopper = !!context\n } = options;\n const show = (context == null ? void 0 : context.show) == null ? !!options.show : context.show;\n if (show && !hasShownRef.current) {\n hasShownRef.current = true;\n }\n const handleClose = e => {\n context == null ? void 0 : context.toggle(false, e);\n };\n const {\n placement,\n setMenu,\n menuElement,\n toggleElement\n } = context || {};\n const popper = usePopper(toggleElement, menuElement, mergeOptionsWithPopperConfig({\n placement: placementOverride || placement || 'bottom-start',\n enabled: shouldUsePopper,\n enableEvents: enableEventListeners == null ? show : enableEventListeners,\n offset,\n flip,\n fixed,\n arrowElement,\n popperConfig\n }));\n const menuProps = Object.assign({\n ref: setMenu || noop,\n 'aria-labelledby': toggleElement == null ? void 0 : toggleElement.id\n }, popper.attributes.popper, {\n style: popper.styles.popper\n });\n const metadata = {\n show,\n placement,\n hasShown: hasShownRef.current,\n toggle: context == null ? void 0 : context.toggle,\n popper: shouldUsePopper ? popper : null,\n arrowProps: shouldUsePopper ? Object.assign({\n ref: attachArrowRef\n }, popper.attributes.arrow, {\n style: popper.styles.arrow\n }) : {}\n };\n useClickOutside(menuElement, handleClose, {\n clickTrigger: rootCloseEvent,\n disabled: !show\n });\n return [menuProps, metadata];\n}\nconst defaultProps = {\n usePopper: true\n};\n/**\n * Also exported as `<Dropdown.Menu>` from `Dropdown`.\n *\n * @displayName DropdownMenu\n * @memberOf Dropdown\n */\nfunction DropdownMenu(_ref) {\n let {\n children\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [props, meta] = useDropdownMenu(options);\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children(props, meta)\n });\n}\nDropdownMenu.displayName = 'DropdownMenu';\nDropdownMenu.defaultProps = defaultProps;\n\n/** @component */\nexport default DropdownMenu;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {JSX, ReactNode, useContext, useLayoutEffect, useMemo, useRef, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n prefix: string,\n current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\n\nconst SSRContext = React.createContext<SSRContextValue>(defaultContext);\nconst IsSSRContext = React.createContext(false);\n\nexport interface SSRProviderProps {\n /** Your application here. */\n children: ReactNode\n}\n\n// This is only used in React < 18.\nfunction LegacySSRProvider(props: SSRProviderProps): JSX.Element {\n let cur = useContext(SSRContext);\n let counter = useCounter(cur === defaultContext);\n let [isSSR, setIsSSR] = useState(true);\n let value: SSRContextValue = useMemo(() => ({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === defaultContext ? '' : `${cur.prefix}-${counter}`,\n current: 0\n }), [cur, counter]);\n\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof document !== 'undefined') {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n setIsSSR(false);\n }, []);\n }\n\n return (\n <SSRContext.Provider value={value}>\n <IsSSRContext.Provider value={isSSR}>\n {props.children}\n </IsSSRContext.Provider>\n </SSRContext.Provider>\n );\n}\n\nlet warnedAboutSSRProvider = false;\n\n/**\n * When using SSR with React Aria in React 16 or 17, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n if (typeof React['useId'] === 'function') {\n if (process.env.NODE_ENV !== 'test' && !warnedAboutSSRProvider) {\n console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n warnedAboutSSRProvider = true;\n }\n return <>{props.children}</>;\n }\n return <LegacySSRProvider {...props} />;\n}\n\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nlet componentIds = new WeakMap();\n\nfunction useCounter(isDisabled = false) {\n let ctx = useContext(SSRContext);\n let ref = useRef<number | null>(null);\n // eslint-disable-next-line rulesdir/pure-render\n if (ref.current === null && !isDisabled) {\n // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n // This means our id counter will be incremented twice instead of once. This is a problem because on the\n // server, components are only rendered once and so ids generated on the server won't match the client.\n // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n // To ensure that we only increment the global counter once, we store the starting id for this component in\n // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n // Since React runs the second render immediately after the first, this is safe.\n // @ts-ignore\n let currentOwner = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?.ReactCurrentOwner?.current;\n if (currentOwner) {\n let prevComponentValue = componentIds.get(currentOwner);\n if (prevComponentValue == null) {\n // On the first render, and first call to useId, store the id and state in our weak map.\n componentIds.set(currentOwner, {\n id: ctx.current,\n state: currentOwner.memoizedState\n });\n } else if (currentOwner.memoizedState !== prevComponentValue.state) {\n // On the second render, the memoizedState gets reset by React.\n // Reset the counter, and remove from the weak map so we don't\n // do this for subsequent useId calls.\n ctx.current = prevComponentValue.id;\n componentIds.delete(currentOwner);\n }\n }\n\n // eslint-disable-next-line rulesdir/pure-render\n ref.current = ++ctx.current;\n }\n\n // eslint-disable-next-line rulesdir/pure-render\n return ref.current;\n}\n\nfunction useLegacySSRSafeId(defaultId?: string): string {\n let ctx = useContext(SSRContext);\n\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === defaultContext && !canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n }\n\n let counter = useCounter(!!defaultId);\n let prefix = ctx === defaultContext && process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${ctx.prefix}`;\n return defaultId || `${prefix}-${counter}`;\n}\n\nfunction useModernSSRSafeId(defaultId?: string): string {\n // @ts-ignore\n let id = React.useId();\n let [didSSR] = useState(useIsSSR());\n let prefix = didSSR || process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${defaultContext.prefix}`;\n return defaultId || `${prefix}-${id}`;\n}\n\n// Use React.useId in React 18 if available, otherwise fall back to our old implementation.\n/** @private */\nexport const useSSRSafeId = typeof React['useId'] === 'function' ? useModernSSRSafeId : useLegacySSRSafeId;\n\nfunction getSnapshot() {\n return false;\n}\n\nfunction getServerSnapshot() {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction subscribe(onStoreChange: () => void): () => void {\n // noop\n return () => {};\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n if (typeof React['useSyncExternalStore'] === 'function') {\n return React['useSyncExternalStore'](subscribe, getSnapshot, getServerSnapshot);\n }\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useContext(IsSSRContext);\n}\n","import { useContext, useCallback } from 'react';\nimport * as React from 'react';\nimport { useSSRSafeId } from './ssr';\nimport DropdownContext from './DropdownContext';\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const isRoleMenu = el => {\n var _el$getAttribute;\n return ((_el$getAttribute = el.getAttribute('role')) == null ? void 0 : _el$getAttribute.toLowerCase()) === 'menu';\n};\nconst noop = () => {};\n\n/**\n * Wires up Dropdown toggle functionality, returning a set a props to attach\n * to the element that functions as the dropdown toggle (generally a button).\n *\n * @memberOf Dropdown\n */\nexport function useDropdownToggle() {\n const id = useSSRSafeId();\n const {\n show = false,\n toggle = noop,\n setToggle,\n menuElement\n } = useContext(DropdownContext) || {};\n const handleClick = useCallback(e => {\n toggle(!show, e);\n }, [show, toggle]);\n const props = {\n id,\n ref: setToggle || noop,\n onClick: handleClick,\n 'aria-expanded': !!show\n };\n\n // This is maybe better down in an effect, but\n // the component is going to update anyway when the menu element\n // is set so might return new props.\n if (menuElement && isRoleMenu(menuElement)) {\n props['aria-haspopup'] = true;\n }\n return [props, {\n show,\n toggle\n }];\n}\n/**\n * Also exported as `<Dropdown.Toggle>` from `Dropdown`.\n *\n * @displayName DropdownToggle\n * @memberOf Dropdown\n */\nfunction DropdownToggle({\n children\n}) {\n const [props, meta] = useDropdownToggle();\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children(props, meta)\n });\n}\nDropdownToggle.displayName = 'DropdownToggle';\n\n/** @component */\nexport default DropdownToggle;","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\">',\r\n '<filter id=\"' + id + '\">',\r\n '<feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0',\r\n '\"/>',\r\n '</filter>',\r\n '</svg>',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\n\n this.ctxTransform(this.transformCanvas.props);\n this.canvasContext.beginPath();\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n this.canvasContext.closePath();\n this.canvasContext.clip();\n this.renderFrame(this.renderedFrame, true);\n };\n\n CanvasRendererBase.prototype.destroy = function () {\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n","module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col) {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint > lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+ totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n PATTERN_POSITION_TABLE : [\n\t [],\n\t [6, 18],\n\t [6, 22],\n\t [6, 26],\n\t [6, 30],\n\t [6, 34],\n\t [6, 22, 38],\n\t [6, 24, 42],\n\t [6, 26, 46],\n\t [6, 28, 50],\n\t [6, 30, 54],\t\t\n\t [6, 32, 58],\n\t [6, 34, 62],\n\t [6, 26, 46, 66],\n\t [6, 26, 48, 70],\n\t [6, 26, 50, 74],\n\t [6, 30, 54, 78],\n\t [6, 30, 56, 82],\n\t [6, 30, 58, 86],\n\t [6, 34, 62, 90],\n\t [6, 28, 50, 72, 94],\n\t [6, 26, 50, 74, 98],\n\t [6, 30, 54, 78, 102],\n\t [6, 28, 54, 80, 106],\n\t [6, 32, 58, 84, 110],\n\t [6, 30, 58, 86, 114],\n\t [6, 34, 62, 90, 118],\n\t [6, 26, 50, 74, 98, 122],\n\t [6, 30, 54, 78, 102, 126],\n\t [6, 26, 52, 78, 104, 130],\n\t [6, 30, 56, 82, 108, 134],\n\t [6, 34, 60, 86, 112, 138],\n\t [6, 30, 58, 86, 114, 142],\n\t [6, 34, 62, 90, 118, 146],\n\t [6, 30, 54, 78, 102, 126, 150],\n\t [6, 24, 50, 76, 102, 128, 154],\n\t [6, 28, 54, 80, 106, 132, 158],\n\t [6, 32, 58, 84, 110, 136, 162],\n\t [6, 26, 54, 82, 110, 138, 166],\n\t [6, 30, 58, 86, 114, 142, 170]\n ],\n\n G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n getBCHTypeInfo : function(data) {\n\t var d = data << 10;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t }\n\t return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n },\n\n getBCHTypeNumber : function(data) {\n\t var d = data << 12;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t }\n\t return (data << 12) | d;\n },\n\n getBCHDigit : function(data) {\n\n\t var digit = 0;\n\n\t while (data != 0) {\n\t\t digit++;\n\t\t data >>>= 1;\n\t }\n\n\t return digit;\n },\n\n getPatternPosition : function(typeNumber) {\n\t return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n\n getMask : function(maskPattern, i, j) {\n\t \n\t switch (maskPattern) {\n\t\t \n\t case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t default :\n\t\t throw new Error(\"bad maskPattern:\" + maskPattern);\n\t }\n },\n\n getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t var a = new Polynomial([1], 0);\n\n\t for (var i = 0; i < errorCorrectLength; i++) {\n\t\t a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t }\n\n\t return a;\n },\n\n getLengthInBits : function(mode, type) {\n\n\t if (1 <= type && type < 10) {\n\n\t\t // 1 - 9\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 10;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t case Mode.MODE_KANJI \t: return 8;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 27) {\n\n\t\t // 10 - 26\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 12;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 10;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 41) {\n\n\t\t // 27 - 40\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 14;\n\t\t case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 12;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else {\n\t\t throw new Error(\"type:\" + type);\n\t }\n },\n\n getLostPoint : function(qrCode) {\n\t \n\t var moduleCount = qrCode.getModuleCount();\n\t \n\t var lostPoint = 0;\n\t \n\t // LEVEL1\n\t \n\t for (var row = 0; row < moduleCount; row++) {\n\n\t\t for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t var sameCount = 0;\n\t\t\t var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t continue;\n\t\t\t\t }\n\n\t\t\t\t for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (r == 0 && c == 0) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t sameCount++;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\n\t\t\t if (sameCount > 5) {\n\t\t\t\t lostPoint += (3 + sameCount - 5);\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL2\n\n\t for (var row = 0; row < moduleCount - 1; row++) {\n\t\t for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t var count = 0;\n\t\t\t if (qrCode.isDark(row, col ) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col ) ) count++;\n\t\t\t if (qrCode.isDark(row, col + 1) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t if (count == 0 || count == 4) {\n\t\t\t\t lostPoint += 3;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL3\n\n\t for (var row = 0; row < moduleCount; row++) {\n\t\t for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t && qrCode.isDark(row, col + 2)\n\t\t\t\t\t && qrCode.isDark(row, col + 3)\n\t\t\t\t\t && qrCode.isDark(row, col + 4)\n\t\t\t\t\t && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t && qrCode.isDark(row, col + 6) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t && qrCode.isDark(row + 2, col)\n\t\t\t\t\t && qrCode.isDark(row + 3, col)\n\t\t\t\t\t && qrCode.isDark(row + 4, col)\n\t\t\t\t\t && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t && qrCode.isDark(row + 6, col) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL4\n\t \n\t var darkCount = 0;\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount; row++) {\n\t\t\t if (qrCode.isDark(row, col) ) {\n\t\t\t\t darkCount++;\n\t\t\t }\n\t\t }\n\t }\n\t \n\t var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t lostPoint += ratio * 10;\n\n\t return lostPoint;\t\t\n }\n};\n\nmodule.exports = QRUtil;\n","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction(...funcs) {\n return funcs.filter(f => f != null).reduce((acc, f) => {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n if (acc === null) return f;\n return function chainedFunction(...args) {\n // @ts-ignore\n acc.apply(this, args);\n // @ts-ignore\n f.apply(this, args);\n };\n }, null);\n}\nexport default createChainedFunction;","\"use client\";\n\nimport React, { useCallback, useRef } from 'react';\nimport Transition from 'react-transition-group/Transition';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport safeFindDOMNode from './safeFindDOMNode';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Normalizes Transition callbacks when nodeRef is used.\nconst TransitionWrapper = /*#__PURE__*/React.forwardRef(({\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n addEndListener,\n children,\n childRef,\n ...props\n}, ref) => {\n const nodeRef = useRef(null);\n const mergedRef = useMergedRefs(nodeRef, childRef);\n const attachRef = r => {\n mergedRef(safeFindDOMNode(r));\n };\n const normalize = callback => param => {\n if (callback && nodeRef.current) {\n callback(nodeRef.current, param);\n }\n };\n\n /* eslint-disable react-hooks/exhaustive-deps */\n const handleEnter = useCallback(normalize(onEnter), [onEnter]);\n const handleEntering = useCallback(normalize(onEntering), [onEntering]);\n const handleEntered = useCallback(normalize(onEntered), [onEntered]);\n const handleExit = useCallback(normalize(onExit), [onExit]);\n const handleExiting = useCallback(normalize(onExiting), [onExiting]);\n const handleExited = useCallback(normalize(onExited), [onExited]);\n const handleAddEndListener = useCallback(normalize(addEndListener), [addEndListener]);\n /* eslint-enable react-hooks/exhaustive-deps */\n\n return /*#__PURE__*/_jsx(Transition, {\n ref: ref,\n ...props,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n children: typeof children === 'function' ? (status, innerProps) =>\n // TODO: Types for RTG missing innerProps, so need to cast.\n children(status, {\n ...innerProps,\n ref: attachRef\n }) : /*#__PURE__*/React.cloneElement(children, {\n ref: attachRef\n })\n });\n});\nexport default TransitionWrapper;","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n return componentOrElement != null ? componentOrElement : null;\n}","import classNames from 'classnames';\nimport css from 'dom-helpers/css';\nimport React, { useMemo } from 'react';\nimport { ENTERED, ENTERING, EXITED, EXITING } from 'react-transition-group/Transition';\nimport transitionEndListener from './transitionEndListener';\nimport createChainedFunction from './createChainedFunction';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nimport TransitionWrapper from './TransitionWrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst MARGINS = {\n height: ['marginTop', 'marginBottom'],\n width: ['marginLeft', 'marginRight']\n};\nfunction getDefaultDimensionValue(dimension, elem) {\n const offset = `offset${dimension[0].toUpperCase()}${dimension.slice(1)}`;\n const value = elem[offset];\n const margins = MARGINS[dimension];\n return value +\n // @ts-ignore\n parseInt(css(elem, margins[0]), 10) +\n // @ts-ignore\n parseInt(css(elem, margins[1]), 10);\n}\nconst collapseStyles = {\n [EXITED]: 'collapse',\n [EXITING]: 'collapsing',\n [ENTERING]: 'collapsing',\n [ENTERED]: 'collapse show'\n};\nconst Collapse = /*#__PURE__*/React.forwardRef(({\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n className,\n children,\n dimension = 'height',\n in: inProp = false,\n timeout = 300,\n mountOnEnter = false,\n unmountOnExit = false,\n appear = false,\n getDimensionValue = getDefaultDimensionValue,\n ...props\n}, ref) => {\n /* Compute dimension */\n const computedDimension = typeof dimension === 'function' ? dimension() : dimension;\n\n /* -- Expanding -- */\n const handleEnter = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = '0';\n }, onEnter), [computedDimension, onEnter]);\n const handleEntering = useMemo(() => createChainedFunction(elem => {\n const scroll = `scroll${computedDimension[0].toUpperCase()}${computedDimension.slice(1)}`;\n elem.style[computedDimension] = `${elem[scroll]}px`;\n }, onEntering), [computedDimension, onEntering]);\n const handleEntered = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = null;\n }, onEntered), [computedDimension, onEntered]);\n\n /* -- Collapsing -- */\n const handleExit = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = `${getDimensionValue(computedDimension, elem)}px`;\n triggerBrowserReflow(elem);\n }, onExit), [onExit, getDimensionValue, computedDimension]);\n const handleExiting = useMemo(() => createChainedFunction(elem => {\n elem.style[computedDimension] = null;\n }, onExiting), [computedDimension, onExiting]);\n return /*#__PURE__*/_jsx(TransitionWrapper, {\n ref: ref,\n addEndListener: transitionEndListener,\n ...props,\n \"aria-expanded\": props.role ? inProp : null,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: handleEntered,\n onExit: handleExit,\n onExiting: handleExiting,\n childRef: children.ref,\n in: inProp,\n timeout: timeout,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n appear: appear,\n children: (state, innerProps) => /*#__PURE__*/React.cloneElement(children, {\n ...innerProps,\n className: classNames(className, children.props.className, collapseStyles[state], computedDimension === 'width' && 'collapse-horizontal')\n })\n });\n});\n\n// @ts-ignore\n\nexport default Collapse;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","\"use client\";\n\nimport * as React from 'react';\nexport function isAccordionItemSelected(activeEventKey, eventKey) {\n return Array.isArray(activeEventKey) ? activeEventKey.includes(eventKey) : activeEventKey === eventKey;\n}\nconst context = /*#__PURE__*/React.createContext({});\ncontext.displayName = 'AccordionContext';\nexport default context;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport Collapse from './Collapse';\nimport AccordionContext, { isAccordionItemSelected } from './AccordionContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * This component accepts all of [`Collapse`'s props](/docs/utilities/transitions#collapse-1).\n */\nconst AccordionCollapse = /*#__PURE__*/React.forwardRef(({\n as: Component = 'div',\n bsPrefix,\n className,\n children,\n eventKey,\n ...props\n}, ref) => {\n const {\n activeEventKey\n } = useContext(AccordionContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-collapse');\n return /*#__PURE__*/_jsx(Collapse, {\n ref: ref,\n in: isAccordionItemSelected(activeEventKey, eventKey),\n ...props,\n className: classNames(className, bsPrefix),\n children: /*#__PURE__*/_jsx(Component, {\n children: React.Children.only(children)\n })\n });\n});\nAccordionCollapse.displayName = 'AccordionCollapse';\nexport default AccordionCollapse;","\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext({\n eventKey: ''\n});\ncontext.displayName = 'AccordionItemContext';\nexport default context;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionCollapse from './AccordionCollapse';\nimport AccordionItemContext from './AccordionItemContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AccordionBody = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-body');\n const {\n eventKey\n } = useContext(AccordionItemContext);\n return /*#__PURE__*/_jsx(AccordionCollapse, {\n eventKey: eventKey,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix)\n })\n });\n});\nAccordionBody.displayName = 'AccordionBody';\nexport default AccordionBody;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport classNames from 'classnames';\nimport AccordionContext, { isAccordionItemSelected } from './AccordionContext';\nimport AccordionItemContext from './AccordionItemContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useAccordionButton(eventKey, onClick) {\n const {\n activeEventKey,\n onSelect,\n alwaysOpen\n } = useContext(AccordionContext);\n return e => {\n /*\n Compare the event key in context with the given event key.\n If they are the same, then collapse the component.\n */\n let eventKeyPassed = eventKey === activeEventKey ? null : eventKey;\n if (alwaysOpen) {\n if (Array.isArray(activeEventKey)) {\n if (activeEventKey.includes(eventKey)) {\n eventKeyPassed = activeEventKey.filter(k => k !== eventKey);\n } else {\n eventKeyPassed = [...activeEventKey, eventKey];\n }\n } else {\n // activeEventKey is undefined.\n eventKeyPassed = [eventKey];\n }\n }\n onSelect == null ? void 0 : onSelect(eventKeyPassed, e);\n onClick == null ? void 0 : onClick(e);\n };\n}\nconst AccordionButton = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'button',\n bsPrefix,\n className,\n onClick,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-button');\n const {\n eventKey\n } = useContext(AccordionItemContext);\n const accordionOnClick = useAccordionButton(eventKey, onClick);\n const {\n activeEventKey\n } = useContext(AccordionContext);\n if (Component === 'button') {\n props.type = 'button';\n }\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n onClick: accordionOnClick,\n ...props,\n \"aria-expanded\": Array.isArray(activeEventKey) ? activeEventKey.includes(eventKey) : eventKey === activeEventKey,\n className: classNames(className, bsPrefix, !isAccordionItemSelected(activeEventKey, eventKey) && 'collapsed')\n });\n});\nAccordionButton.displayName = 'AccordionButton';\nexport default AccordionButton;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionButton from './AccordionButton';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AccordionHeader = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'h2',\n bsPrefix,\n className,\n children,\n onClick,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-header');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix),\n children: /*#__PURE__*/_jsx(AccordionButton, {\n onClick: onClick,\n children: children\n })\n });\n});\nAccordionHeader.displayName = 'AccordionHeader';\nexport default AccordionHeader;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionItemContext from './AccordionItemContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst AccordionItem = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n eventKey,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion-item');\n const contextValue = useMemo(() => ({\n eventKey\n }), [eventKey]);\n return /*#__PURE__*/_jsx(AccordionItemContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix)\n })\n });\n});\nAccordionItem.displayName = 'AccordionItem';\nexport default AccordionItem;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AccordionBody from './AccordionBody';\nimport AccordionButton from './AccordionButton';\nimport AccordionCollapse from './AccordionCollapse';\nimport AccordionContext from './AccordionContext';\nimport AccordionHeader from './AccordionHeader';\nimport AccordionItem from './AccordionItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Accordion = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n activeKey,\n bsPrefix,\n className,\n onSelect,\n flush,\n alwaysOpen,\n ...controlledProps\n } = useUncontrolled(props, {\n activeKey: 'onSelect'\n });\n const prefix = useBootstrapPrefix(bsPrefix, 'accordion');\n const contextValue = useMemo(() => ({\n activeEventKey: activeKey,\n onSelect,\n alwaysOpen\n }), [activeKey, onSelect, alwaysOpen]);\n return /*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...controlledProps,\n className: classNames(className, prefix, flush && `${prefix}-flush`)\n })\n });\n});\nAccordion.displayName = 'Accordion';\nexport default Object.assign(Accordion, {\n Button: AccordionButton,\n Collapse: AccordionCollapse,\n Item: AccordionItem,\n Header: AccordionHeader,\n Body: AccordionBody\n});","var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n/**\n * Runs `querySelectorAll` on a given element.\n * \n * @param element the element\n * @param selector the selector\n */\n\nexport default function qsa(element, selector) {\n return toArray(element.querySelectorAll(selector));\n}","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { useCallback, useRef, useState } from 'react';\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n const wasPropRef = useRef(propValue !== undefined);\n const [stateValue, setState] = useState(defaultValue);\n const isProp = propValue !== undefined;\n const wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n return [isProp ? propValue : stateValue, useCallback((...args) => {\n const [value, ...rest] = args;\n let returnValue = handler == null ? void 0 : handler(value, ...rest);\n setState(value);\n return returnValue;\n }, [handler])];\n}\nexport { useUncontrolledProp };\nexport function useUncontrolled(props, config) {\n return Object.keys(config).reduce((result, fieldName) => {\n const _ref = result,\n _defaultKey = defaultKey(fieldName),\n {\n [_defaultKey]: defaultValue,\n [fieldName]: propsValue\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [_defaultKey, fieldName].map(_toPropertyKey));\n const handlerName = config[fieldName];\n const [value, handler] = useUncontrolledProp(propsValue, defaultValue, props[handlerName]);\n return Object.assign({}, rest, {\n [fieldName]: value,\n [handlerName]: handler\n });\n }, props);\n}","import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","import * as React from 'react';\nconst NavContext = /*#__PURE__*/React.createContext(null);\nNavContext.displayName = 'NavContext';\nexport default NavContext;","export const ATTRIBUTE_PREFIX = `data-rr-ui-`;\nexport const PROPERTY_PREFIX = `rrUi`;\nexport function dataAttr(property) {\n return `${ATTRIBUTE_PREFIX}${property}`;\n}\nexport function dataProp(property) {\n return `${PROPERTY_PREFIX}${property}`;\n}","const _excluded = [\"eventKey\", \"disabled\", \"onClick\", \"active\", \"as\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport NavContext from './NavContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Create a dropdown item. Returns a set of props for the dropdown item component\n * including an `onClick` handler that prevents selection when the item is disabled\n */\nexport function useDropdownItem({\n key,\n href,\n active,\n disabled,\n onClick\n}) {\n const onSelectCtx = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const {\n activeKey\n } = navContext || {};\n const eventKey = makeEventKey(key, href);\n const isActive = active == null && key != null ? makeEventKey(activeKey) === eventKey : active;\n const handleClick = useEventCallback(event => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(event);\n if (onSelectCtx && !event.isPropagationStopped()) {\n onSelectCtx(eventKey, event);\n }\n });\n return [{\n onClick: handleClick,\n 'aria-disabled': disabled || undefined,\n 'aria-selected': isActive,\n [dataAttr('dropdown-item')]: ''\n }, {\n isActive\n }];\n}\nconst DropdownItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n eventKey,\n disabled,\n onClick,\n active,\n as: Component = Button\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [dropdownItemProps] = useDropdownItem({\n key: eventKey,\n href: props.href,\n disabled,\n onClick,\n active\n });\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n ref: ref\n }, dropdownItemProps));\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","import { createContext, useContext } from 'react';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nconst Context = /*#__PURE__*/createContext(canUseDOM ? window : undefined);\nexport const WindowProvider = Context.Provider;\n\n/**\n * The document \"window\" placed in React context. Helpful for determining\n * SSR context, or when rendering into an iframe.\n *\n * @returns the current window\n */\nexport default function useWindow() {\n return useContext(Context);\n}","import qsa from 'dom-helpers/querySelectorAll';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport { useCallback, useRef, useEffect, useMemo, useContext } from 'react';\nimport * as React from 'react';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useEventListener from '@restart/hooks/useEventListener';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownMenu from './DropdownMenu';\nimport DropdownToggle, { isRoleMenu } from './DropdownToggle';\nimport DropdownItem from './DropdownItem';\nimport SelectableContext from './SelectableContext';\nimport { dataAttr } from './DataKey';\nimport useWindow from './useWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useRefWithUpdate() {\n const forceUpdate = useForceUpdate();\n const ref = useRef(null);\n const attachRef = useCallback(element => {\n ref.current = element;\n // ensure that a menu set triggers an update for consumers\n forceUpdate();\n }, [forceUpdate]);\n return [ref, attachRef];\n}\n\n/**\n * @displayName Dropdown\n * @public\n */\nfunction Dropdown({\n defaultShow,\n show: rawShow,\n onSelect,\n onToggle: rawOnToggle,\n itemSelector = `* [${dataAttr('dropdown-item')}]`,\n focusFirstItemOnShow,\n placement = 'bottom-start',\n children\n}) {\n const window = useWindow();\n const [show, onToggle] = useUncontrolledProp(rawShow, defaultShow, rawOnToggle);\n\n // We use normal refs instead of useCallbackRef in order to populate the\n // the value as quickly as possible, otherwise the effect to focus the element\n // may run before the state value is set\n const [menuRef, setMenu] = useRefWithUpdate();\n const menuElement = menuRef.current;\n const [toggleRef, setToggle] = useRefWithUpdate();\n const toggleElement = toggleRef.current;\n const lastShow = usePrevious(show);\n const lastSourceEvent = useRef(null);\n const focusInDropdown = useRef(false);\n const onSelectCtx = useContext(SelectableContext);\n const toggle = useCallback((nextShow, event, source = event == null ? void 0 : event.type) => {\n onToggle(nextShow, {\n originalEvent: event,\n source\n });\n }, [onToggle]);\n const handleSelect = useEventCallback((key, event) => {\n onSelect == null ? void 0 : onSelect(key, event);\n toggle(false, event, 'select');\n if (!event.isPropagationStopped()) {\n onSelectCtx == null ? void 0 : onSelectCtx(key, event);\n }\n });\n const context = useMemo(() => ({\n toggle,\n placement,\n show,\n menuElement,\n toggleElement,\n setMenu,\n setToggle\n }), [toggle, placement, show, menuElement, toggleElement, setMenu, setToggle]);\n if (menuElement && lastShow && !show) {\n focusInDropdown.current = menuElement.contains(menuElement.ownerDocument.activeElement);\n }\n const focusToggle = useEventCallback(() => {\n if (toggleElement && toggleElement.focus) {\n toggleElement.focus();\n }\n });\n const maybeFocusFirst = useEventCallback(() => {\n const type = lastSourceEvent.current;\n let focusType = focusFirstItemOnShow;\n if (focusType == null) {\n focusType = menuRef.current && isRoleMenu(menuRef.current) ? 'keyboard' : false;\n }\n if (focusType === false || focusType === 'keyboard' && !/^key.+$/.test(type)) {\n return;\n }\n const first = qsa(menuRef.current, itemSelector)[0];\n if (first && first.focus) first.focus();\n });\n useEffect(() => {\n if (show) maybeFocusFirst();else if (focusInDropdown.current) {\n focusInDropdown.current = false;\n focusToggle();\n }\n // only `show` should be changing\n }, [show, focusInDropdown, focusToggle, maybeFocusFirst]);\n useEffect(() => {\n lastSourceEvent.current = null;\n });\n const getNextFocusedChild = (current, offset) => {\n if (!menuRef.current) return null;\n const items = qsa(menuRef.current, itemSelector);\n let index = items.indexOf(current) + offset;\n index = Math.max(0, Math.min(index, items.length));\n return items[index];\n };\n useEventListener(useCallback(() => window.document, [window]), 'keydown', event => {\n var _menuRef$current, _toggleRef$current;\n const {\n key\n } = event;\n const target = event.target;\n const fromMenu = (_menuRef$current = menuRef.current) == null ? void 0 : _menuRef$current.contains(target);\n const fromToggle = (_toggleRef$current = toggleRef.current) == null ? void 0 : _toggleRef$current.contains(target);\n\n // Second only to https://github.com/twbs/bootstrap/blob/8cfbf6933b8a0146ac3fbc369f19e520bd1ebdac/js/src/dropdown.js#L400\n // in inscrutability\n const isInput = /input|textarea/i.test(target.tagName);\n if (isInput && (key === ' ' || key !== 'Escape' && fromMenu || key === 'Escape' && target.type === 'search')) {\n return;\n }\n if (!fromMenu && !fromToggle) {\n return;\n }\n if (key === 'Tab' && (!menuRef.current || !show)) {\n return;\n }\n lastSourceEvent.current = event.type;\n const meta = {\n originalEvent: event,\n source: event.type\n };\n switch (key) {\n case 'ArrowUp':\n {\n const next = getNextFocusedChild(target, -1);\n if (next && next.focus) next.focus();\n event.preventDefault();\n return;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (!show) {\n onToggle(true, meta);\n } else {\n const next = getNextFocusedChild(target, 1);\n if (next && next.focus) next.focus();\n }\n return;\n case 'Tab':\n // on keydown the target is the element being tabbed FROM, we need that\n // to know if this event is relevant to this dropdown (e.g. in this menu).\n // On `keyup` the target is the element being tagged TO which we use to check\n // if focus has left the menu\n addEventListener(target.ownerDocument, 'keyup', e => {\n var _menuRef$current2;\n if (e.key === 'Tab' && !e.target || !((_menuRef$current2 = menuRef.current) != null && _menuRef$current2.contains(e.target))) {\n onToggle(false, meta);\n }\n }, {\n once: true\n });\n break;\n case 'Escape':\n if (key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n }\n onToggle(false, meta);\n break;\n default:\n }\n });\n return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: handleSelect,\n children: /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: context,\n children: children\n })\n });\n}\nDropdown.displayName = 'Dropdown';\nDropdown.Menu = DropdownMenu;\nDropdown.Toggle = DropdownToggle;\nDropdown.Item = DropdownItem;\nexport default Dropdown;","import { useReducer } from 'react';\n\n/**\n * Returns a function that triggers a component update. the hook equivalent to\n * `this.forceUpdate()` in a class component. In most cases using a state value directly\n * is preferable but may be required in some advanced usages of refs for interop or\n * when direct DOM manipulation is required.\n *\n * ```ts\n * const forceUpdate = useForceUpdate();\n *\n * const updateOnClick = useCallback(() => {\n * forceUpdate()\n * }, [forceUpdate])\n *\n * return <button type=\"button\" onClick={updateOnClick}>Hi there</button>\n * ```\n */\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are strictly equal to the last state value\n const [, dispatch] = useReducer(state => !state, false);\n return dispatch;\n}","import { useEffect, useRef } from 'react';\n\n/**\n * Store the last of some value. Tracked via a `Ref` only updating it\n * after the component renders.\n *\n * Helpful if you need to compare a prop value to it's previous value during render.\n *\n * ```ts\n * function Component(props) {\n * const lastProps = usePrevious(props)\n *\n * if (lastProps.foo !== props.foo)\n * resetValueFromProps(props.foo)\n * }\n * ```\n *\n * @param value the value to track\n */\nexport default function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import { useEffect } from 'react';\nimport useEventCallback from './useEventCallback';\n/**\n * Attaches an event handler outside directly to specified DOM element\n * bypassing the react synthetic event system.\n *\n * @param element The target to listen for events on\n * @param event The DOM event name\n * @param handler An event handler\n * @param capture Whether or not to listen during the capture event phase\n */\nexport default function useEventListener(eventTarget, event, listener, capture = false) {\n const handler = useEventCallback(listener);\n useEffect(() => {\n const target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;\n target.addEventListener(event, handler, capture);\n return () => target.removeEventListener(event, handler, capture);\n }, [eventTarget]);\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownDivider = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'hr',\n role = 'separator',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'dropdown-divider');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n role: role,\n ...props\n });\n});\nDropdownDivider.displayName = 'DropdownDivider';\nexport default DropdownDivider;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownHeader = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'div',\n role = 'heading',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'dropdown-header');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n role: role,\n ...props\n });\n});\nDropdownHeader.displayName = 'DropdownHeader';\nexport default DropdownHeader;","import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nconst targetMap = new WeakMap();\nlet resizeObserver;\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(entries => {\n entries.forEach(entry => {\n const handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n * <div ref={attachRef}>\n * {JSON.stringify(rect)}\n * </div>\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\nexport default function useResizeObserver(element) {\n const [rect, setRect] = useState(null);\n useEffect(() => {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, rect => {\n setRect(rect);\n });\n return () => {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}","const _excluded = [\"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-has-content */\n\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * An generic `<a>` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps] = useButtonProps(Object.assign({\n tagName: 'a'\n }, props));\n const handleKeyDown = useEventCallback(e => {\n buttonProps.onKeyDown(e);\n onKeyDown == null ? void 0 : onKeyDown(e);\n });\n if (isTrivialHref(props.href) || props.role === 'button') {\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, buttonProps, {\n onKeyDown: handleKeyDown\n }));\n }\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, {\n onKeyDown: onKeyDown\n }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useDropdownItem } from '@restart/ui/DropdownItem';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownItem = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n eventKey,\n disabled = false,\n onClick,\n active,\n as: Component = Anchor,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-item');\n const [dropdownItemProps, meta] = useDropdownItem({\n key: eventKey,\n href: props.href,\n disabled,\n onClick,\n active\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...dropdownItemProps,\n ref: ref,\n className: classNames(className, prefix, meta.isActive && 'active', disabled && 'disabled')\n });\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownItemText = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Component = 'span',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'dropdown-item-text');\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n className: classNames(className, bsPrefix),\n ...props\n });\n});\nDropdownItemText.displayName = 'DropdownItemText';\nexport default DropdownItemText;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport BaseDropdown from '@restart/ui/Dropdown';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownDivider from './DropdownDivider';\nimport DropdownHeader from './DropdownHeader';\nimport DropdownItem from './DropdownItem';\nimport DropdownItemText from './DropdownItemText';\nimport DropdownMenu, { getDropdownMenuPlacement } from './DropdownMenu';\nimport DropdownToggle from './DropdownToggle';\nimport InputGroupContext from './InputGroupContext';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Dropdown = /*#__PURE__*/React.forwardRef((pProps, ref) => {\n const {\n bsPrefix,\n drop = 'down',\n show,\n className,\n align = 'start',\n onSelect,\n onToggle,\n focusFirstItemOnShow,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n navbar: _4,\n autoClose = true,\n ...props\n } = useUncontrolled(pProps, {\n show: 'onToggle'\n });\n const isInputGroup = useContext(InputGroupContext);\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown');\n const isRTL = useIsRTL();\n const isClosingPermitted = source => {\n // autoClose=false only permits close on button click\n if (autoClose === false) return source === 'click';\n\n // autoClose=inside doesn't permit close on rootClose\n if (autoClose === 'inside') return source !== 'rootClose';\n\n // autoClose=outside doesn't permit close on select\n if (autoClose === 'outside') return source !== 'select';\n return true;\n };\n const handleToggle = useEventCallback((nextShow, meta) => {\n var _meta$originalEvent, _meta$originalEvent$t;\n /** Checking if target of event is ToggleButton,\n * if it is then nullify mousedown event\n */\n const isToggleButton = (_meta$originalEvent = meta.originalEvent) == null ? void 0 : (_meta$originalEvent$t = _meta$originalEvent.target) == null ? void 0 : _meta$originalEvent$t.classList.contains('dropdown-toggle');\n if (isToggleButton && meta.source === 'mousedown') {\n return;\n }\n if (meta.originalEvent.currentTarget === document && (meta.source !== 'keydown' || meta.originalEvent.key === 'Escape')) meta.source = 'rootClose';\n if (isClosingPermitted(meta.source)) onToggle == null ? void 0 : onToggle(nextShow, meta);\n });\n const alignEnd = align === 'end';\n const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n const contextValue = useMemo(() => ({\n align,\n drop,\n isRTL\n }), [align, drop, isRTL]);\n const directionClasses = {\n down: prefix,\n 'down-centered': `${prefix}-center`,\n up: 'dropup',\n 'up-centered': 'dropup-center dropup',\n end: 'dropend',\n start: 'dropstart'\n };\n return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(BaseDropdown, {\n placement: placement,\n show: show,\n onSelect: onSelect,\n onToggle: handleToggle,\n focusFirstItemOnShow: focusFirstItemOnShow,\n itemSelector: `.${prefix}-item:not(.disabled):not(:disabled)`,\n children: isInputGroup ? props.children : /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, show && 'show', directionClasses[drop])\n })\n })\n });\n});\nDropdown.displayName = 'Dropdown';\nexport default Object.assign(Dropdown, {\n Toggle: DropdownToggle,\n Menu: DropdownMenu,\n Item: DropdownItem,\n ItemText: DropdownItemText,\n Divider: DropdownDivider,\n Header: DropdownHeader\n});","import PropTypes from 'prop-types';\nconst alignDirection = PropTypes.oneOf(['start', 'end']);\nexport const alignPropType = PropTypes.oneOfType([alignDirection, PropTypes.shape({\n sm: alignDirection\n}), PropTypes.shape({\n md: alignDirection\n}), PropTypes.shape({\n lg: alignDirection\n}), PropTypes.shape({\n xl: alignDirection\n}), PropTypes.shape({\n xxl: alignDirection\n}), PropTypes.object]);","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Dropdown from './Dropdown';\nimport DropdownToggle from './DropdownToggle';\nimport DropdownMenu from './DropdownMenu';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers.\n * @type {string}\n */\n id: PropTypes.string,\n /** An `href` passed to the Toggle component */\n href: PropTypes.string,\n /** An `onClick` handler passed to the Toggle component */\n onClick: PropTypes.func,\n /** The content of the non-toggle Button. */\n title: PropTypes.node.isRequired,\n /** Disables both Buttons */\n disabled: PropTypes.bool,\n /**\n * Aligns the dropdown menu.\n *\n * _see [DropdownMenu](#dropdown-menu-props) for more details_\n *\n * @type {\"start\"|\"end\"|{ sm: \"start\"|\"end\" }|{ md: \"start\"|\"end\" }|{ lg: \"start\"|\"end\" }|{ xl: \"start\"|\"end\"}|{ xxl: \"start\"|\"end\"} }\n */\n align: alignPropType,\n /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */\n menuRole: PropTypes.string,\n /** Whether to render the dropdown menu in the DOM before the first time it is shown */\n renderMenuOnMount: PropTypes.bool,\n /**\n * Which event when fired outside the component will cause it to be closed.\n *\n * _see [DropdownMenu](#dropdown-menu-props) for more details_\n */\n rootCloseEvent: PropTypes.string,\n /**\n * Menu color variant.\n *\n * Omitting this will use the default light color.\n */\n menuVariant: PropTypes.oneOf(['dark']),\n /**\n * Allow Dropdown to flip in case of an overlapping on the reference element. For more information refer to\n * Popper.js's flip [docs](https://popper.js.org/docs/v2/modifiers/flip/).\n *\n */\n flip: PropTypes.bool,\n /** @ignore */\n bsPrefix: PropTypes.string,\n /** @ignore */\n variant: PropTypes.string,\n /** @ignore */\n size: PropTypes.string\n};\n\n/**\n * A convenience component for simple or general use dropdowns. Renders a `Button` toggle and all `children`\n * are passed directly to the default `Dropdown.Menu`. This component accepts all of\n * [`Dropdown`'s props](#dropdown-props).\n *\n * _All unknown props are passed through to the `Dropdown` component._ Only\n * the Button `variant`, `size` and `bsPrefix` props are passed to the toggle,\n * along with menu-related props are passed to the `Dropdown.Menu`\n */\nconst DropdownButton = /*#__PURE__*/React.forwardRef(({\n title,\n children,\n bsPrefix,\n rootCloseEvent,\n variant,\n size,\n menuRole,\n renderMenuOnMount,\n disabled,\n href,\n id,\n menuVariant,\n flip,\n ...props\n}, ref) => /*#__PURE__*/_jsxs(Dropdown, {\n ref: ref,\n ...props,\n children: [/*#__PURE__*/_jsx(DropdownToggle, {\n id: id,\n href: href,\n size: size,\n variant: variant,\n disabled: disabled,\n childBsPrefix: bsPrefix,\n children: title\n }), /*#__PURE__*/_jsx(DropdownMenu, {\n role: menuRole,\n renderOnMount: renderMenuOnMount,\n rootCloseEvent: rootCloseEvent,\n variant: menuVariant,\n flip: flip,\n children: children\n })]\n}));\nDropdownButton.displayName = 'DropdownButton';\nDropdownButton.propTypes = propTypes;\nexport default DropdownButton;","\"use client\";\n\nimport * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext({});\nDropdownContext.displayName = 'DropdownContext';\nexport default DropdownContext;","\"use client\";\n\nimport * as React from 'react';\n\n// TODO: check\n\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'NavbarContext';\nexport default context;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useDropdownMenu } from '@restart/ui/DropdownMenu';\nimport useIsomorphicEffect from '@restart/hooks/useIsomorphicEffect';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport warning from 'warning';\nimport DropdownContext from './DropdownContext';\nimport InputGroupContext from './InputGroupContext';\nimport NavbarContext from './NavbarContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getDropdownMenuPlacement(alignEnd, dropDirection, isRTL) {\n const topStart = isRTL ? 'top-end' : 'top-start';\n const topEnd = isRTL ? 'top-start' : 'top-end';\n const bottomStart = isRTL ? 'bottom-end' : 'bottom-start';\n const bottomEnd = isRTL ? 'bottom-start' : 'bottom-end';\n const leftStart = isRTL ? 'right-start' : 'left-start';\n const leftEnd = isRTL ? 'right-end' : 'left-end';\n const rightStart = isRTL ? 'left-start' : 'right-start';\n const rightEnd = isRTL ? 'left-end' : 'right-end';\n let placement = alignEnd ? bottomEnd : bottomStart;\n if (dropDirection === 'up') placement = alignEnd ? topEnd : topStart;else if (dropDirection === 'end') placement = alignEnd ? rightEnd : rightStart;else if (dropDirection === 'start') placement = alignEnd ? leftEnd : leftStart;else if (dropDirection === 'down-centered') placement = 'bottom';else if (dropDirection === 'up-centered') placement = 'top';\n return placement;\n}\nconst DropdownMenu = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n align,\n rootCloseEvent,\n flip = true,\n show: showProps,\n renderOnMount,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n popperConfig,\n variant,\n ...props\n}, ref) => {\n let alignEnd = false;\n const isNavbar = useContext(NavbarContext);\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-menu');\n const {\n align: contextAlign,\n drop,\n isRTL\n } = useContext(DropdownContext);\n align = align || contextAlign;\n const isInputGroup = useContext(InputGroupContext);\n const alignClasses = [];\n if (align) {\n if (typeof align === 'object') {\n const keys = Object.keys(align);\n process.env.NODE_ENV !== \"production\" ? warning(keys.length === 1, 'There should only be 1 breakpoint when passing an object to `align`') : void 0;\n if (keys.length) {\n const brkPoint = keys[0];\n const direction = align[brkPoint];\n\n // .dropdown-menu-end is required for responsively aligning\n // left in addition to align left classes.\n alignEnd = direction === 'start';\n alignClasses.push(`${prefix}-${brkPoint}-${direction}`);\n }\n } else if (align === 'end') {\n alignEnd = true;\n }\n }\n const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n const [menuProps, {\n hasShown,\n popper,\n show,\n toggle\n }] = useDropdownMenu({\n flip,\n rootCloseEvent,\n show: showProps,\n usePopper: !isNavbar && alignClasses.length === 0,\n offset: [0, 2],\n popperConfig,\n placement\n });\n menuProps.ref = useMergedRefs(useWrappedRefWithWarning(ref, 'DropdownMenu'), menuProps.ref);\n useIsomorphicEffect(() => {\n // Popper's initial position for the menu is incorrect when\n // renderOnMount=true. Need to call update() to correct it.\n if (show) popper == null ? void 0 : popper.update();\n }, [show]);\n if (!hasShown && !renderOnMount && !isInputGroup) return null;\n\n // For custom components provide additional, non-DOM, props;\n if (typeof Component !== 'string') {\n menuProps.show = show;\n menuProps.close = () => toggle == null ? void 0 : toggle(false);\n menuProps.align = align;\n }\n let style = props.style;\n if (popper != null && popper.placement) {\n // we don't need the default popper style,\n // menus are display: none when not shown.\n style = {\n ...props.style,\n ...menuProps.style\n };\n props['x-placement'] = popper.placement;\n }\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...menuProps,\n style: style\n // Bootstrap css requires this data attrib to style responsive menus.\n ,\n ...((alignClasses.length || isNavbar) && {\n 'data-bs-popper': 'static'\n }),\n className: classNames(className, prefix, show && 'show', alignEnd && `${prefix}-end`, variant && `${prefix}-${variant}`, ...alignClasses)\n });\n});\nDropdownMenu.displayName = 'DropdownMenu';\nexport default DropdownMenu;","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant = 'primary',\n size,\n active = false,\n disabled = false,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n disabled,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, {\n ...buttonProps,\n ...props,\n ref: ref,\n disabled: disabled,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nexport default Button;","\"use client\";\n\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport DropdownContext from '@restart/ui/DropdownContext';\nimport { useDropdownToggle } from '@restart/ui/DropdownToggle';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport Button from './Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownToggle = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n split,\n className,\n childBsPrefix,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = Button,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-toggle');\n const dropdownContext = useContext(DropdownContext);\n if (childBsPrefix !== undefined) {\n props.bsPrefix = childBsPrefix;\n }\n const [toggleProps] = useDropdownToggle();\n toggleProps.ref = useMergedRefs(toggleProps.ref, useWrappedRefWithWarning(ref, 'DropdownToggle'));\n\n // This intentionally forwards size and variant (if set) to the\n // underlying component, to allow it to render size and style variants.\n return /*#__PURE__*/_jsx(Component, {\n className: classNames(className, prefix, split && `${prefix}-split`, (dropdownContext == null ? void 0 : dropdownContext.show) && 'show'),\n ...toggleProps,\n ...props\n });\n});\nDropdownToggle.displayName = 'DropdownToggle';\nexport default DropdownToggle;","\"use client\";\n\nimport * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'InputGroupContext';\nexport default context;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import invariant from 'invariant';\nimport { useCallback } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nexport default function useWrappedRefWithWarning(ref, componentName) {\n // @ts-ignore\n if (!(process.env.NODE_ENV !== \"production\")) return ref;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const warningRef = useCallback(refValue => {\n !(refValue == null || !refValue.isReactComponent) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${componentName} injected a ref to a provided \\`as\\` component that resolved to a component instance instead of a DOM element. ` + 'Use `React.forwardRef` to provide the injected ref to the class component as a prop in order to pass it directly to a DOM element') : invariant(false) : void 0;\n }, [componentName]);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMergedRefs(warningRef, ref);\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar propTypes = {\n bgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]).isRequired,\n bgD: _propTypes2.default.string.isRequired,\n fgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]).isRequired,\n fgD: _propTypes2.default.string.isRequired,\n size: _propTypes2.default.number.isRequired,\n title: _propTypes2.default.string,\n viewBoxSize: _propTypes2.default.number.isRequired,\n xmlns: _propTypes2.default.string\n};\n\nvar defaultProps = {\n title: undefined,\n xmlns: \"http://www.w3.org/2000/svg\"\n};\n\nvar QRCodeSvg = (0, _react.forwardRef)(function (_ref, ref) {\n var bgColor = _ref.bgColor,\n bgD = _ref.bgD,\n fgD = _ref.fgD,\n fgColor = _ref.fgColor,\n size = _ref.size,\n title = _ref.title,\n viewBoxSize = _ref.viewBoxSize,\n props = _objectWithoutProperties(_ref, [\"bgColor\", \"bgD\", \"fgD\", \"fgColor\", \"size\", \"title\", \"viewBoxSize\"]);\n\n return _react2.default.createElement(\n \"svg\",\n _extends({}, props, { height: size, ref: ref, viewBox: \"0 0 \" + viewBoxSize + \" \" + viewBoxSize, width: size }),\n title ? _react2.default.createElement(\n \"title\",\n null,\n title\n ) : null,\n _react2.default.createElement(\"path\", { d: bgD, fill: bgColor }),\n _react2.default.createElement(\"path\", { d: fgD, fill: fgColor })\n );\n});\n\nQRCodeSvg.displayName = \"QRCodeSvg\";\nQRCodeSvg.propTypes = propTypes;\nQRCodeSvg.defaultProps = defaultProps;\n\nexports.default = QRCodeSvg;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.QRCode = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _QRCode = require(\"qr.js/lib/QRCode\");\n\nvar _QRCode2 = _interopRequireDefault(_QRCode);\n\nvar _ErrorCorrectLevel = require(\"qr.js/lib/ErrorCorrectLevel\");\n\nvar _ErrorCorrectLevel2 = _interopRequireDefault(_ErrorCorrectLevel);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _QRCodeSvg = require(\"./QRCodeSvg\");\n\nvar _QRCodeSvg2 = _interopRequireDefault(_QRCodeSvg);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } // A `qr.js` doesn't handle error level of zero (M) so we need to do it right, thus the deep require.\n\n\nvar propTypes = {\n bgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n fgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n level: _propTypes2.default.string,\n size: _propTypes2.default.number,\n value: _propTypes2.default.string.isRequired\n};\n\nvar defaultProps = {\n bgColor: \"#FFFFFF\",\n fgColor: \"#000000\",\n level: \"L\",\n size: 256\n};\n\nvar QRCode = (0, _react.forwardRef)(function (_ref, ref) {\n var bgColor = _ref.bgColor,\n fgColor = _ref.fgColor,\n level = _ref.level,\n size = _ref.size,\n value = _ref.value,\n props = _objectWithoutProperties(_ref, [\"bgColor\", \"fgColor\", \"level\", \"size\", \"value\"]);\n\n // Use type === -1 to automatically pick the best type.\n var qrcode = new _QRCode2.default(-1, _ErrorCorrectLevel2.default[level]);\n qrcode.addData(value);\n qrcode.make();\n var cells = qrcode.modules;\n return _react2.default.createElement(_QRCodeSvg2.default, _extends({}, props, {\n bgColor: bgColor,\n bgD: cells.map(function (row, rowIndex) {\n return row.map(function (cell, cellIndex) {\n return !cell ? \"M \" + cellIndex + \" \" + rowIndex + \" l 1 0 0 1 -1 0 Z\" : \"\";\n }).join(\" \");\n }).join(\" \"),\n fgColor: fgColor,\n fgD: cells.map(function (row, rowIndex) {\n return row.map(function (cell, cellIndex) {\n return cell ? \"M \" + cellIndex + \" \" + rowIndex + \" l 1 0 0 1 -1 0 Z\" : \"\";\n }).join(\" \");\n }).join(\" \"),\n ref: ref,\n size: size,\n viewBoxSize: cells.length\n }));\n});\n\nexports.QRCode = QRCode;\nQRCode.displayName = \"QRCode\";\nQRCode.propTypes = propTypes;\nQRCode.defaultProps = defaultProps;\n\nexports.default = QRCode;","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this navigation's state updates\n */\n unstable_flushSync?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set<FormEncType> = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n\n method =\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n encType =\n getFormEncType(target.getAttribute(\"formenctype\")) ||\n getFormEncType(form.getAttribute(\"enctype\")) ||\n defaultEncType;\n\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let { name, type, value } = target;\n if (type === \"image\") {\n let prefix = name ? `${name}.` : \"\";\n formData.append(`${prefix}x`, \"0\");\n formData.append(`${prefix}y`, \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n\n return { action, method: method.toLowerCase(), encType, formData, body };\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport type {\n DataRouteObject,\n FutureConfig,\n Location,\n NavigateOptions,\n NavigationType,\n Navigator,\n RelativeRoutingType,\n RouteObject,\n RouterProviderProps,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n useBlocker,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_mapRouteProperties as mapRouteProperties,\n UNSAFE_useRouteId as useRouteId,\n UNSAFE_useRoutesImpl as useRoutesImpl,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n unstable_DataStrategyFunction,\n unstable_DataStrategyFunctionArgs,\n unstable_DataStrategyMatch,\n Fetcher,\n FormEncType,\n FormMethod,\n FutureConfig as RouterFutureConfig,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HTMLFormMethod,\n HydrationState,\n Router as RemixRouter,\n V7_FormMethod,\n RouterState,\n RouterSubscriber,\n BlockerFunction,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n joinPaths,\n stripBasename,\n UNSAFE_ErrorResponseImpl as ErrorResponseImpl,\n UNSAFE_invariant as invariant,\n UNSAFE_warning as warning,\n matchPath,\n IDLE_FETCHER,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n SubmitTarget,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n unstable_DataStrategyFunction,\n unstable_DataStrategyFunctionArgs,\n unstable_DataStrategyMatch,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n V7_FormMethod,\n};\nexport { createSearchParams, ErrorResponseImpl as UNSAFE_ErrorResponseImpl };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n Blocker,\n BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n ErrorResponse,\n Fetcher,\n FutureConfig,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathParam,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n ShouldRevalidateFunctionArgs,\n To,\n UIMatch,\n unstable_HandlerResult,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_useRouteId,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n var __reactRouterVersion: string;\n interface Document {\n startViewTransition(cb: () => Promise<void> | void): ViewTransition;\n }\n}\n\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"0\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\ninterface DOMRouterOpts {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n unstable_dataStrategy?: unstable_DataStrategyFunction;\n window?: Window;\n}\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n unstable_dataStrategy: opts?.unstable_dataStrategy,\n window: opts?.window,\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n unstable_dataStrategy: opts?.unstable_dataStrategy,\n window: opts?.window,\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponseImpl(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Contexts\n////////////////////////////////////////////////////////////////////////////////\n\ntype ViewTransitionContextObject =\n | {\n isTransitioning: false;\n }\n | {\n isTransitioning: true;\n flushSync: boolean;\n currentLocation: Location;\n nextLocation: Location;\n };\n\nconst ViewTransitionContext = React.createContext<ViewTransitionContextObject>({\n isTransitioning: false,\n});\nif (__DEV__) {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\n\nexport { ViewTransitionContext as UNSAFE_ViewTransitionContext };\n\n// TODO: (v7) Change the useFetcher data from `any` to `unknown`\ntype FetchersContextObject = Map<string, any>;\n\nconst FetchersContext = React.createContext<FetchersContextObject>(new Map());\nif (__DEV__) {\n FetchersContext.displayName = \"Fetchers\";\n}\n\nexport { FetchersContext as UNSAFE_FetchersContext };\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\n\nfunction startTransitionSafe(cb: () => void) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\n\nfunction flushSyncSafe(cb: () => void) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\n\ninterface ViewTransition {\n finished: Promise<void>;\n ready: Promise<void>;\n updateCallbackDone: Promise<void>;\n skipTransition(): void;\n}\n\nclass Deferred<T> {\n status: \"pending\" | \"resolved\" | \"rejected\" = \"pending\";\n promise: Promise<T>;\n // @ts-expect-error - no initializer\n resolve: (value: T) => void;\n // @ts-expect-error - no initializer\n reject: (reason?: unknown) => void;\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (value) => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = (reason) => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState<RouterState>();\n let [vtContext, setVtContext] = React.useState<ViewTransitionContextObject>({\n isTransitioning: false,\n });\n let [renderDfd, setRenderDfd] = React.useState<Deferred<void>>();\n let [transition, setTransition] = React.useState<ViewTransition>();\n let [interruption, setInterruption] = React.useState<{\n state: RouterState;\n currentLocation: Location;\n nextLocation: Location;\n }>();\n let fetcherData = React.useRef<Map<string, any>>(new Map());\n let { v7_startTransition } = future || {};\n\n let optInStartTransition = React.useCallback(\n (cb: () => void) => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n },\n [v7_startTransition]\n );\n\n let setState = React.useCallback<RouterSubscriber>(\n (\n newState: RouterState,\n {\n deletedFetchers,\n unstable_flushSync: flushSync,\n unstable_viewTransitionOpts: viewTransitionOpts,\n }\n ) => {\n deletedFetchers.forEach((key) => fetcherData.current.delete(key));\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n\n let isViewTransitionUnavailable =\n router.window == null ||\n typeof router.window.document.startViewTransition !== \"function\";\n\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation,\n });\n });\n\n // Update the DOM\n let t = router.window!.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({ isTransitioning: false });\n });\n });\n\n flushSyncSafe(() => setTransition(t));\n return;\n }\n\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation,\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation,\n });\n }\n },\n [router.window, transition, renderDfd, fetcherData, optInStartTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred<void>());\n }\n }, [vtContext]);\n\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({ isTransitioning: false });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (\n renderDfd &&\n pendingState &&\n state.location.key === pendingState.location.key\n ) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation,\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`<RouterProvider fallbackElement>` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <FetchersContext.Provider value={fetcherData.current}>\n <ViewTransitionContext.Provider value={vtContext}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n future={{\n v7_relativeSplatPath: router.future.v7_relativeSplatPath,\n }}\n >\n {state.initialized || router.future.v7_partialHydration ? (\n <DataRoutes\n routes={router.routes}\n future={router.future}\n state={state}\n />\n ) : (\n fallbackElement\n )}\n </Router>\n </ViewTransitionContext.Provider>\n </FetchersContext.Provider>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nfunction DataRoutes({\n routes,\n future,\n state,\n}: {\n routes: DataRouteObject[];\n future: RemixRouter[\"future\"];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state, future);\n}\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: Partial<FutureConfig>;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n future,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: Partial<FutureConfig>;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({\n basename,\n children,\n future,\n window,\n}: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({\n basename,\n children,\n future,\n history,\n}: HistoryRouterProps) {\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n unstable_viewTransition?: boolean;\n}\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n unstable_viewTransition,\n ...rest\n },\n ref\n ) {\n let { basename } = React.useContext(NavigationContext);\n\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\")\n ? new URL(currentUrl.protocol + to)\n : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n warning(\n false,\n `<Link to=\"${to}\"> contains an invalid URL which will probably break ` +\n `when clicked - please update to a valid URL path.`\n );\n }\n }\n }\n\n // Rendered into <a href> for relative URLs\n let href = useHref(to, { relative });\n\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={absoluteHref || href}\n onClick={isExternal || reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\ntype NavLinkRenderProps = {\n isActive: boolean;\n isPending: boolean;\n isTransitioning: boolean;\n};\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?: React.ReactNode | ((props: NavLinkRenderProps) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: NavLinkRenderProps) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: NavLinkRenderProps) => React.CSSProperties | undefined);\n}\n\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n unstable_viewTransition,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator, basename } = React.useContext(NavigationContext);\n let isTransitioning =\n routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) &&\n unstable_viewTransition === true;\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n if (nextLocationPathname && basename) {\n nextLocationPathname =\n stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition =\n toPathname !== \"/\" && toPathname.endsWith(\"/\")\n ? toPathname.length - 1\n : toPathname.length;\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(endSlashPosition) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let renderProps = {\n isActive,\n isPending,\n isTransitioning,\n };\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n isTransitioning ? \"transitioning\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n unstable_viewTransition={unstable_viewTransition}\n >\n {typeof children === \"function\" ? children(renderProps) : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FetcherFormProps\n extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: HTMLFormMethod;\n\n /**\n * `<form encType>` - enhancing beyond the normal string type and limiting\n * to the built-in browser supported values\n */\n encType?:\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"text/plain\";\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * Prevent the scroll position from resetting to the top of the viewport on\n * completion of the navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\nexport interface FormProps extends FetcherFormProps {\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Enable view transitions on this Form navigation\n */\n unstable_viewTransition?: boolean;\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (\n {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n unstable_viewTransition,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmit();\n let formAction = useFormAction(action, { relative });\n let formMethod: HTMLFormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as HTMLFormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n unstable_viewTransition,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmit = \"useSubmit\",\n UseSubmitFetcher = \"useSubmitFetcher\",\n UseFetcher = \"useFetcher\",\n useViewTransitionState = \"useViewTransitionState\",\n}\n\nenum DataRouterStateHook {\n UseFetcher = \"useFetcher\",\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\n// Internal hooks\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n// External hooks\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_viewTransition?: boolean;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\nexport type SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Submits a fetcher `<form>` to the server without reloading the page.\n */\nexport interface FetcherSubmitFunction {\n (\n target: SubmitTarget,\n // Fetchers cannot replace or set state because they are not navigation events\n options?: Omit<SubmitOptions, \"replace\" | \"state\">\n ): void;\n}\n\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n}\n\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => `__${String(++fetcherId)}__`;\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmit);\n let { basename } = React.useContext(NavigationContext);\n let currentRouteId = useRouteId();\n\n return React.useCallback<SubmitFunction>(\n (target, options = {}) => {\n validateClientSideSubmission();\n\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n unstable_flushSync: options.unstable_flushSync,\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n unstable_flushSync: options.unstable_flushSync,\n unstable_viewTransition: options.unstable_viewTransition,\n });\n }\n },\n [router, basename, currentRouteId]\n );\n}\n\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n if (params.has(\"index\") && params.get(\"index\") === \"\") {\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: React.ForwardRefExoticComponent<\n FetcherFormProps & React.RefAttributes<HTMLFormElement>\n >;\n submit: FetcherSubmitFunction;\n load: (href: string, opts?: { unstable_flushSync?: boolean }) => void;\n};\n\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>({\n key,\n}: { key?: string } = {}): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(RouteContext);\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n\n invariant(fetcherData, `useFetcher must be used inside a FetchersContext`);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState<string>(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n // Fetcher additions\n let load = React.useCallback(\n (href: string, opts?: { unstable_flushSync?: boolean }) => {\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href, opts);\n },\n [fetcherKey, routeId, router]\n );\n\n let submitImpl = useSubmit();\n let submit = React.useCallback<FetcherSubmitFunction>(\n (target, opts) => {\n submitImpl(target, {\n ...opts,\n navigate: false,\n fetcherKey,\n });\n },\n [fetcherKey, submitImpl]\n );\n\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = React.forwardRef<HTMLFormElement, FetcherFormProps>(\n (props, ref) => {\n return (\n <Form {...props} navigate={false} fetcherKey={fetcherKey} ref={ref} />\n );\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form: FetcherForm,\n submit,\n load,\n ...fetcher,\n data,\n }),\n [FetcherForm, submit, load, fetcher, data]\n );\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): (Fetcher & { key: string })[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(([key, fetcher]) => ({\n ...fetcher,\n key,\n }));\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let { basename } = React.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on pagehide\n usePageHide(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${error}).`\n );\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename: GetScrollRestorationKeyFunction | undefined =\n getKey && basename !== \"/\"\n ? (location, matches) =>\n getKey(\n // Strip the basename to match useLocation()\n {\n ...location,\n pathname:\n stripBasename(location.pathname, basename) ||\n location.pathname,\n },\n matches\n )\n : getKey;\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKeyWithoutBasename\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(\n decodeURIComponent(location.hash.slice(1))\n );\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n callback: (event: PageTransitionEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt({\n when,\n message,\n}: {\n when: boolean | BlockerFunction;\n message: string;\n}) {\n let blocker = useBlocker(when);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(\n to: To,\n opts: { relative?: RelativeRoutingType } = {}\n) {\n let vtContext = React.useContext(ViewTransitionContext);\n\n invariant(\n vtContext != null,\n \"`unstable_useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" +\n \"Did you accidentally import `RouterProvider` from `react-router`?\"\n );\n\n let { basename } = useDataRouterContext(\n DataRouterHook.useViewTransitionState\n );\n let path = useResolvedPath(to, { relative: opts.relative });\n if (!vtContext.isTransitioning) {\n return false;\n }\n\n let currentPath =\n stripBasename(vtContext.currentLocation.pathname, basename) ||\n vtContext.currentLocation.pathname;\n let nextPath =\n stripBasename(vtContext.nextLocation.pathname, basename) ||\n vtContext.nextLocation.pathname;\n\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" unstable_viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" unstable_viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return (\n matchPath(path.pathname, nextPath) != null ||\n matchPath(path.pathname, currentPath) != null\n );\n}\n\nexport { useViewTransitionState as unstable_useViewTransitionState };\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit<NavigationContextObject, \"future\"> {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n <code style={codeStyles}>errorElement</code> prop on your route.\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{\n outlet,\n matches,\n isDataRoute: dataRouterState != null,\n }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n revalidation={dataRouterState.revalidation}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches, isDataRoute: true }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback<BlockerFunction>(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial<Pick<FutureConfig, \"v7_startTransition\">>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback<RouterSubscriber>(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`<RouterProvider fallbackElement>` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n future={{\n v7_relativeSplatPath: router.future.v7_relativeSplatPath,\n }}\n >\n {state.initialized || router.future.v7_partialHydration ? (\n <DataRoutes\n routes={router.routes}\n future={router.future}\n state={state}\n />\n ) : (\n fallbackElement\n )}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nfunction DataRoutes({\n routes,\n future,\n state,\n}: {\n routes: DataRouteObject[];\n future: RemixRouter[\"future\"];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state, future);\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n future?: Partial<FutureConfig>;\n}\n\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n future,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n let { future, static: isStatic } = React.useContext(NavigationContext);\n\n warning(\n !isStatic,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(\n to,\n getResolveToMatches(matches, future.v7_relativeSplatPath),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n\n React.useEffect(\n () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n [navigate, jsonPath, relative, replace, state]\n );\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n future?: Partial<Pick<FutureConfig, \"v7_relativeSplatPath\">>;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n future,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({\n basename,\n navigator,\n static: staticProp,\n future: {\n v7_relativeSplatPath: false,\n ...future,\n },\n }),\n [basename, future, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n let treePath = [...parentPath, index];\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, treePath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import * as React from \"react\";\nimport type {\n ActionFunction,\n ActionFunctionArgs,\n Blocker,\n BlockerFunction,\n unstable_DataStrategyFunction,\n unstable_DataStrategyFunctionArgs,\n unstable_DataStrategyMatch,\n ErrorResponse,\n Fetcher,\n HydrationState,\n InitialEntry,\n JsonFunction,\n LazyRouteFunction,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n Navigation,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathParam,\n PathPattern,\n RedirectFunction,\n RelativeRoutingType,\n Router as RemixRouter,\n FutureConfig as RouterFutureConfig,\n ShouldRevalidateFunction,\n ShouldRevalidateFunctionArgs,\n To,\n UIMatch,\n unstable_HandlerResult,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n createPath,\n createRouter,\n defer,\n generatePath,\n isRouteErrorResponse,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n resolvePath,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n AwaitProps,\n FutureConfig,\n IndexRouteProps,\n LayoutRouteProps,\n MemoryRouterProps,\n NavigateProps,\n OutletProps,\n PathRouteProps,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n} from \"./lib/components\";\nimport {\n Await,\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createRoutesFromChildren,\n renderMatches,\n} from \"./lib/components\";\nimport type {\n DataRouteMatch,\n DataRouteObject,\n IndexRouteObject,\n NavigateOptions,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./lib/context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./lib/context\";\nimport type { NavigateFunction } from \"./lib/hooks\";\nimport {\n useActionData,\n useAsyncError,\n useAsyncValue,\n useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteId,\n useRouteLoaderData,\n useRoutes,\n useRoutesImpl,\n} from \"./lib/hooks\";\n\n// Exported for backwards compatibility, but not being used internally anymore\ntype Hash = string;\ntype Pathname = string;\ntype Search = string;\n\n// Expose react-router public API\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n DataRouteMatch,\n DataRouteObject,\n unstable_DataStrategyFunction,\n unstable_DataStrategyFunctionArgs,\n unstable_DataStrategyMatch,\n ErrorResponse,\n Fetcher,\n FutureConfig,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LayoutRouteProps,\n LazyRouteFunction,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathParam,\n PathPattern,\n PathRouteProps,\n Pathname,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n ShouldRevalidateFunctionArgs,\n To,\n UIMatch,\n Blocker,\n BlockerFunction,\n unstable_HandlerResult,\n};\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createPath,\n createRoutesFromChildren,\n createRoutesFromChildren as createRoutesFromElements,\n defer,\n generatePath,\n isRouteErrorResponse,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n renderMatches,\n resolvePath,\n useBlocker,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n};\n\nfunction mapRouteProperties(route: RouteObject) {\n let updates: Partial<RouteObject> & { hasErrorBoundary: boolean } = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null,\n };\n\n if (route.Component) {\n if (__DEV__) {\n if (route.element) {\n warning(\n false,\n \"You should not include both `Component` and `element` on your route - \" +\n \"`Component` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n element: React.createElement(route.Component),\n Component: undefined,\n });\n }\n\n if (route.HydrateFallback) {\n if (__DEV__) {\n if (route.hydrateFallbackElement) {\n warning(\n false,\n \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - \" +\n \"`HydrateFallback` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: React.createElement(route.HydrateFallback),\n HydrateFallback: undefined,\n });\n }\n\n if (route.ErrorBoundary) {\n if (__DEV__) {\n if (route.errorElement) {\n warning(\n false,\n \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" +\n \"`ErrorBoundary` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n errorElement: React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined,\n });\n }\n\n return updates;\n}\n\nexport function createMemoryRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n unstable_dataStrategy?: unstable_DataStrategyFunction;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createMemoryHistory({\n initialEntries: opts?.initialEntries,\n initialIndex: opts?.initialIndex,\n }),\n hydrationData: opts?.hydrationData,\n routes,\n mapRouteProperties,\n unstable_dataStrategy: opts?.unstable_dataStrategy,\n }).initialize();\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n DataRouterContext as UNSAFE_DataRouterContext,\n DataRouterStateContext as UNSAFE_DataRouterStateContext,\n LocationContext as UNSAFE_LocationContext,\n NavigationContext as UNSAFE_NavigationContext,\n RouteContext as UNSAFE_RouteContext,\n mapRouteProperties as UNSAFE_mapRouteProperties,\n useRouteId as UNSAFE_useRouteId,\n useRoutesImpl as UNSAFE_useRoutesImpl,\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import parse from 'inline-style-parser';\nimport type { Declaration } from 'inline-style-parser';\n\nexport { Declaration };\n\ninterface StyleObject {\n [name: string]: string;\n}\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n","/* UAParser.js v1.0.37\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.37\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){if(!regex[j]){break}matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"Baidu\"]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i,/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/slbrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Smart Lenovo \"+BROWSER]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/samsungbrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,SAMSUNG+\" Internet\"]],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/metasr[\\/ ]?([\\d\\.]+)/i],[VERSION,[NAME,\"Sogou Explorer\"]],[/(sogou)mo\\w+\\/([\\d\\.]+)/i],[[NAME,\"Sogou Mobile\"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/(Klarna)\\/([\\w\\.]+)/i,/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(alipay)client\\/([\\w\\.]+)/i,/(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[VERSION,[NAME,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[NAME,VERSION],[/(cobalt)\\/([\\w\\.]+)/i],[NAME,[VERSION,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i],[MODEL,[VENDOR,\"Ulefone\"],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w+)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2| pro)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/windows nt 6\\.2; (arm)/i,/windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[VERSION,strMapper,windowsVersionMap],[NAME,\"Windows\"]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,MAC_OS],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[VERSION,[NAME,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[NAME,CHROMIUM_OS],VERSION],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _navigator=typeof window!==UNDEF_TYPE&&window.navigator?window.navigator:undefined;var _ua=ua||(_navigator&&_navigator.userAgent?_navigator.userAgent:EMPTY);var _uach=_navigator&&_navigator.userAgentData?_navigator.userAgentData:undefined;var _rgxmap=extensions?extend(regexes,extensions):regexes;var _isSelfNav=_navigator&&_navigator.userAgent==_ua;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser[MAJOR]=majorize(_browser[VERSION]);if(_isSelfNav&&_navigator&&_navigator.brave&&typeof _navigator.brave.isBrave==FUNC_TYPE){_browser[NAME]=\"Brave\"}return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);if(_isSelfNav&&!_device[TYPE]&&_uach&&_uach.mobile){_device[TYPE]=MOBILE}if(_isSelfNav&&_device[MODEL]==\"Macintosh\"&&_navigator&&typeof _navigator.standalone!==UNDEF_TYPE&&_navigator.maxTouchPoints&&_navigator.maxTouchPoints>2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","var map = {\n\t\"./CommandmentsRoot\": 9577,\n\t\"./CommandmentsRoot.tsx\": 9577,\n\t\"./pages/1-NorthStar\": 3957,\n\t\"./pages/1-NorthStar.tsx\": 3957,\n\t\"./pages/10-Lead\": 608,\n\t\"./pages/10-Lead.tsx\": 608,\n\t\"./pages/2-ReallyMatter\": 2090,\n\t\"./pages/2-ReallyMatter.tsx\": 2090,\n\t\"./pages/3-CompeteWin\": 1695,\n\t\"./pages/3-CompeteWin.tsx\": 1695,\n\t\"./pages/4-Moat\": 3097,\n\t\"./pages/4-Moat.tsx\": 3097,\n\t\"./pages/5-Capabilities\": 2063,\n\t\"./pages/5-Capabilities.tsx\": 2063,\n\t\"./pages/6-Expand\": 7687,\n\t\"./pages/6-Expand.tsx\": 7687,\n\t\"./pages/7-GainsAndGoals\": 9033,\n\t\"./pages/7-GainsAndGoals.tsx\": 9033,\n\t\"./pages/8-Innovate\": 9255,\n\t\"./pages/8-Innovate.tsx\": 9255,\n\t\"./pages/9-Levels\": 3123,\n\t\"./pages/9-Levels.tsx\": 3123,\n\t\"components/commandments/CommandmentsRoot\": 9577,\n\t\"components/commandments/CommandmentsRoot.tsx\": 9577,\n\t\"components/commandments/pages/1-NorthStar\": 3957,\n\t\"components/commandments/pages/1-NorthStar.tsx\": 3957,\n\t\"components/commandments/pages/10-Lead\": 608,\n\t\"components/commandments/pages/10-Lead.tsx\": 608,\n\t\"components/commandments/pages/2-ReallyMatter\": 2090,\n\t\"components/commandments/pages/2-ReallyMatter.tsx\": 2090,\n\t\"components/commandments/pages/3-CompeteWin\": 1695,\n\t\"components/commandments/pages/3-CompeteWin.tsx\": 1695,\n\t\"components/commandments/pages/4-Moat\": 3097,\n\t\"components/commandments/pages/4-Moat.tsx\": 3097,\n\t\"components/commandments/pages/5-Capabilities\": 2063,\n\t\"components/commandments/pages/5-Capabilities.tsx\": 2063,\n\t\"components/commandments/pages/6-Expand\": 7687,\n\t\"components/commandments/pages/6-Expand.tsx\": 7687,\n\t\"components/commandments/pages/7-GainsAndGoals\": 9033,\n\t\"components/commandments/pages/7-GainsAndGoals.tsx\": 9033,\n\t\"components/commandments/pages/8-Innovate\": 9255,\n\t\"components/commandments/pages/8-Innovate.tsx\": 9255,\n\t\"components/commandments/pages/9-Levels\": 3123,\n\t\"components/commandments/pages/9-Levels.tsx\": 3123\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 5632;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ConceptRoot\": [\n\t\t7071,\n\t\t9\n\t],\n\t\"./ConceptRoot.tsx\": [\n\t\t7071,\n\t\t9\n\t],\n\t\"./Wedges\": [\n\t\t6468,\n\t\t7\n\t],\n\t\"./Wedges.tsx\": [\n\t\t6468,\n\t\t7\n\t],\n\t\"./components/Wedge\": [\n\t\t3994,\n\t\t9\n\t],\n\t\"./components/Wedge.tsx\": [\n\t\t3994,\n\t\t9\n\t],\n\t\"./pages/AdjacentMarketExpansion\": [\n\t\t2905,\n\t\t9\n\t],\n\t\"./pages/AdjacentMarketExpansion.tsx\": [\n\t\t2905,\n\t\t9\n\t],\n\t\"./pages/BlueOcean\": [\n\t\t8047,\n\t\t9\n\t],\n\t\"./pages/BlueOcean.tsx\": [\n\t\t8047,\n\t\t9\n\t],\n\t\"./pages/Cage\": [\n\t\t4785,\n\t\t9\n\t],\n\t\"./pages/Cage.tsx\": [\n\t\t4785,\n\t\t9\n\t],\n\t\"./pages/ConsumptionChain\": [\n\t\t5526,\n\t\t9\n\t],\n\t\"./pages/ConsumptionChain.tsx\": [\n\t\t5526,\n\t\t9\n\t],\n\t\"./pages/Differentiation\": [\n\t\t407,\n\t\t9\n\t],\n\t\"./pages/Differentiation.tsx\": [\n\t\t407,\n\t\t9\n\t],\n\t\"./pages/EntryModes\": [\n\t\t1434,\n\t\t9\n\t],\n\t\"./pages/EntryModes.tsx\": [\n\t\t1434,\n\t\t9\n\t],\n\t\"./pages/ExperienceCurve\": [\n\t\t7343,\n\t\t9\n\t],\n\t\"./pages/ExperienceCurve.tsx\": [\n\t\t7343,\n\t\t9\n\t],\n\t\"./pages/IndirectAssault\": [\n\t\t1046,\n\t\t9\n\t],\n\t\"./pages/IndirectAssault.tsx\": [\n\t\t1046,\n\t\t9\n\t],\n\t\"./pages/InternationalStrategy\": [\n\t\t290,\n\t\t9\n\t],\n\t\"./pages/InternationalStrategy.tsx\": [\n\t\t290,\n\t\t9\n\t],\n\t\"./pages/JobsToBeDoneConcept\": [\n\t\t9891,\n\t\t9\n\t],\n\t\"./pages/JobsToBeDoneConcept.tsx\": [\n\t\t9891,\n\t\t9\n\t],\n\t\"./pages/PortersFiveForces\": [\n\t\t513,\n\t\t9\n\t],\n\t\"./pages/PortersFiveForces.tsx\": [\n\t\t513,\n\t\t9\n\t],\n\t\"./pages/PortersGenericStrategies\": [\n\t\t4315,\n\t\t9\n\t],\n\t\"./pages/PortersGenericStrategies.tsx\": [\n\t\t4315,\n\t\t9\n\t],\n\t\"./pages/ScaleCurve\": [\n\t\t2326,\n\t\t9\n\t],\n\t\"./pages/ScaleCurve.tsx\": [\n\t\t2326,\n\t\t9\n\t],\n\t\"./pages/StrategyCanvas\": [\n\t\t8348,\n\t\t9\n\t],\n\t\"./pages/StrategyCanvas.tsx\": [\n\t\t8348,\n\t\t9\n\t],\n\t\"./pages/SunkCostFallacy\": [\n\t\t326,\n\t\t9\n\t],\n\t\"./pages/SunkCostFallacy.tsx\": [\n\t\t326,\n\t\t9\n\t],\n\t\"./pages/ThreeHorizons\": [\n\t\t3271,\n\t\t9\n\t],\n\t\"./pages/ThreeHorizons.tsx\": [\n\t\t3271,\n\t\t9\n\t],\n\t\"./pages/TripleA\": [\n\t\t3194,\n\t\t9\n\t],\n\t\"./pages/TripleA.tsx\": [\n\t\t3194,\n\t\t9\n\t],\n\t\"components/concepts/ConceptRoot\": [\n\t\t7071,\n\t\t9\n\t],\n\t\"components/concepts/ConceptRoot.tsx\": [\n\t\t7071,\n\t\t9\n\t],\n\t\"components/concepts/Wedges\": [\n\t\t6468,\n\t\t7\n\t],\n\t\"components/concepts/Wedges.tsx\": [\n\t\t6468,\n\t\t7\n\t],\n\t\"components/concepts/components/Wedge\": [\n\t\t3994,\n\t\t9\n\t],\n\t\"components/concepts/components/Wedge.tsx\": [\n\t\t3994,\n\t\t9\n\t],\n\t\"components/concepts/pages/AdjacentMarketExpansion\": [\n\t\t2905,\n\t\t9\n\t],\n\t\"components/concepts/pages/AdjacentMarketExpansion.tsx\": [\n\t\t2905,\n\t\t9\n\t],\n\t\"components/concepts/pages/BlueOcean\": [\n\t\t8047,\n\t\t9\n\t],\n\t\"components/concepts/pages/BlueOcean.tsx\": [\n\t\t8047,\n\t\t9\n\t],\n\t\"components/concepts/pages/Cage\": [\n\t\t4785,\n\t\t9\n\t],\n\t\"components/concepts/pages/Cage.tsx\": [\n\t\t4785,\n\t\t9\n\t],\n\t\"components/concepts/pages/ConsumptionChain\": [\n\t\t5526,\n\t\t9\n\t],\n\t\"components/concepts/pages/ConsumptionChain.tsx\": [\n\t\t5526,\n\t\t9\n\t],\n\t\"components/concepts/pages/Differentiation\": [\n\t\t407,\n\t\t9\n\t],\n\t\"components/concepts/pages/Differentiation.tsx\": [\n\t\t407,\n\t\t9\n\t],\n\t\"components/concepts/pages/EntryModes\": [\n\t\t1434,\n\t\t9\n\t],\n\t\"components/concepts/pages/EntryModes.tsx\": [\n\t\t1434,\n\t\t9\n\t],\n\t\"components/concepts/pages/ExperienceCurve\": [\n\t\t7343,\n\t\t9\n\t],\n\t\"components/concepts/pages/ExperienceCurve.tsx\": [\n\t\t7343,\n\t\t9\n\t],\n\t\"components/concepts/pages/IndirectAssault\": [\n\t\t1046,\n\t\t9\n\t],\n\t\"components/concepts/pages/IndirectAssault.tsx\": [\n\t\t1046,\n\t\t9\n\t],\n\t\"components/concepts/pages/InternationalStrategy\": [\n\t\t290,\n\t\t9\n\t],\n\t\"components/concepts/pages/InternationalStrategy.tsx\": [\n\t\t290,\n\t\t9\n\t],\n\t\"components/concepts/pages/JobsToBeDoneConcept\": [\n\t\t9891,\n\t\t9\n\t],\n\t\"components/concepts/pages/JobsToBeDoneConcept.tsx\": [\n\t\t9891,\n\t\t9\n\t],\n\t\"components/concepts/pages/PortersFiveForces\": [\n\t\t513,\n\t\t9\n\t],\n\t\"components/concepts/pages/PortersFiveForces.tsx\": [\n\t\t513,\n\t\t9\n\t],\n\t\"components/concepts/pages/PortersGenericStrategies\": [\n\t\t4315,\n\t\t9\n\t],\n\t\"components/concepts/pages/PortersGenericStrategies.tsx\": [\n\t\t4315,\n\t\t9\n\t],\n\t\"components/concepts/pages/ScaleCurve\": [\n\t\t2326,\n\t\t9\n\t],\n\t\"components/concepts/pages/ScaleCurve.tsx\": [\n\t\t2326,\n\t\t9\n\t],\n\t\"components/concepts/pages/StrategyCanvas\": [\n\t\t8348,\n\t\t9\n\t],\n\t\"components/concepts/pages/StrategyCanvas.tsx\": [\n\t\t8348,\n\t\t9\n\t],\n\t\"components/concepts/pages/SunkCostFallacy\": [\n\t\t326,\n\t\t9\n\t],\n\t\"components/concepts/pages/SunkCostFallacy.tsx\": [\n\t\t326,\n\t\t9\n\t],\n\t\"components/concepts/pages/ThreeHorizons\": [\n\t\t3271,\n\t\t9\n\t],\n\t\"components/concepts/pages/ThreeHorizons.tsx\": [\n\t\t3271,\n\t\t9\n\t],\n\t\"components/concepts/pages/TripleA\": [\n\t\t3194,\n\t\t9\n\t],\n\t\"components/concepts/pages/TripleA.tsx\": [\n\t\t3194,\n\t\t9\n\t]\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar ids = map[req], id = ids[0];\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 5103;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./FocusRoot\": 3809,\n\t\"./FocusRoot.tsx\": 3809,\n\t\"./maps/CapabilitiesMap\": 9238,\n\t\"./maps/CapabilitiesMap.tsx\": 9238,\n\t\"./maps/MainMap\": 6869,\n\t\"./maps/MainMap.tsx\": 6869,\n\t\"./maps/UniqueValueMap\": 3043,\n\t\"./maps/UniqueValueMap.tsx\": 3043,\n\t\"./pages/CustomerUnmetNeeds\": 9854,\n\t\"./pages/CustomerUnmetNeeds.tsx\": 9854,\n\t\"./pages/FoundationInPurpose\": 7294,\n\t\"./pages/FoundationInPurpose.tsx\": 7294,\n\t\"./pages/OperatingArena\": 7651,\n\t\"./pages/OperatingArena.tsx\": 7651,\n\t\"./pages/SafeguardsAgainstImitation\": 2932,\n\t\"./pages/SafeguardsAgainstImitation.tsx\": 2932,\n\t\"./pages/UnifiedBusinessModel\": 793,\n\t\"./pages/UnifiedBusinessModel.tsx\": 793,\n\t\"components/focuses/FocusRoot\": 3809,\n\t\"components/focuses/FocusRoot.tsx\": 3809,\n\t\"components/focuses/maps/CapabilitiesMap\": 9238,\n\t\"components/focuses/maps/CapabilitiesMap.tsx\": 9238,\n\t\"components/focuses/maps/MainMap\": 6869,\n\t\"components/focuses/maps/MainMap.tsx\": 6869,\n\t\"components/focuses/maps/UniqueValueMap\": 3043,\n\t\"components/focuses/maps/UniqueValueMap.tsx\": 3043,\n\t\"components/focuses/pages/CustomerUnmetNeeds\": 9854,\n\t\"components/focuses/pages/CustomerUnmetNeeds.tsx\": 9854,\n\t\"components/focuses/pages/FoundationInPurpose\": 7294,\n\t\"components/focuses/pages/FoundationInPurpose.tsx\": 7294,\n\t\"components/focuses/pages/OperatingArena\": 7651,\n\t\"components/focuses/pages/OperatingArena.tsx\": 7651,\n\t\"components/focuses/pages/SafeguardsAgainstImitation\": 2932,\n\t\"components/focuses/pages/SafeguardsAgainstImitation.tsx\": 2932,\n\t\"components/focuses/pages/UnifiedBusinessModel\": 793,\n\t\"components/focuses/pages/UnifiedBusinessModel.tsx\": 793\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 3056;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./PathwayRoot\": 4430,\n\t\"./PathwayRoot.tsx\": 4430,\n\t\"./pages/CustomerUnmetNeeds/CJobsToBeDonePathway\": 4018,\n\t\"./pages/CustomerUnmetNeeds/CJobsToBeDonePathway.tsx\": 4018,\n\t\"./pages/CustomerUnmetNeeds/PainPointsPathway\": 6740,\n\t\"./pages/CustomerUnmetNeeds/PainPointsPathway.tsx\": 6740,\n\t\"./pages/CustomerUnmetNeeds/UniqueValuePathway\": 2001,\n\t\"./pages/CustomerUnmetNeeds/UniqueValuePathway.tsx\": 2001,\n\t\"./pages/FoundationInPurpose/AlignmentPathway\": 3257,\n\t\"./pages/FoundationInPurpose/AlignmentPathway.tsx\": 3257,\n\t\"./pages/FoundationInPurpose/DefineMissionPathway\": 432,\n\t\"./pages/FoundationInPurpose/DefineMissionPathway.tsx\": 432,\n\t\"./pages/FoundationInPurpose/DefineValuesPathway\": 2860,\n\t\"./pages/FoundationInPurpose/DefineValuesPathway.tsx\": 2860,\n\t\"./pages/FoundationInPurpose/DefineVisionPathway\": 3801,\n\t\"./pages/FoundationInPurpose/DefineVisionPathway.tsx\": 3801,\n\t\"./pages/FoundationInPurpose/EthicsPathway\": 9291,\n\t\"./pages/FoundationInPurpose/EthicsPathway.tsx\": 9291,\n\t\"./pages/OperatingArena/ChosenPositionPathway\": 1062,\n\t\"./pages/OperatingArena/ChosenPositionPathway.tsx\": 1062,\n\t\"./pages/OperatingArena/CustomerIdentificationPathway\": 3513,\n\t\"./pages/OperatingArena/CustomerIdentificationPathway.tsx\": 3513,\n\t\"./pages/OperatingArena/EvaluateIndustryPathway\": 4494,\n\t\"./pages/OperatingArena/EvaluateIndustryPathway.tsx\": 4494,\n\t\"./pages/OperatingArena/JobsToBeDonePathway\": 4277,\n\t\"./pages/OperatingArena/JobsToBeDonePathway.tsx\": 4277,\n\t\"./pages/OperatingArena/SegmentsPathway\": 7052,\n\t\"./pages/OperatingArena/SegmentsPathway.tsx\": 7052,\n\t\"./pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway\": 6810,\n\t\"./pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway.tsx\": 6810,\n\t\"./pages/SafeguardsAgainstImitation/CustomerAdvantagePathway\": 1514,\n\t\"./pages/SafeguardsAgainstImitation/CustomerAdvantagePathway.tsx\": 1514,\n\t\"./pages/SafeguardsAgainstImitation/LocationAdvantagePathway\": 2614,\n\t\"./pages/SafeguardsAgainstImitation/LocationAdvantagePathway.tsx\": 2614,\n\t\"./pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway\": 9092,\n\t\"./pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway.tsx\": 9092,\n\t\"./pages/SafeguardsAgainstImitation/NetworkAdvantagePathway\": 5888,\n\t\"./pages/SafeguardsAgainstImitation/NetworkAdvantagePathway.tsx\": 5888,\n\t\"./pages/SafeguardsAgainstImitation/ResourceAdvantagePathway\": 4620,\n\t\"./pages/SafeguardsAgainstImitation/ResourceAdvantagePathway.tsx\": 4620,\n\t\"./pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway\": 1557,\n\t\"./pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway.tsx\": 1557,\n\t\"./pages/SafeguardsAgainstImitation/TimingAdvantagePathway\": 8664,\n\t\"./pages/SafeguardsAgainstImitation/TimingAdvantagePathway.tsx\": 8664,\n\t\"./pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway\": 1374,\n\t\"./pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway.tsx\": 1374,\n\t\"./pages/UnifiedBusinessModel/ExistingRAndCPathway\": 9603,\n\t\"./pages/UnifiedBusinessModel/ExistingRAndCPathway.tsx\": 9603,\n\t\"./pages/UnifiedBusinessModel/ImplementChangesPathway\": 6371,\n\t\"./pages/UnifiedBusinessModel/ImplementChangesPathway.tsx\": 6371,\n\t\"components/pathways/PathwayRoot\": 4430,\n\t\"components/pathways/PathwayRoot.tsx\": 4430,\n\t\"components/pathways/pages/CustomerUnmetNeeds/CJobsToBeDonePathway\": 4018,\n\t\"components/pathways/pages/CustomerUnmetNeeds/CJobsToBeDonePathway.tsx\": 4018,\n\t\"components/pathways/pages/CustomerUnmetNeeds/PainPointsPathway\": 6740,\n\t\"components/pathways/pages/CustomerUnmetNeeds/PainPointsPathway.tsx\": 6740,\n\t\"components/pathways/pages/CustomerUnmetNeeds/UniqueValuePathway\": 2001,\n\t\"components/pathways/pages/CustomerUnmetNeeds/UniqueValuePathway.tsx\": 2001,\n\t\"components/pathways/pages/FoundationInPurpose/AlignmentPathway\": 3257,\n\t\"components/pathways/pages/FoundationInPurpose/AlignmentPathway.tsx\": 3257,\n\t\"components/pathways/pages/FoundationInPurpose/DefineMissionPathway\": 432,\n\t\"components/pathways/pages/FoundationInPurpose/DefineMissionPathway.tsx\": 432,\n\t\"components/pathways/pages/FoundationInPurpose/DefineValuesPathway\": 2860,\n\t\"components/pathways/pages/FoundationInPurpose/DefineValuesPathway.tsx\": 2860,\n\t\"components/pathways/pages/FoundationInPurpose/DefineVisionPathway\": 3801,\n\t\"components/pathways/pages/FoundationInPurpose/DefineVisionPathway.tsx\": 3801,\n\t\"components/pathways/pages/FoundationInPurpose/EthicsPathway\": 9291,\n\t\"components/pathways/pages/FoundationInPurpose/EthicsPathway.tsx\": 9291,\n\t\"components/pathways/pages/OperatingArena/ChosenPositionPathway\": 1062,\n\t\"components/pathways/pages/OperatingArena/ChosenPositionPathway.tsx\": 1062,\n\t\"components/pathways/pages/OperatingArena/CustomerIdentificationPathway\": 3513,\n\t\"components/pathways/pages/OperatingArena/CustomerIdentificationPathway.tsx\": 3513,\n\t\"components/pathways/pages/OperatingArena/EvaluateIndustryPathway\": 4494,\n\t\"components/pathways/pages/OperatingArena/EvaluateIndustryPathway.tsx\": 4494,\n\t\"components/pathways/pages/OperatingArena/JobsToBeDonePathway\": 4277,\n\t\"components/pathways/pages/OperatingArena/JobsToBeDonePathway.tsx\": 4277,\n\t\"components/pathways/pages/OperatingArena/SegmentsPathway\": 7052,\n\t\"components/pathways/pages/OperatingArena/SegmentsPathway.tsx\": 7052,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway\": 6810,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway.tsx\": 6810,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/CustomerAdvantagePathway\": 1514,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/CustomerAdvantagePathway.tsx\": 1514,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/LocationAdvantagePathway\": 2614,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/LocationAdvantagePathway.tsx\": 2614,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway\": 9092,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway.tsx\": 9092,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/NetworkAdvantagePathway\": 5888,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/NetworkAdvantagePathway.tsx\": 5888,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/ResourceAdvantagePathway\": 4620,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/ResourceAdvantagePathway.tsx\": 4620,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway\": 1557,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway.tsx\": 1557,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/TimingAdvantagePathway\": 8664,\n\t\"components/pathways/pages/SafeguardsAgainstImitation/TimingAdvantagePathway.tsx\": 8664,\n\t\"components/pathways/pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway\": 1374,\n\t\"components/pathways/pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway.tsx\": 1374,\n\t\"components/pathways/pages/UnifiedBusinessModel/ExistingRAndCPathway\": 9603,\n\t\"components/pathways/pages/UnifiedBusinessModel/ExistingRAndCPathway.tsx\": 9603,\n\t\"components/pathways/pages/UnifiedBusinessModel/ImplementChangesPathway\": 6371,\n\t\"components/pathways/pages/UnifiedBusinessModel/ImplementChangesPathway.tsx\": 6371\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 8024;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ToolsHome\": 945,\n\t\"./ToolsHome.tsx\": 945,\n\t\"./ToolsRoot\": 4496,\n\t\"./ToolsRoot.tsx\": 4496,\n\t\"./pages/PortersFiveForcesCalculator\": 3981,\n\t\"./pages/PortersFiveForcesCalculator.tsx\": 3981,\n\t\"./pages/StrategyCanvasCalculator\": 9673,\n\t\"./pages/StrategyCanvasCalculator.tsx\": 9673,\n\t\"./pages/ThreeHorizonsCalculator\": 2695,\n\t\"./pages/ThreeHorizonsCalculator.tsx\": 2695,\n\t\"components/tools/ToolsHome\": 945,\n\t\"components/tools/ToolsHome.tsx\": 945,\n\t\"components/tools/ToolsRoot\": 4496,\n\t\"components/tools/ToolsRoot.tsx\": 4496,\n\t\"components/tools/pages/PortersFiveForcesCalculator\": 3981,\n\t\"components/tools/pages/PortersFiveForcesCalculator.tsx\": 3981,\n\t\"components/tools/pages/StrategyCanvasCalculator\": 9673,\n\t\"components/tools/pages/StrategyCanvasCalculator.tsx\": 9673,\n\t\"components/tools/pages/ThreeHorizonsCalculator\": 2695,\n\t\"components/tools/pages/ThreeHorizonsCalculator.tsx\": 2695\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 1904;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./C.png\": 9247,\n\t\"./F.png\": 2685,\n\t\"./O.png\": 8786,\n\t\"./S.png\": 3747,\n\t\"./U.png\": 638\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4351;","var map = {\n\t\"./\": 7672,\n\t\"./App\": 3465,\n\t\"./App.css\": 3508,\n\t\"./App.tsx\": 3465,\n\t\"./Bootstrap.css\": 806,\n\t\"./Constants\": 7128,\n\t\"./Constants.ts\": 7128,\n\t\"./api/Error\": 7118,\n\t\"./api/Error.ts\": 7118,\n\t\"./api/auth/ChangePassword\": 1447,\n\t\"./api/auth/ChangePassword.ts\": 1447,\n\t\"./api/auth/ChangePreferences\": 2065,\n\t\"./api/auth/ChangePreferences.ts\": 2065,\n\t\"./api/auth/CreateUser\": 4337,\n\t\"./api/auth/CreateUser.ts\": 4337,\n\t\"./api/auth/DeleteAccount\": 3346,\n\t\"./api/auth/DeleteAccount.ts\": 3346,\n\t\"./api/auth/LoginAttempt\": 2434,\n\t\"./api/auth/LoginAttempt.ts\": 2434,\n\t\"./api/auth/ResetPassword\": 3071,\n\t\"./api/auth/ResetPassword.ts\": 3071,\n\t\"./api/auth/ValidateToken\": 7075,\n\t\"./api/auth/ValidateToken.ts\": 7075,\n\t\"./api/email/InitiateEmailChange\": 989,\n\t\"./api/email/InitiateEmailChange.ts\": 989,\n\t\"./api/email/SendOtp\": 8816,\n\t\"./api/email/SendOtp.ts\": 8816,\n\t\"./api/email/SetNewEmail\": 4,\n\t\"./api/email/SetNewEmail.ts\": 4,\n\t\"./api/email/VerifyOtp\": 3456,\n\t\"./api/email/VerifyOtp.ts\": 3456,\n\t\"./api/tools/chatBot/ChatBot\": 6966,\n\t\"./api/tools/chatBot/ChatBot.ts\": 6966,\n\t\"./api/tools/chatBot/ChatBotLikes\": 877,\n\t\"./api/tools/chatBot/ChatBotLikes.ts\": 877,\n\t\"./api/tools/p5f/DeleteP5F\": 4293,\n\t\"./api/tools/p5f/DeleteP5F.ts\": 4293,\n\t\"./api/tools/p5f/GetP5F\": 239,\n\t\"./api/tools/p5f/GetP5F.ts\": 239,\n\t\"./api/tools/p5f/SaveP5F\": 6504,\n\t\"./api/tools/p5f/SaveP5F.ts\": 6504,\n\t\"./api/webUsage/GetWebUsageSummary\": 6393,\n\t\"./api/webUsage/GetWebUsageSummary.ts\": 6393,\n\t\"./api/webUsage/ReportWebUsage\": 5878,\n\t\"./api/webUsage/ReportWebUsage.ts\": 5878,\n\t\"./components/Footer\": 7121,\n\t\"./components/Footer.tsx\": 7121,\n\t\"./components/LoadIcon\": 6691,\n\t\"./components/LoadIcon.tsx\": 6691,\n\t\"./components/LoadingPage\": 6663,\n\t\"./components/LoadingPage.tsx\": 6663,\n\t\"./components/LoginSoon\": 4545,\n\t\"./components/LoginSoon.tsx\": 4545,\n\t\"./components/LogoSvg\": 1677,\n\t\"./components/LogoSvg.tsx\": 1677,\n\t\"./components/auth/Account\": 906,\n\t\"./components/auth/Account.tsx\": 906,\n\t\"./components/auth/EditAccount\": 6800,\n\t\"./components/auth/EditAccount.tsx\": 6800,\n\t\"./components/auth/ForgotPassword\": 4811,\n\t\"./components/auth/ForgotPassword.tsx\": 4811,\n\t\"./components/auth/Login\": 7517,\n\t\"./components/auth/Login.tsx\": 7517,\n\t\"./components/auth/LoginWall\": 158,\n\t\"./components/auth/LoginWall.tsx\": 158,\n\t\"./components/auth/NotAdmin\": 7493,\n\t\"./components/auth/NotAdmin.tsx\": 7493,\n\t\"./components/auth/OtpVerifier\": 9021,\n\t\"./components/auth/OtpVerifier.tsx\": 9021,\n\t\"./components/auth/Payment\": 2998,\n\t\"./components/auth/Payment.tsx\": 2998,\n\t\"./components/auth/Register\": 9069,\n\t\"./components/auth/Register.tsx\": 9069,\n\t\"./components/auth/Support\": 801,\n\t\"./components/auth/Support.tsx\": 801,\n\t\"./components/bootstrap_icons/Book\": 9178,\n\t\"./components/bootstrap_icons/Book.tsx\": 9178,\n\t\"./components/bootstrap_icons/House\": 7636,\n\t\"./components/bootstrap_icons/House.tsx\": 7636,\n\t\"./components/bootstrap_icons/Menu\": 1986,\n\t\"./components/bootstrap_icons/Menu.tsx\": 1986,\n\t\"./components/bootstrap_icons/RightArrow\": 5870,\n\t\"./components/bootstrap_icons/RightArrow.tsx\": 5870,\n\t\"./components/bootstrap_icons/SearchIcon\": 8656,\n\t\"./components/bootstrap_icons/SearchIcon.tsx\": 8656,\n\t\"./components/bootstrap_icons/SendArrow\": 3505,\n\t\"./components/bootstrap_icons/SendArrow.tsx\": 3505,\n\t\"./components/bootstrap_icons/Stars\": 8681,\n\t\"./components/bootstrap_icons/Stars.tsx\": 8681,\n\t\"./components/bootstrap_icons/ThumbsDown\": 9111,\n\t\"./components/bootstrap_icons/ThumbsDown.tsx\": 9111,\n\t\"./components/bootstrap_icons/ThumbsUp\": 1533,\n\t\"./components/bootstrap_icons/ThumbsUp.tsx\": 1533,\n\t\"./components/bootstrap_icons/User\": 6151,\n\t\"./components/bootstrap_icons/User.tsx\": 6151,\n\t\"./components/chat_bot/ChatWindow\": 6027,\n\t\"./components/chat_bot/ChatWindow.tsx\": 6027,\n\t\"./components/commandments/CommandmentsRoot\": 9577,\n\t\"./components/commandments/CommandmentsRoot.tsx\": 9577,\n\t\"./components/commandments/pages/1-NorthStar\": 3957,\n\t\"./components/commandments/pages/1-NorthStar.tsx\": 3957,\n\t\"./components/commandments/pages/10-Lead\": 608,\n\t\"./components/commandments/pages/10-Lead.tsx\": 608,\n\t\"./components/commandments/pages/2-ReallyMatter\": 2090,\n\t\"./components/commandments/pages/2-ReallyMatter.tsx\": 2090,\n\t\"./components/commandments/pages/3-CompeteWin\": 1695,\n\t\"./components/commandments/pages/3-CompeteWin.tsx\": 1695,\n\t\"./components/commandments/pages/4-Moat\": 3097,\n\t\"./components/commandments/pages/4-Moat.tsx\": 3097,\n\t\"./components/commandments/pages/5-Capabilities\": 2063,\n\t\"./components/commandments/pages/5-Capabilities.tsx\": 2063,\n\t\"./components/commandments/pages/6-Expand\": 7687,\n\t\"./components/commandments/pages/6-Expand.tsx\": 7687,\n\t\"./components/commandments/pages/7-GainsAndGoals\": 9033,\n\t\"./components/commandments/pages/7-GainsAndGoals.tsx\": 9033,\n\t\"./components/commandments/pages/8-Innovate\": 9255,\n\t\"./components/commandments/pages/8-Innovate.tsx\": 9255,\n\t\"./components/commandments/pages/9-Levels\": 3123,\n\t\"./components/commandments/pages/9-Levels.tsx\": 3123,\n\t\"./components/concepts/ConceptRoot\": 7071,\n\t\"./components/concepts/ConceptRoot.tsx\": 7071,\n\t\"./components/concepts/Wedges\": 6468,\n\t\"./components/concepts/Wedges.tsx\": 6468,\n\t\"./components/concepts/components/Wedge\": 3994,\n\t\"./components/concepts/components/Wedge.tsx\": 3994,\n\t\"./components/concepts/pages/AdjacentMarketExpansion\": 2905,\n\t\"./components/concepts/pages/AdjacentMarketExpansion.tsx\": 2905,\n\t\"./components/concepts/pages/BlueOcean\": 8047,\n\t\"./components/concepts/pages/BlueOcean.tsx\": 8047,\n\t\"./components/concepts/pages/Cage\": 4785,\n\t\"./components/concepts/pages/Cage.tsx\": 4785,\n\t\"./components/concepts/pages/ConsumptionChain\": 5526,\n\t\"./components/concepts/pages/ConsumptionChain.tsx\": 5526,\n\t\"./components/concepts/pages/Differentiation\": 407,\n\t\"./components/concepts/pages/Differentiation.tsx\": 407,\n\t\"./components/concepts/pages/EntryModes\": 1434,\n\t\"./components/concepts/pages/EntryModes.tsx\": 1434,\n\t\"./components/concepts/pages/ExperienceCurve\": 7343,\n\t\"./components/concepts/pages/ExperienceCurve.tsx\": 7343,\n\t\"./components/concepts/pages/IndirectAssault\": 1046,\n\t\"./components/concepts/pages/IndirectAssault.tsx\": 1046,\n\t\"./components/concepts/pages/InternationalStrategy\": 290,\n\t\"./components/concepts/pages/InternationalStrategy.tsx\": 290,\n\t\"./components/concepts/pages/JobsToBeDoneConcept\": 9891,\n\t\"./components/concepts/pages/JobsToBeDoneConcept.tsx\": 9891,\n\t\"./components/concepts/pages/PortersFiveForces\": 513,\n\t\"./components/concepts/pages/PortersFiveForces.tsx\": 513,\n\t\"./components/concepts/pages/PortersGenericStrategies\": 4315,\n\t\"./components/concepts/pages/PortersGenericStrategies.tsx\": 4315,\n\t\"./components/concepts/pages/ScaleCurve\": 2326,\n\t\"./components/concepts/pages/ScaleCurve.tsx\": 2326,\n\t\"./components/concepts/pages/StrategyCanvas\": 8348,\n\t\"./components/concepts/pages/StrategyCanvas.tsx\": 8348,\n\t\"./components/concepts/pages/SunkCostFallacy\": 326,\n\t\"./components/concepts/pages/SunkCostFallacy.tsx\": 326,\n\t\"./components/concepts/pages/ThreeHorizons\": 3271,\n\t\"./components/concepts/pages/ThreeHorizons.tsx\": 3271,\n\t\"./components/concepts/pages/TripleA\": 3194,\n\t\"./components/concepts/pages/TripleA.tsx\": 3194,\n\t\"./components/focuses/FocusRoot\": 3809,\n\t\"./components/focuses/FocusRoot.tsx\": 3809,\n\t\"./components/focuses/maps/CapabilitiesMap\": 9238,\n\t\"./components/focuses/maps/CapabilitiesMap.tsx\": 9238,\n\t\"./components/focuses/maps/MainMap\": 6869,\n\t\"./components/focuses/maps/MainMap.tsx\": 6869,\n\t\"./components/focuses/maps/UniqueValueMap\": 3043,\n\t\"./components/focuses/maps/UniqueValueMap.tsx\": 3043,\n\t\"./components/focuses/pages/CustomerUnmetNeeds\": 9854,\n\t\"./components/focuses/pages/CustomerUnmetNeeds.tsx\": 9854,\n\t\"./components/focuses/pages/FoundationInPurpose\": 7294,\n\t\"./components/focuses/pages/FoundationInPurpose.tsx\": 7294,\n\t\"./components/focuses/pages/OperatingArena\": 7651,\n\t\"./components/focuses/pages/OperatingArena.tsx\": 7651,\n\t\"./components/focuses/pages/SafeguardsAgainstImitation\": 2932,\n\t\"./components/focuses/pages/SafeguardsAgainstImitation.tsx\": 2932,\n\t\"./components/focuses/pages/UnifiedBusinessModel\": 793,\n\t\"./components/focuses/pages/UnifiedBusinessModel.tsx\": 793,\n\t\"./components/main_pages/AnimationTest\": 9593,\n\t\"./components/main_pages/AnimationTest.tsx\": 9593,\n\t\"./components/main_pages/Codex\": 3209,\n\t\"./components/main_pages/Codex.tsx\": 3209,\n\t\"./components/main_pages/CommandmentsHome\": 5213,\n\t\"./components/main_pages/CommandmentsHome.tsx\": 5213,\n\t\"./components/main_pages/Dashboard\": 2933,\n\t\"./components/main_pages/Dashboard.tsx\": 2933,\n\t\"./components/main_pages/ErrorPage\": 3440,\n\t\"./components/main_pages/ErrorPage.tsx\": 3440,\n\t\"./components/main_pages/FocusHome\": 4514,\n\t\"./components/main_pages/FocusHome.tsx\": 4514,\n\t\"./components/main_pages/Home\": 5388,\n\t\"./components/main_pages/Home.tsx\": 5388,\n\t\"./components/main_pages/QrCode\": 7013,\n\t\"./components/main_pages/QrCode.tsx\": 7013,\n\t\"./components/main_pages/Team\": 9380,\n\t\"./components/main_pages/Team.tsx\": 9380,\n\t\"./components/main_pages/Videos\": 893,\n\t\"./components/main_pages/Videos.tsx\": 893,\n\t\"./components/navigation/BackToTop\": 1043,\n\t\"./components/navigation/BackToTop.tsx\": 1043,\n\t\"./components/navigation/Breadcrumb\": 2029,\n\t\"./components/navigation/Breadcrumb.tsx\": 2029,\n\t\"./components/navigation/BreadcrumbsAndArrows\": 9777,\n\t\"./components/navigation/BreadcrumbsAndArrows.tsx\": 9777,\n\t\"./components/navigation/MasterSidebar\": 4038,\n\t\"./components/navigation/MasterSidebar.tsx\": 4038,\n\t\"./components/navigation/Nav\": 7485,\n\t\"./components/navigation/Nav.tsx\": 7485,\n\t\"./components/navigation/NavArrows\": 4474,\n\t\"./components/navigation/NavArrows.tsx\": 4474,\n\t\"./components/navigation/SearchBar\": 1015,\n\t\"./components/navigation/SearchBar.tsx\": 1015,\n\t\"./components/navigation/SearchPage\": 6011,\n\t\"./components/navigation/SearchPage.tsx\": 6011,\n\t\"./components/pathways/PathwayRoot\": 4430,\n\t\"./components/pathways/PathwayRoot.tsx\": 4430,\n\t\"./components/pathways/pages/CustomerUnmetNeeds/CJobsToBeDonePathway\": 4018,\n\t\"./components/pathways/pages/CustomerUnmetNeeds/CJobsToBeDonePathway.tsx\": 4018,\n\t\"./components/pathways/pages/CustomerUnmetNeeds/PainPointsPathway\": 6740,\n\t\"./components/pathways/pages/CustomerUnmetNeeds/PainPointsPathway.tsx\": 6740,\n\t\"./components/pathways/pages/CustomerUnmetNeeds/UniqueValuePathway\": 2001,\n\t\"./components/pathways/pages/CustomerUnmetNeeds/UniqueValuePathway.tsx\": 2001,\n\t\"./components/pathways/pages/FoundationInPurpose/AlignmentPathway\": 3257,\n\t\"./components/pathways/pages/FoundationInPurpose/AlignmentPathway.tsx\": 3257,\n\t\"./components/pathways/pages/FoundationInPurpose/DefineMissionPathway\": 432,\n\t\"./components/pathways/pages/FoundationInPurpose/DefineMissionPathway.tsx\": 432,\n\t\"./components/pathways/pages/FoundationInPurpose/DefineValuesPathway\": 2860,\n\t\"./components/pathways/pages/FoundationInPurpose/DefineValuesPathway.tsx\": 2860,\n\t\"./components/pathways/pages/FoundationInPurpose/DefineVisionPathway\": 3801,\n\t\"./components/pathways/pages/FoundationInPurpose/DefineVisionPathway.tsx\": 3801,\n\t\"./components/pathways/pages/FoundationInPurpose/EthicsPathway\": 9291,\n\t\"./components/pathways/pages/FoundationInPurpose/EthicsPathway.tsx\": 9291,\n\t\"./components/pathways/pages/OperatingArena/ChosenPositionPathway\": 1062,\n\t\"./components/pathways/pages/OperatingArena/ChosenPositionPathway.tsx\": 1062,\n\t\"./components/pathways/pages/OperatingArena/CustomerIdentificationPathway\": 3513,\n\t\"./components/pathways/pages/OperatingArena/CustomerIdentificationPathway.tsx\": 3513,\n\t\"./components/pathways/pages/OperatingArena/EvaluateIndustryPathway\": 4494,\n\t\"./components/pathways/pages/OperatingArena/EvaluateIndustryPathway.tsx\": 4494,\n\t\"./components/pathways/pages/OperatingArena/JobsToBeDonePathway\": 4277,\n\t\"./components/pathways/pages/OperatingArena/JobsToBeDonePathway.tsx\": 4277,\n\t\"./components/pathways/pages/OperatingArena/SegmentsPathway\": 7052,\n\t\"./components/pathways/pages/OperatingArena/SegmentsPathway.tsx\": 7052,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway\": 6810,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/CapabilitiesAdvantagePathway.tsx\": 6810,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/CustomerAdvantagePathway\": 1514,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/CustomerAdvantagePathway.tsx\": 1514,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/LocationAdvantagePathway\": 2614,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/LocationAdvantagePathway.tsx\": 2614,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway\": 9092,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/ManufacturingAdvantagePathway.tsx\": 9092,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/NetworkAdvantagePathway\": 5888,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/NetworkAdvantagePathway.tsx\": 5888,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/ResourceAdvantagePathway\": 4620,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/ResourceAdvantagePathway.tsx\": 4620,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway\": 1557,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/SwitchingCostAdvantagePathway.tsx\": 1557,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/TimingAdvantagePathway\": 8664,\n\t\"./components/pathways/pages/SafeguardsAgainstImitation/TimingAdvantagePathway.tsx\": 8664,\n\t\"./components/pathways/pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway\": 1374,\n\t\"./components/pathways/pages/UnifiedBusinessModel/AnalyzeFirmActivitiesPathway.tsx\": 1374,\n\t\"./components/pathways/pages/UnifiedBusinessModel/ExistingRAndCPathway\": 9603,\n\t\"./components/pathways/pages/UnifiedBusinessModel/ExistingRAndCPathway.tsx\": 9603,\n\t\"./components/pathways/pages/UnifiedBusinessModel/ImplementChangesPathway\": 6371,\n\t\"./components/pathways/pages/UnifiedBusinessModel/ImplementChangesPathway.tsx\": 6371,\n\t\"./components/templates/Error\": 5720,\n\t\"./components/templates/Error.tsx\": 5720,\n\t\"./components/templates/HorizontalAccordion\": 4383,\n\t\"./components/templates/HorizontalAccordion.tsx\": 4383,\n\t\"./components/templates/Message\": 1739,\n\t\"./components/templates/Message.tsx\": 1739,\n\t\"./components/templates/PageTitleBanner\": 6362,\n\t\"./components/templates/PageTitleBanner.tsx\": 6362,\n\t\"./components/templates/SidebarPage\": 9465,\n\t\"./components/templates/SidebarPage.tsx\": 9465,\n\t\"./components/tools/ToolsHome\": 945,\n\t\"./components/tools/ToolsHome.tsx\": 945,\n\t\"./components/tools/ToolsRoot\": 4496,\n\t\"./components/tools/ToolsRoot.tsx\": 4496,\n\t\"./components/tools/pages/PortersFiveForcesCalculator\": 3981,\n\t\"./components/tools/pages/PortersFiveForcesCalculator.tsx\": 3981,\n\t\"./components/tools/pages/StrategyCanvasCalculator\": 9673,\n\t\"./components/tools/pages/StrategyCanvasCalculator.tsx\": 9673,\n\t\"./components/tools/pages/ThreeHorizonsCalculator\": 2695,\n\t\"./components/tools/pages/ThreeHorizonsCalculator.tsx\": 2695,\n\t\"./context/UserContext\": 7252,\n\t\"./context/UserContext.ts\": 7252,\n\t\"./design_lib\": 1766,\n\t\"./design_lib/\": 1766,\n\t\"./design_lib/Headers\": 1246,\n\t\"./design_lib/Headers.tsx\": 1246,\n\t\"./design_lib/Image\": 4442,\n\t\"./design_lib/Image.tsx\": 4442,\n\t\"./design_lib/Paragraph\": 9771,\n\t\"./design_lib/Paragraph.tsx\": 9771,\n\t\"./design_lib/RelatedFrameworks\": 3041,\n\t\"./design_lib/RelatedFrameworks.tsx\": 3041,\n\t\"./design_lib/Updated\": 3375,\n\t\"./design_lib/Updated.tsx\": 3375,\n\t\"./design_lib/index\": 1766,\n\t\"./design_lib/index.ts\": 1766,\n\t\"./hooks/useChatBot\": 5990,\n\t\"./hooks/useChatBot.ts\": 5990,\n\t\"./hooks/useElementSize\": 3369,\n\t\"./hooks/useElementSize.ts\": 3369,\n\t\"./hooks/useUser\": 2852,\n\t\"./hooks/useUser.ts\": 2852,\n\t\"./hooks/useWindowSize\": 6527,\n\t\"./hooks/useWindowSize.ts\": 6527,\n\t\"./index\": 7672,\n\t\"./index.tsx\": 7672,\n\t\"./init/InitializeAxios\": 8967,\n\t\"./init/InitializeAxios.ts\": 8967,\n\t\"./lib/data/AnimationData\": 7058,\n\t\"./lib/data/AnimationData.ts\": 7058,\n\t\"./lib/data/Categories\": 2148,\n\t\"./lib/data/Categories.ts\": 2148,\n\t\"./lib/data/CodexViews\": 826,\n\t\"./lib/data/CodexViews.ts\": 826,\n\t\"./lib/data/Commandments\": 8345,\n\t\"./lib/data/Commandments.ts\": 8345,\n\t\"./lib/data/Concepts\": 6060,\n\t\"./lib/data/Concepts.ts\": 6060,\n\t\"./lib/data/Focuses\": 6888,\n\t\"./lib/data/Focuses.ts\": 6888,\n\t\"./lib/data/Pathways\": 5354,\n\t\"./lib/data/Pathways.ts\": 5354,\n\t\"./lib/data/Students\": 7845,\n\t\"./lib/data/Students.ts\": 7845,\n\t\"./lib/data/Tools\": 3806,\n\t\"./lib/data/Tools.ts\": 3806,\n\t\"./lib/data/Videos\": 9996,\n\t\"./lib/data/Videos.ts\": 9996,\n\t\"./lib/data/Views\": 8752,\n\t\"./lib/data/Views.ts\": 8752,\n\t\"./lib/img/BYU_Logos/BYU.jpg\": 2869,\n\t\"./lib/img/BYU_Logos/BYU_Cougars_logo.svg\": 7597,\n\t\"./lib/img/BYU_Logos/Combined Mark/EPS/BYU MonogramWordmark_black.eps\": 9439,\n\t\"./lib/img/BYU_Logos/Combined Mark/EPS/BYU MonogramWordmark_navy.eps\": 2535,\n\t\"./lib/img/BYU_Logos/Combined Mark/EPS/BYU MonogramWordmark_white.eps\": 6924,\n\t\"./lib/img/BYU_Logos/Combined Mark/PNG/BYU MonogramWordmark_black@2x.png\": 5521,\n\t\"./lib/img/BYU_Logos/Combined Mark/PNG/BYU MonogramWordmark_navy@2x.png\": 1204,\n\t\"./lib/img/BYU_Logos/Combined Mark/PNG/BYU MonogramWordmark_white@2x.png\": 4700,\n\t\"./lib/img/BYU_Logos/Combined Mark/SVG/BYU MonogramWordmark_black.svg\": 5829,\n\t\"./lib/img/BYU_Logos/Combined Mark/SVG/BYU MonogramWordmark_navy.svg\": 7318,\n\t\"./lib/img/BYU_Logos/Combined Mark/SVG/BYU MonogramWordmark_white.svg\": 4096,\n\t\"./lib/img/BYU_Logos/Monogram/EPS/BYU monogram_black.eps\": 2891,\n\t\"./lib/img/BYU_Logos/Monogram/EPS/BYU monogram_navy.eps\": 3821,\n\t\"./lib/img/BYU_Logos/Monogram/EPS/BYU monogram_white.eps\": 2116,\n\t\"./lib/img/BYU_Logos/Monogram/PNG/BYU monogram_black@2x.png\": 9067,\n\t\"./lib/img/BYU_Logos/Monogram/PNG/BYU monogram_navy@2x.png\": 7964,\n\t\"./lib/img/BYU_Logos/Monogram/PNG/BYU monogram_white@2x.png\": 9017,\n\t\"./lib/img/BYU_Logos/Monogram/SVG/BYU monogram_black.svg\": 7770,\n\t\"./lib/img/BYU_Logos/Monogram/SVG/BYU monogram_navy.svg\": 3269,\n\t\"./lib/img/BYU_Logos/Monogram/SVG/BYU monogram_white.svg\": 6932,\n\t\"./lib/img/CodexTool.jpg\": 6405,\n\t\"./lib/img/DaVinciPillars.jpg\": 4856,\n\t\"./lib/img/DaVinciShape.png\": 5621,\n\t\"./lib/img/FocusTool.jpg\": 2244,\n\t\"./lib/img/Logo.svg\": 7006,\n\t\"./lib/img/MagnifyingGlass_old.jpg\": 5041,\n\t\"./lib/img/Magnifying_Glass.png\": 2942,\n\t\"./lib/img/concepts/AAA_old.png\": 7826,\n\t\"./lib/img/concepts/BusinessModels.png\": 7349,\n\t\"./lib/img/concepts/CAGE_framework.png\": 2279,\n\t\"./lib/img/concepts/ConsumptionChain_old.jpg\": 8179,\n\t\"./lib/img/concepts/Consumption_Chain.png\": 9473,\n\t\"./lib/img/concepts/Differentiation_Porters_Generic_Strategies.png\": 4978,\n\t\"./lib/img/concepts/Differentiation_Venn_Diagram.png\": 5189,\n\t\"./lib/img/concepts/EntryModes.png\": 3995,\n\t\"./lib/img/concepts/ExperienceCurve.png\": 1294,\n\t\"./lib/img/concepts/GrowthShareMatrixCorporateStrategy.png\": 9812,\n\t\"./lib/img/concepts/InternationalStrategy_old.jpg\": 5418,\n\t\"./lib/img/concepts/International_Strategy.png\": 7711,\n\t\"./lib/img/concepts/Jobs_To_Be_Done.png\": 7752,\n\t\"./lib/img/concepts/Jobs_To_Be_Done_Types.png\": 3661,\n\t\"./lib/img/concepts/MECE.png\": 5431,\n\t\"./lib/img/concepts/Porter'sFiveForcesGraphic_old.png\": 1103,\n\t\"./lib/img/concepts/Porter's_Five_Forces.png\": 2925,\n\t\"./lib/img/concepts/PyramidPrinciple.png\": 9910,\n\t\"./lib/img/concepts/ScaleCurve.png\": 3511,\n\t\"./lib/img/concepts/SunkCost.png\": 9878,\n\t\"./lib/img/concepts/ThreeHorizons_old.png\": 919,\n\t\"./lib/img/concepts/Three_Horizons.png\": 8094,\n\t\"./lib/img/concepts/Triple_A.png\": 8761,\n\t\"./lib/img/differentiation_wedges/Aged_Paper_(Background).png\": 6631,\n\t\"./lib/img/differentiation_wedges/Bottom_Line.png\": 3574,\n\t\"./lib/img/differentiation_wedges/Full_Wedge.png\": 5543,\n\t\"./lib/img/differentiation_wedges/Half_Wedge.png\": 6271,\n\t\"./lib/img/differentiation_wedges/Top_Line.png\": 2532,\n\t\"./lib/img/focuses/CustomerUnmetNeeds.jpg\": 1537,\n\t\"./lib/img/focuses/FoundationInPurpose.jpg\": 4663,\n\t\"./lib/img/focuses/OperatingArena.jpg\": 1491,\n\t\"./lib/img/focuses/SafeguardsAgainstImitation.jpg\": 4783,\n\t\"./lib/img/focuses/UnifiedBusinessModel.jpg\": 9780,\n\t\"./lib/img/icons/back-arrow.png\": 7569,\n\t\"./lib/img/icons/collapse.png\": 3622,\n\t\"./lib/img/icons/youtubeIcon.png\": 2699,\n\t\"./lib/img/letters/C.png\": 9247,\n\t\"./lib/img/letters/F.png\": 2685,\n\t\"./lib/img/letters/O.png\": 8786,\n\t\"./lib/img/letters/S.png\": 3747,\n\t\"./lib/img/letters/U.png\": 638,\n\t\"./lib/img/loginBG.png\": 9501,\n\t\"./lib/img/magnifyingGlass_older.png\": 7858,\n\t\"./lib/img/pathways/AlignmentPathway.jpg\": 8754,\n\t\"./lib/img/pathways/AnalyzeFirmActivitiesPathway.jpg\": 1391,\n\t\"./lib/img/pathways/CJobsToBeDonePathway.jpg\": 1143,\n\t\"./lib/img/pathways/ChosenPositionPathway.jpg\": 5867,\n\t\"./lib/img/pathways/CustomerIdentificationPathway.jpg\": 2277,\n\t\"./lib/img/pathways/DefineMission.png\": 9394,\n\t\"./lib/img/pathways/DefineMissionPathway.jpg\": 6525,\n\t\"./lib/img/pathways/DefineValuesPathway.jpg\": 7450,\n\t\"./lib/img/pathways/DefineVision.png\": 2850,\n\t\"./lib/img/pathways/DefineVisionPathway.jpg\": 4898,\n\t\"./lib/img/pathways/EthicsPathway.jpg\": 8756,\n\t\"./lib/img/pathways/EvaluateIndustryPathway.jpg\": 5479,\n\t\"./lib/img/pathways/ExistingRAndCPathway.jpg\": 1022,\n\t\"./lib/img/pathways/ImplementChangesPathway.jpg\": 8244,\n\t\"./lib/img/pathways/JobsToBeDone.png\": 7444,\n\t\"./lib/img/pathways/JobsToBeDonePathway.jpg\": 8139,\n\t\"./lib/img/pathways/LemonadeStand.jpg\": 6746,\n\t\"./lib/img/pathways/PainPoints.png\": 3471,\n\t\"./lib/img/pathways/PainPointsPathway.jpg\": 4909,\n\t\"./lib/img/pathways/SegmentsPathway.jpg\": 5582,\n\t\"./lib/img/pathways/UniqueValuePathway.jpg\": 3111,\n\t\"./lib/img/pathwaysArrow.svg\": 9937,\n\t\"./lib/img/team/a_rich.jpg\": 2205,\n\t\"./lib/img/team/c_procuniar.jpg\": 5703,\n\t\"./lib/img/team/c_scott.jpg\": 9625,\n\t\"./lib/img/team/d_rush.jpg\": 1515,\n\t\"./lib/img/team/j_heninger.jpg\": 3839,\n\t\"./lib/img/team/j_oldroyd.jpg\": 1913,\n\t\"./lib/img/team/m_briggs.jpg\": 9667,\n\t\"./lib/img/team/p_pond.jpg\": 8957,\n\t\"./lib/img/team/strategy-instructors.jpg\": 8880,\n\t\"./lib/img/team/t_gubler.jpg\": 9372,\n\t\"./lib/img/team/t_hill.jpg\": 1200,\n\t\"./lib/img/tools/PortersFiveForces.jpg\": 605,\n\t\"./lib/img/tools/StrategyCanvas.jpg\": 9867,\n\t\"./lib/img/tools/ThreeHorizons.jpg\": 6863,\n\t\"./lib/img/unused/Barriers_To_Entry.png\": 8921,\n\t\"./lib/img/unused/Blockbuster.png\": 4701,\n\t\"./lib/img/unused/Competitive_Advantage_ 2.png\": 1914,\n\t\"./lib/img/unused/Minimum_Efficient_Scale 2.png\": 8710,\n\t\"./lib/img/unused/Saw.png\": 521,\n\t\"./lib/img/videosBG.png\": 3205,\n\t\"./types/JsonType\": 3638,\n\t\"./types/JsonType.ts\": 3638,\n\t\"./types/MessageType\": 2314,\n\t\"./types/MessageType.ts\": 2314,\n\t\"./types/UserType\": 3885,\n\t\"./types/UserType.ts\": 3885,\n\t\"./utils/GetFuncParams\": 8045,\n\t\"./utils/GetFuncParams.ts\": 8045,\n\t\"./utils/PasswordValidator\": 6982,\n\t\"./utils/PasswordValidator.ts\": 6982,\n\t\"./utils/SetDocumentTitle\": 3813,\n\t\"./utils/SetDocumentTitle.ts\": 3813\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8116;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * `hast` is close to `React`, but differs in a couple of cases.\n *\n * To get a React property from a hast property, check if it is in\n * `hastToReact`, if it is, then use the corresponding value,\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","import StyleToObject from '../cjs/index.js';\n\n// ensure compatibility with rollup umd build\nexport default StyleToObject.default || StyleToObject;\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /* eslint-disable no-unused-expressions */\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","// Register MDX nodes in mdast:\n/// <reference types=\"mdast-util-mdx-expression\" />\n/// <reference types=\"mdast-util-mdx-jsx\" />\n/// <reference types=\"mdast-util-mdxjs-esm\" />\n\n/**\n * @typedef {import('estree').Identifier} Identifier\n * @typedef {import('estree').Literal} Literal\n * @typedef {import('estree').MemberExpression} MemberExpression\n * @typedef {import('estree').Expression} Expression\n * @typedef {import('estree').Program} Program\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-mdx-expression').MdxFlowExpressionHast} MdxFlowExpression\n * @typedef {import('mdast-util-mdx-expression').MdxTextExpressionHast} MdxTextExpression\n *\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxFlowElementHast} MdxJsxFlowElement\n * @typedef {import('mdast-util-mdx-jsx').MdxJsxTextElementHast} MdxJsxTextElement\n *\n * @typedef {import('mdast-util-mdxjs-esm').MdxjsEsmHast} MdxjsEsm\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('unist').Position} Position\n *\n * @typedef {import('./components.js').Components} Components\n */\n\n/**\n * @typedef {JSX.Element | string | null | undefined} Child\n * Child.\n *\n * @callback Create\n * Create something in development or production.\n * @param {Nodes} node\n * hast node.\n * @param {unknown} type\n * Fragment symbol or tag name.\n * @param {Props} props\n * Properties and children.\n * @param {string | undefined} key\n * Key.\n * @returns {JSX.Element}\n * Result.\n *\n * @callback CreateEvaluater\n * Create an evaluator that turns ESTree ASTs from embedded MDX into values.\n * @returns {Evaluater}\n * Evaluater.\n *\n * @typedef {'html' | 'react'} ElementAttributeNameCase\n * Casing to use for attribute names.\n *\n * HTML casing is for example `class`, `stroke-linecap`, `xml:lang`.\n * React casing is for example `className`, `strokeLinecap`, `xmlLang`.\n *\n * @callback EvaluateExpression\n * Turn an MDX expression into a value.\n * @param {Expression} expression\n * ESTree expression.\n * @returns {unknown}\n * Result of expression.\n *\n * @callback EvaluateProgram\n * Turn an MDX program (export/import statements) into a value.\n * @param {Program} expression\n * ESTree program.\n * @returns {unknown}\n * Result of program;\n * should likely be `undefined` as ESM changes the scope but doesn’t yield\n * something.\n *\n * @typedef Evaluater\n * Evaluator that turns ESTree ASTs from embedded MDX into values.\n * @property {EvaluateExpression} evaluateExpression\n * Evaluate an expression.\n * @property {EvaluateProgram} evaluateProgram\n * Evaluate a program.\n *\n * @typedef {[string, Value]} Field\n * Property field.\n *\n * @typedef {unknown} Fragment\n * Represent the children, typically a symbol.\n *\n * @callback Jsx\n * Create a production element.\n * @param {unknown} type\n * Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n * Element props, `children`, and maybe `node`.\n * @param {string | undefined} [key]\n * Dynamicly generated key to use.\n * @returns {JSX.Element}\n * Element from your framework.\n *\n * @callback JsxDev\n * Create a development element.\n * @param {unknown} type\n * Element type: `Fragment` symbol, tag name (`string`), component.\n * @param {Props} props\n * Element props, `children`, and maybe `node`.\n * @param {string | undefined} key\n * Dynamicly generated key to use.\n * @param {boolean} isStaticChildren\n * Whether two or more children are passed (in an array), which is whether\n * `jsxs` or `jsx` would be used.\n * @param {Source} source\n * Info about source.\n * @param {undefined} self\n * Nothing (this is used by frameworks that have components, we don’t).\n * @returns {JSX.Element}\n * Element from your framework.\n *\n * @typedef {{children?: Array<Child> | Child, node?: Element | MdxJsxFlowElement | MdxJsxTextElement | undefined, [prop: string]: Array<Child> | Child | Element | MdxJsxFlowElement | MdxJsxTextElement | Value | undefined}} Props\n * Properties and children.\n *\n * @typedef RegularFields\n * Configuration.\n * @property {Partial<Components> | null | undefined} [components]\n * Components to use (optional).\n * @property {CreateEvaluater | null | undefined} [createEvaluater]\n * Create an evaluator that turns ESTree ASTs into values (optional).\n * @property {ElementAttributeNameCase | null | undefined} [elementAttributeNameCase='react']\n * Specify casing to use for attribute names (default: `'react'`).\n * @property {string | null | undefined} [filePath]\n * File path to the original source file (optional).\n *\n * Passed in source info to `jsxDEV` when using the automatic runtime with\n * `development: true`.\n * @property {boolean | null | undefined} [ignoreInvalidStyle=false]\n * Ignore invalid CSS in `style` props (default: `false`);\n * the default behavior is to throw an error.\n * @property {boolean | null | undefined} [passKeys=true]\n * Generate keys to optimize frameworks that support them (default: `true`).\n *\n * > 👉 **Note**: Solid currently fails if keys are passed.\n * @property {boolean | null | undefined} [passNode=false]\n * Pass the hast element node to components (default: `false`).\n * @property {Space | null | undefined} [space='html']\n * Whether `tree` is in the `'html'` or `'svg'` space (default: `'html'`).\n *\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {StylePropertyNameCase | null | undefined} [stylePropertyNameCase='dom']\n * Specify casing to use for property names in `style` objects (default:\n * `'dom'`).\n * @property {boolean | null | undefined} [tableCellAlignToStyle=true]\n * Turn obsolete `align` props on `td` and `th` into CSS `style` props\n * (default: `true`).\n *\n * @typedef RuntimeDevelopment\n * Runtime fields when development is on.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {true} development\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n * Dynamic JSX (optional).\n * @property {JsxDev} jsxDEV\n * Development JSX.\n * @property {Jsx | null | undefined} [jsxs]\n * Static JSX (optional).\n *\n * @typedef RuntimeProduction\n * Runtime fields when development is off.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {false | null | undefined} [development]\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off) (optional).\n * @property {Jsx} jsx\n * Dynamic JSX.\n * @property {JsxDev | null | undefined} [jsxDEV]\n * Development JSX (optional).\n * @property {Jsx} jsxs\n * Static JSX.\n *\n * @typedef RuntimeUnknown\n * Runtime fields when development might be on or off.\n * @property {Fragment} Fragment\n * Fragment.\n * @property {boolean} development\n * Whether to use `jsxDEV` (when on) or `jsx` and `jsxs` (when off).\n * @property {Jsx | null | undefined} [jsx]\n * Dynamic JSX (optional).\n * @property {JsxDev | null | undefined} [jsxDEV]\n * Development JSX (optional).\n * @property {Jsx | null | undefined} [jsxs]\n * Static JSX (optional).\n *\n * @typedef Source\n * Info about source.\n * @property {number | undefined} columnNumber\n * Column where thing starts (0-indexed).\n * @property {string | undefined} fileName\n * Name of source file.\n * @property {number | undefined} lineNumber\n * Line where thing starts (1-indexed).\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use `xast` if you need to support SVG as XML.\n *\n * @typedef State\n * Info passed around.\n * @property {unknown} Fragment\n * Fragment symbol.\n * @property {Array<Parents>} ancestors\n * Stack of parents.\n * @property {Partial<Components>} components\n * Components to swap.\n * @property {Create} create\n * Create something in development or production.\n * @property {ElementAttributeNameCase} elementAttributeNameCase\n * Casing to use for attribute names.\n * @property {Evaluater | undefined} evaluater\n * Evaluator that turns ESTree ASTs into values.\n * @property {string | undefined} filePath\n * File path.\n * @property {boolean} ignoreInvalidStyle\n * Ignore invalid CSS in `style` props.\n * @property {boolean} passKeys\n * Generate keys to optimize frameworks that support them.\n * @property {boolean} passNode\n * Pass `node` to components.\n * @property {Schema} schema\n * Current schema.\n * @property {StylePropertyNameCase} stylePropertyNameCase\n * Casing to use for property names in `style` objects.\n * @property {boolean} tableCellAlignToStyle\n * Turn obsolete `align` props on `td` and `th` into CSS `style` props.\n *\n * @typedef {Record<string, string>} Style\n * Style map.\n *\n * @typedef {'css' | 'dom'} StylePropertyNameCase\n * Casing to use for property names in `style` objects.\n *\n * CSS casing is for example `background-color` and `-webkit-line-clamp`.\n * DOM casing is for example `backgroundColor` and `WebkitLineClamp`.\n *\n * @typedef {Style | boolean | number | string} Value\n * Primitive property value and `Style` map.\n */\n\n/**\n * @typedef {RuntimeDevelopment & RegularFields} Development\n * Configuration (development).\n * @typedef {Development | Production | Unknown} Options\n * Configuration.\n * @typedef {RegularFields & RuntimeProduction} Production\n * Configuration (production).\n * @typedef {RegularFields & RuntimeUnknown} Unknown\n * Configuration (production or development).\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToObject from 'style-to-object'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\nconst dashSomething = /-([a-z])/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JSX.Element}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpression | MdxTextExpression} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsm} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElement | MdxJsxTextElement} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n /** @type {Create} */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n /** @type {Create} */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElement | MdxJsxTextElement} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n const info = find(state.schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n let styleObject =\n typeof value === 'object' ? value : parseStyle(state, String(value))\n\n if (state.stylePropertyNameCase === 'css') {\n styleObject = transformStylesToCssCasing(styleObject)\n }\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n /** @type {Style} */\n const result = {}\n\n try {\n // @ts-expect-error: `style-to-object` types are broken.\n styleToObject(value, replacer)\n } catch (error) {\n if (!state.ignoreInvalidStyle) {\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n }\n\n return result\n\n /**\n * Add a CSS property (normal, so with dashes) to `result` as a DOM CSS\n * property.\n *\n * @param {string} name\n * Key.\n * @param {string} value\n * Value\n * @returns {undefined}\n * Nothing.\n */\n function replacer(name, value) {\n let key = name\n\n if (key.slice(0, 2) !== '--') {\n if (key.slice(0, 4) === '-ms-') key = 'ms-' + key.slice(4)\n key = key.replace(dashSomething, toCamel)\n }\n\n result[key] = value\n }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {keyof JSX.IntrinsicElements} */ (result.value)\n\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$1` capitalized.\n *\n * @param {string} _\n * Whatever.\n * @param {string} $1\n * Single ASCII alphabetical.\n * @returns {string}\n * Capitalized `$1`.\n */\nfunction toCamel(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */\nexport const urlAttributes = {\n action: ['form'],\n cite: ['blockquote', 'del', 'ins', 'q'],\n data: ['object'],\n formAction: ['button', 'input'],\n href: ['a', 'area', 'base', 'link'],\n icon: ['menuitem'],\n itemId: null,\n manifest: ['html'],\n ping: ['a', 'area'],\n poster: ['video'],\n src: [\n 'audio',\n 'embed',\n 'iframe',\n 'img',\n 'input',\n 'script',\n 'source',\n 'track',\n 'video'\n ]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push[...newElements]` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : [];\n /** @type {Array<T>} */\n this.right = [];\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n }\n if (index < this.left.length) return this.left[index];\n return this.right[this.right.length - index + this.left.length - 1];\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0);\n return this.right.pop();\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n if (stop < this.left.length) {\n return this.left.slice(start, stop);\n }\n if (start > this.left.length) {\n return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n }\n return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0;\n this.setCursor(Math.trunc(start));\n const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n if (items) chunkedPush(this.left, items);\n return removed.reverse();\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY);\n return this.left.pop();\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY);\n this.left.push(item);\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY);\n chunkedPush(this.left, items);\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0);\n this.right.push(item);\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0);\n chunkedPush(this.right, items.reverse());\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n chunkedPush(this.right, removed.reverse());\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n chunkedPush(this.left, removed.reverse());\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0;\n if (right.length < 10000) {\n list.push(...right);\n } else {\n while (chunkStart < right.length) {\n list.push(...right.slice(chunkStart, chunkStart + 10000));\n chunkStart += 10000;\n }\n }\n}","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n const events = new SpliceBuffer(eventsArray);\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events.get(index);\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events.get(otherIndex);\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events.get(lineIndex)[1].start);\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n events.splice(lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1];\n const context = events.get(eventIndex)[2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n const tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.push([start, start + slice.length - 1]);\n events.splice(start, 2, slice);\n }\n jumps.reverse();\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {undefined}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {undefined}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {undefined}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter(\"content\");\n previous = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit(\"chunkContent\");\n previous.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {undefined}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {undefined}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {undefined}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {undefined}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(\"definition\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"definition\");\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter(\"codeIndented\");\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(\"codeIndented\");\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = Object.assign({}, events[definition][1].end);\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n};\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n token.type = \"data\";\n index++;\n }\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: \"label\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text = {\n type: \"labelText\",\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array<Event>} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: Object.assign({}, events[index][1].start),\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit<Parent, 'children' | 'type'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Fragment | Nodes>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n switch (event[1].type) {\n case 'listUnordered':\n case 'listOrdered':\n case 'blockQuote': {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n break\n }\n case 'linePrefix':\n case 'listItemValue':\n case 'listItemMarker':\n case 'listItemPrefix':\n case 'listItemPrefixWhitespace': {\n // Empty.\n\n break\n }\n default: {\n atMarker = undefined\n }\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n listItem = item\n events.splice(index, 0, ['enter', item, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Array<Nodes>} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n this.data.expectingFirstListItemValue = undefined\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return\n this.buffer()\n this.data.flowCodeInside = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n this.data.flowCodeInside = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n /** @type {Array<Nodes>} */\n const siblings = node.children\n let tail = siblings[siblings.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n this.data.inReference = true\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = this.data.characterReferenceType\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n /** @type {Readonly<ActionTuple>} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<UnistParent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array<UnistParent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const def = state.definitionById.get(id)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const def = state.definitionById.get(id)\n\n if (!def) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n properties.title = def.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// <reference types=\"mdast-util-to-hast\" />\n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array<string> | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/60adcb0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record<string, unknown> & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const func = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, p)\n if (descriptor) Object.defineProperty(apply, p, descriptor)\n }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// <reference types=\"mdast-util-to-hast\" />\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor<Root>} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly<Element>} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial<JsxRuntimeComponents>} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly<RemarkRehypeOptions>} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array<ElementContent>} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(7672);\n"],"names":["App","pathname","useLocation","searchParams","useSearchParams","useEffect","searchResultParam","get","setTimeout","matchingElements","document","querySelectorAll","filter","element","_element$childNodes","_element$childNodes$","_element$childNodes$$","console","log","NOTATION_NODE","childNodes","nodeValue","toLowerCase","includes","length","forEach","innerHTML","sourceStr","searchInput","regex","RegExp","Array","from","Set","match","replaceAll","concat","HighlightResult","scrollIntoView","behavior","block","window","scrollTo","top","left","mounted","ReportWebUsage","catch","error","documentElement","setAttribute","loginStatus","sessionExpiration","user","setUser","useUser","_jsx","UserContext","Provider","value","children","_jsxs","className","LoginSoon","Nav","style","minHeight","innerHeight","Outlet","Footer","ChatWindow","contentWidth","paragraphWidth","maxPageWidth","sidebarWidth","sidebarExpandedWidth","sidebarCollapsedWidth","apiUrl","production","staging","local","_process$env$REACT_AP","process","navHeight","colors","tan1","tan1CssFilter","tan2","tan2CssFilter","tan3","tan3CssFilter","tan4","tan4CssFilter","tan5","tan5CssFilter","darkTan","darkTanCssFilter","darkerTan","darkerTanCssFilter","lightGreyBlue","lightGreyCssFilter","greyBlue","greyBlueCssFilter","greyRed","greyRedCssFilter","lightGreyRed","lightGreyRedCssFilter","param","statusCode","message","content","async","ChangePassword","oldPassword","newPassword","body","key","Object","entries","undefined","missingParametersError","axios","post","then","res","data","err","response","ChangePreferences","firstName","lastName","CreateUser","email","password","DeleteAccount","LoginAttempt","ResetPassword","token","otp","ValidateToken","InitiateEmailChange","newEmail","oldEmail","SendOtp","forgot","arguments","SetNewEmail","VerifyOtp","ChatBot","messages","ChatBotLikes","chatMessageId","liked","disliked","id","DeleteP5F","saveId","GetP5F","SaveP5F","saveName","userUpdateValues","forcesData","GetWebUsageSummary","timeZone","Date","getTimezoneOffset","path","Attributions","_Fragment","name","link","title","map","attribution","i","href","height","maxWidth","url","Link","to","target","src","YoutubeIcon","alt","values","Focuses","focus","Pathways","pathway","BYULogo","width","getFullYear","LoadIcon","role","LoadingPage","_ref","constants","loginSoon","setLoginSoon","useState","timeout","setInterval","now","location","reload","clearInterval","backgroundColor","onClick","Logo","require","LogoSvg","Account","SetDocumentTitle","useContext","AccountDeleter","setMessage","deleteCollapsed","setDeleteCollapsed","navigate","useNavigate","onSubmit","e","preventDefault","confirm","localStorage","removeItem","type","PasswordChanger","_ref2","changePasswordCollapsed","setChangePasswordCollapsed","newPassword1","setNewPassword1","newPassword2","setNewPassword2","passwordsMatch","password1Errors","passwordValidator","autoComplete","onChange","border","disabled","defaultChecked","ChangeEmail","_ref3","emailCollapsed","setEmailCollapsed","setNewEmail","maxLength","ChangeName","_ref4","defaultValue","EditAccount","Message","ForgotPassword","_searchParams$get","errorMessage","setErrorMessage","userEmail","setUserEmail","emailVerified","setEmailVerified","otpToken","setOtpToken","password1","setPassword1","password2","setPassword2","return_url","LoginBG","opacity","objectPosition","htmlFor","placeholder","required","OtpVerifier","showVerifier","forgotPassword","_document$getElementB","getElementById","Login","emailVerificationRequired","setEmailVerificationRequired","verified","setItem","_document$getElementB2","AdminLogin","context","useOutletContext","Loading","isAdmin","NotAdmin","UserLogin","emailSent","setEmailSent","otpError","setOtpError","setEmail","SendEmailHandler","_e$target$email$value","_e$target$email","bodyEmail","status","autoFocus","Payment","Register","RegisterBG","Support","Book","fill","xmlns","viewBox","d","House","Menu","preserveAspectRatio","fillRule","RightArrow","w","h","SearchIcon","SendArrow","Stars","ThumbsDownFilled","ThumbsDownEmpty","ThumbsUpFilled","ThumbsUpEmpty","User","ChatLoadIcon","animationDelay","ChatWindowBtns","setWindowOpen","backToTop","setBackToTop","addEventListener","scrollY","defaultStyle","transition","transitionStyles","entering","entered","exiting","exited","nodeRef","useRef","Transition","in","mountOnEnter","unmountOnExit","state","ref","BackToTop","windowOpen","AssistantMessage","_message$content","setLiked","setDisliked","ReactMarkdown","toString","isLiked","LikeHandler","isDisliked","DislikeHandler","UserMessage","_message$content2","ClearMessages","loading","sendChat","useChatBot","formRef","SendChatHandler","chatInput","chat","current","reset","bottomRef","ScrollToBottom","cursor","scrollbarWidth","index","suggestion","ChatWindowContainer","windowWidth","setWindowWidth","screenSmall","useWindowSize","resizerRef","mouseDownHandler","useCallback","startX","clientX","startWidth","mouseMoveHandler","newWidth","Math","max","mouseUpHandler","removeEventListener","resizer","overflow","bottom","right","minWidth","CommandmentContext","createContext","commandment","defaultCommandment","Title","subTitle","CommandmentContent","ImportedComponent","setImportedComponent","filePath","module","AnotherComponent","default","Commandments","page","ImportComponents","CommandmentRoot","commandmentId","useParams","Error","prevCommandment","find","c","num","nextCommandment","SidebarPage","Page","Sidebar","MasterSidebar","Content","back","next","NorthStar","P","H1","H2","Lead","ReallyMatter","CompeteWin","Moat","Capabilities","Expand","GainsAndGoals","Innovate","Levels","ConceptContext","pageConcept","defaultConcept","SubHeading","pagePathway","pageFocus","letter","slice","concepts","conceptId","concept","Concepts","FocusRoot","pathwayId","sidebarDefaultCollapsed","BreadcrumbsAndArrows","Wedges","TopBarImg","TopLineSrc","BottomBarImg","BottomLineSrc","TopHalfWedgeImg","marginTop","HalfWedgeSrc","BottomHalfWedgeImg","marginBottom","transform","FullWedgeImg","FullWedgeSrc","Wedge","WedgeImg","wedgeTopAspectRatio","wedgeBottomAspectRatio","wedgeContainerRef","wedgeContainerPos","useElementPosition","wedgeRef","wedgePos","topBarRef","bottomBarRef","distBarToWallPx","wedgeElmnt","clientOffset","clientPosition","wedgeLeft","wedgeRight","wedgeContYCenter","moveable","onMouseDown","onmouseup","onMouseUp","onmousemove","onMouseMove","tempClientOffset","tempWedgeLeft","tempWedgeRight","isValidMove","topBar","bottomBar","offsetLeft","halfBarWidth","offsetWidth","onmousedown","AdjacentMarketExpansion","RelatedFrameworks","ThreeHorizons","BlueOcean","PortersFiveForces","Updated","date","Ol","Cage","Image","CageImg","Ul","TripleA","unfinishedConcepts","ConsumptionChain","Differentiation","JobsToBeDoneConcept","StrategyCanvas","PortersGenericStrategies","EntryModes","ExperienceCurve","ExperienceCurveImg","IndirectAssault","InternationalStrategy","Tools","PortersFiveForcesCalculator","PortersFiveForcesImage","PortersGenericStrategiesImg","ScaleCurve","ScaleCurveImg","SunkCostFallacy","SunkCostImg","ThreeHorizonsImg","AAAImg","FocusContext","defaultFocus","question","FocusIntro","PathwayGraphic","FocusPathways","graphicContainer","useElementSize","elementSmall","isEven","summary","img","imgSrc","focusId","CapabilitiesMap","routes","ExistingRAndCPathway","AnalyzeFirmActivitiesPathway","ImplementChangesPathway","ClickHandler","_routes$id","stroke","strokeWidth","x","y","rx","Map","UniqueValueMap","paths","JobsToBeDone","CJobsToBeDonePathway","PainPoints","PainPointsPathway","UniqueValue","UniqueValuePathway","_paths$id","cx","cy","r","Purpose","Where","AnimationTest","animationContainerType1","replay1","setReplay1","container","cleanup","anim","lottie","animationData","renderer","loop","destroy","innerWidth","maxHeight","RawConcepts","Concept","backgroundRingRadius","conceptRingRadius","degrees","setSummaryCard","handlePointerDown","flip","foreignObjectWidth","pathwayPath","lineHeight","onPointerDown","onMouseEnter","mouseEnterHandler","summaryCircle","category","textAnchor","rotation","titleTransform","circleTransform","titleCircleRadius","circleRadius","fontWeight","dominantBaseline","CodexSvg","_Categories$summaryCa","_Categories$summaryCa2","codexHeightProp","codexWidthProp","codexSortBy","summaryCard","codexWidthFromHeight","codexWidth","codexHeight","mainBg","titleFontSize","summaryRingRadius","summaryConceptFontSize","summaryCategoryFontSize","titleRingRadius","LogoSize","viewboxMultiplier","codexViewbox","Slices","conceptCount","GetCodexCategories","Categories","GetCodexPathways","GetCodexFocuses","totalConcepts","reduce","acc","degreesPerConcept","conceptFontSize","pow","startAngle","setStartAngle","angleDiff","rotationActive","bgCircle","bbox","getBoundingClientRect","clientY","clientAngle","atan2","PI","handlePointerMove","isMobile","handlePointerUp","userSelect","lineEndpoint","radius","cos","sin","GetCoords","titleRotation","x1","y1","x2","y2","onPointerMove","j","fontSize","Key","_ref5","setCodexSortBy","setShowOnlyEssentials","showOnlyEssentials","setCodexWidth","defaultCodexWidth","sidebarCollapsed","SidebarContext","btnClass","focusClass","BootstrapMenuIcon","ZoomInMouseDownHandler","count","interval","ZoomOutMouseDownHandler","Codex","availableWidth","filteredConcepts","essential","PageHeader","VerticalAccordion","items","Accordion","defaultActiveKey","keys","item","Item","eventKey","Header","Body","CommandmentsHome","React","CanvasJS","Chart","CanvasJSChart","Component","constructor","props","super","this","options","containerProps","position","containerRef","createRef","componentDidMount","chart","render","onRef","shouldComponentUpdate","nextProps","nextState","componentDidUpdate","componentWillUnmount","createElement","CanvasJSReact","Loader","webUsageSummaryPromise","defer","DashboardLoadError","WebTrafficChart","webTraffic","animationEnabled","theme","text","axisX","valueFormatString","axisY","dataPoints","ViewsPerPageChart","viewsPerPage","labelWrap","labelAngle","labelFontSize","displayPath","_Concepts$item$path$s","_Concepts$item$path$s2","_Pathways$item$path$s","split","_Pathways$item$path$s2","_Pathways$item$path$s3","_Focuses$item$path$sp","_Focuses$item$path$sp2","word","toUpperCase","substring","join","label","sort","a","b","setHours","indexLabel","tempDate","setDate","getDate","toLocaleDateString","push","getTime","Dashboard","useLoaderData","fallback","Await","resolve","errorElement","ErrorPage","useRouteError","statusText","headerContainer","AccordionHeader","AccordionContent","FocusVerticalAccordion","FocusHorizontalAccordion","HorizontalAccordion","Container","Tab","FocusPreview","contentContainer","FocusHome","MainPanel","ToolsPanel","tools","description","paddingBlock","tool","CodexPanel","VideosPanel","paddingTop","Videos","video","rel","thumbnail","Home","QrCode","QRCode","getContribution","student","contribution","ended","started","Team","Students","TeamBG","OldroydImg","GublerImg","major","linkedin","VideosPage","PageTitleBanner","VideosBG","imgPosition","BackToTopImg","BreadcrumbLink","focusLink","normalLink","LastElement","normalLastElement","focusLastElement","Breadcrumb","links","_paths","_paths2","pageId","findIndex","leftPath","rightPath","NavArrows","ConceptAccordionItem","k","marginLeft","PathwayAccordionItem","pathways","stopPropagation","FocusAccordionItem","PageTree","flush","SidebarMainLink","Icon","GetFocusesView","pathArray","_Pathways$pagePathway","HouseIcon","BookIcon","UserNabTabTitle","usernameElement","usernameElementHeight","UserNavTab","DropdownButton","variant","Dropdown","Divider","logoutHandler","collapsed","setCollapsed","collapsedHandler","admin","navBtn","isActive","Searchbar","getItem","visibility","scale","FormCheckInput","bsPrefix","isValid","isInvalid","as","controlId","FormContext","useBootstrapPrefix","classNames","displayName","InputGroupText","InputGroup","size","hasValidation","contextValue","useMemo","InputGroupContext","assign","Text","Radio","Checkbox","PathwaysJson","ConceptsJson","CleanString","string","replace","setSearchInput","dropdownFilter","setDropdownFilter","hasSearchInput","SearchList","parent","_Object$values$find","conceptPathway","searchResults","input","searchValue","matchesSearch","matchesType","aName","bName","startsWith","textDecorationColor","option","onKeyDown","keyCode","listItem","searchResult","result","preview","GetParagraphs","component","paragraphs","_component$props$chil","GetFuncParams","isArray","child","$$typeof","Symbol","for","GetHtmlResults","paragraph","LoadingBars","AiSearchResponse","aiResponse","setAiResponse","completion","getAiResponse","DisplaySearchResult","maxPageIndex","ceil","pageIndex","setPageIndex","SetPagination","newPageIndex","parents","_","SearchInput","_localStorage$getItem","setSearchResults","showSearchHistory","setShowSearchHistory","searchParam","initialPastSearches","JSON","parse","pastSearches","setPastSearches","SubmitSearch","_searchInput","_FormData$get","FormData","trim","newPastSearches","stringify","finalSearchResults","dataSources","mainPageSearchResults","mainPagePath","source","flat","dataSource","tempSearchResults","self","t","GetSearchResults","_ref6","search","SearchPage","_localStorage$getItem2","_ref7","PathwayContext","defaultPathway","PathwayRoot","AlignmentPathway","DefineMissionPathway","DefineVisionPathway","EthicsPathway","ChosenPositionPathway","CustomerIdentificationPathway","EvaluateIndustryPathway","JobsToBeDonePathway","SegmentsPathway","CapabilitiesAdvantagePathway","CustomerAdvantagePathway","LocationAdvantagePathway","ManufacturingAdvantagePathway","NetworkAdvantagePathway","ResourceAdvantagePathway","SwitchingCostAdvantagePathway","TimingAdvantagePathway","ContainerContext","focusTab","setFocusTab","_tab","tabWidth","animationDuration","numTabs","TabContext","isFocus","tabContainerRef","containerWidth","flex","expires","timer","clearTimeout","linkText","setSidebarCollapsed","sidebarType","CollapseHandler","BootstrapMenu","overflowX","ToolTile","ToolsHome","Tool","ToolsRoot","toolId","valueToAngle","params","minValue","maxValue","endAngle","convertAngle","degree","direction","axis","angleToPosition","angle","svgSize","dX","dY","angleInRad","__assign","s","n","p","prototype","hasOwnProperty","call","apply","arcPathWithRoundedEnds","opts","innerRadius","thickness","angleType","largeArc","outerRadius","innerArcStart","startPoint","innerArcEnd","innerArc","outerArcStart","firstButt","outerArcEnd","__extends","extendStatics","setPrototypeOf","__proto__","TypeError","String","__","create","CircularSlider","_super","_this","svgRef","ev","buttons","handleMousePosition","removeMouseListeners","onControlFinished","processSelection","onTouch","touches","touch","changedTouches","_a","_b","handle1","handle2","coerceToInt","svgPoint","createSVGPoint","theta","positionToAngle","matrixTransform","getScreenCTM","inverse","angleToValue","round","abs","trackWidth","handleSize","arcColor","arcBackgroundColor","outerShadow","trackInnerRadius","handle1Angle","handle2Angle","handle1Position","handle2Position","controllable","Boolean","onTouchStart","onTouchEnd","onTouchMove","onTouchCancel","touchAction","offset","stopColor","shadowWidth","dx","dy","stdDeviation","in2","mode","defaultProps","CircularSliderWithChildren","display","flexDirection","alignItems","justifyContent","setPosition","updatePosition","currentRef","eventListener","P5fContext","setUserUpdateValues","GetSavedAnalytics","presavedAnalytics","calculatedValues","PresavedList","saveData","LoadPresavedDataHandler","DeletePresetHandler","SaveInput","ChangeMessage","newMessage","SavedAnalyticsAlerts","AnalyticsSaver","isLoggedIn","OptionButton","forceIndex","sectionIndex","questionIndex","optionIndex","sections","questions","flexBasis","borderColor","optionSelectHandler","newValues","Question","Section","section","forceSectionTotalWeight","headerHeight","sectionQuestionWeightTotal","weight","sectionScore","questionindex","Force","force","setForcePositions","headerRef","forceRef","forceScrollRef","forcePositions","newForcePositions","SectionWeightSlider","sliderValue","setSliderValue","arcColorOpacity","padStart","ForceWeightSlider","_ref8","forceCalculatedValues","weightPerc","ForcesWeights","Summary","_ref9","industryScore","score","forces","_ref10","CollapseIcon","padding","CalculatorInput","forceInView","forcePosition","active","AdvancedCalculator","setPresavedAnalytics","totalWeight","currentForce","forceWeightPerc","forceSectionWeightTotal","sectionWeightPerc","SimpleInput","_ref11","setForce","totalMainWeight","percent","step","pattern","min","parseFloat","SimpleCalculator","defaultForces","setForces","total","newForces","advancedCalculator","setAdvancedCalculator","StrategyCanvasCalculator","ThreeHorizonsCalculator","H3","H4","localMessages","defaultMessages","aiTrainingMessages","setMessages","setLoading","errorResTemplate","newMessages","finalMessages","splice","ResizeObserverBoxOptions","resizeObservers","msg","trigger","freeze","obj","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","toJSON","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","horizontalPadding","verticalPadding","horizontalBorderArea","borderLeftWidth","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentHeight","borderBoxWidth","borderBoxHeight","boxes","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","ro","activeTargets","ot","entry","targetDepth","lastReportedSize","callback","observer","_i","callbacks_1","gatherActiveObservationsAtDepth","skippedTargets","observationTargets","some","event","ErrorEvent","createEvent","initEvent","dispatchEvent","deliverResizeLoopError","queueMicroTask","toggle_1","el_1","createTextNode","MutationObserver","cb","observe","characterData","textContent","watching","observerConfig","attributes","childList","subtree","events","time","scheduled","scheduler","Scheduler","stopped","listener","schedule","run","until","elementsHaveResized","start","requestAnimationFrame","stop","disconnect","updateCount","ResizeObservation","CONTENT_BOX","tagName","isReplacedElement","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","ResizeObserverController","connect","detail","firstObservation","box","unobserve","lastObservation","indexOf","ResizeObserver","storedValue","Polyfill","_resizeObserver","getResizeObserver","ticking","allEntries","obs","triggered","add","cbs","subscribe","_callbacks$get","unsubscribe","_callbacks$get2","delete","cbIndex","createResizeObserver","storedCallback","useLatest","useLayoutEffect","didUnsubscribe","targetEl","setSize","setRoundedSize","useResizeObserver","setLoginStatus","setSessionExpiration","Token","windowSize","setWindowSize","handleResize","router","createBrowserRouter","ConceptRoot","loader","DashboardLoader","ReactDOM","RouterProvider","defaults","baseURL","headers","common","animation","v","fr","ip","op","nm","ddd","assets","layers","ind","ty","sr","ks","o","ix","l","ao","ef","np","mn","en","st","bm","td","sw","sh","sc","tt","shapes","it","hd","m","lc","lj","sk","sa","cix","markers","CorporateStrategy","Growth","IndustryStructure","Innovation","Cost","ProblemSolving","Investments","Marketing","Leadership","Marketplaces","Acquisition","Economics","Entrepreneurship","MISC","CodexCategories","categoryId","color","CodexPathways","CodexFocuses","FoundationInPurpose","OperatingArena","CustomerUnmetNeeds","UnifiedBusinessModel","SafeguardsAgainstImitation","DefineValuesPathway","focusesList","FocusData","pathwaysList","PathwaysData","conceptsList","ConceptsData","GetConceptsView","ConceptsView","GetPathwaysView","PathwaysView","FocusesView","func","str","end","PasswordValidator","errors","pa","db","base","Ya","Q","setMilliseconds","getMilliseconds","setSeconds","getSeconds","setMinutes","getMinutes","getHours","setMonth","getMonth","setFullYear","da","Ga","charAt","za","roundRect","ra","E","B","fillStyle","strokeStyle","lineWidth","beginPath","moveTo","lineTo","quadraticCurveTo","closePath","Sa","T","eb","Number","floor","Da","fb","wa","fSDec","ja","_fTWm","Za","$a","isNaN","appendChild","Z","margin","whiteSpace","fontFamily","H","solid","shortDash","shortDot","shortDashDot","shortDashDotDot","dot","dash","dashDot","longDash","longDashDot","longDashDotDot","V","ia","gb","passive","capture","attachEvent","returnValue","cancelBubble","ab","ma","getImageData","na","Ma","$","bb","getContext","willReadFrequently","Na","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","Ta","ib","jb","qa","creditHref","creditText","updateOption","_creditLink","outline","textDecoration","renderCount","parentElement","_canvasJSContainer","removeChild","va","Ha","canvasCount","G_vmlCanvasManager","initElement","ta","getAttribute","toolbar","itemBackgroundColor","fontColor","WebkitUserSelect","MozUserSelect","msUserSelect","verticalAlign","kb","image","_cultureInfo","pointerEvents","La","xa","Ua","K","_defaultsKey","_themeOptionsKey","_index","_eventListeners","predefinedThemes","light1","themeOptions","_isPlaceholder","setOptions","Ea","_padding","_x1","_y1","_x2","_y2","_rightOccupied","_leftOccupied","_bottomOccupied","_topOccupied","ka","ctx","_isDirty","_wrappedText","_initialize","Va","canvas","optionsName","Aa","subtitles","horizontalAlign","dockInsidePlotArea","getAutoFontSize","bounds","Ia","isOptionsInArray","Wa","pool","Ja","Ka","I","ca","O","W","X","zoomEnabled","zoomType","dataPointWidth","dataPointMinWidth","dataPointMaxWidth","colorSet","culture","interactivityEnabled","exportEnabled","exportFileName","rangeChanging","rangeChanged","publicProperties","toolTip","legend","axisX2","axisY2","selectedColorSet","fontStyle","borderThickness","cornerRadius","wrap","Subtitle","Toolbar","itemBackgroundColorOnHover","buttonBorderColor","buttonBorderThickness","fontColorOnHover","Legend","itemmouseover","itemmouseout","itemmousemove","itemclick","reversed","markerMargin","itemMaxWidth","itemWidth","itemWrap","itemTextFormatter","ToolTip","enabled","shared","contentFormatter","updated","hidden","Axis","minimum","maximum","viewportMinimum","viewportMaximum","intervalType","logarithmic","logarithmBase","titleFontColor","titleFontFamily","titleFontWeight","titleFontStyle","titleWrap","titleMaxWidth","titleBackgroundColor","titleBorderColor","titleBorderThickness","titleCornerRadius","labelFontFamily","labelFontColor","labelFontWeight","labelFontStyle","labelAutoFit","labelMaxWidth","labelFormatter","labelBackgroundColor","labelBorderColor","labelBorderThickness","labelCornerRadius","labelPlacement","labelTextAlign","prefix","suffix","includeZero","tickLength","tickColor","tickThickness","tickPlacement","lineColor","lineThickness","lineDashType","gridColor","gridThickness","gridDashType","interlacedColor","stripLines","scaleBreaks","crosshair","StripLine","startValue","endValue","labelAlign","showOnTop","ScaleBreaks","autoCalculate","collapsibleThreshold","maxNumberOfAutoBreaks","spacing","fillOpacity","customBreaks","autoBreaks","Break","Crosshair","snapToDataPoint","DataSeries","bevelEnabled","highlightEnabled","indexLabelPlacement","indexLabelOrientation","indexLabelTextAlign","indexLabelFontColor","indexLabelFontSize","indexLabelFontStyle","indexLabelFontFamily","indexLabelFontWeight","indexLabelBackgroundColor","indexLabelLineColor","indexLabelLineThickness","indexLabelLineDashType","indexLabelMaxWidth","indexLabelWrap","indexLabelFormatter","connectNullData","nullDataLineDashType","risingColor","fallingColor","neckHeight","neckWidth","valueRepresents","linkedDataSeriesIndex","whiskerThickness","whiskerDashType","whiskerColor","whiskerLength","stemThickness","stemColor","stemDashType","upperBoxColor","lowerBoxColor","xValueType","axisXType","axisYType","axisXIndex","axisYIndex","xValueFormatString","yValueFormatString","zValueFormatString","percentFormatString","showInLegend","legendMarkerType","legendMarkerColor","legendText","legendMarkerBorderColor","legendMarkerBorderThickness","markerType","markerColor","markerSize","markerBorderColor","markerBorderThickness","mouseover","mouseout","mousemove","click","toolTipContent","visible","TextBlock","textAlign","textBaseline","CultureInfo","decimalSeparator","digitGroupSeparator","zoomText","panText","resetText","menuText","saveJPGText","savePNGText","printText","days","shortDays","months","shortMonths","Fa","Ba","colorSet1","colorSet2","colorSet3","Xa","ea","Oa","light2","dark1","dark2","theme1","theme2","theme3","U","numberDuration","yearDuration","monthDuration","weekDuration","dayDuration","hourDuration","minuteDuration","secondDuration","millisecondDuration","dayOfWeekFromInt","fromCharCode","charCodeAt","pro","sCH","defineProperty","lb","clearRect","fillRect","ya","mb","Ca","SyntaxError","N","Y","f","parseInt","pop","fa","isFinite","LN10","nb","toFixed","shift","unshift","Pa","offsetX","offsetY","layerX","layerY","pageX","pageY","offsetTop","ba","save","globalAlpha","rect","restore","createLinearGradient","addColorStop","pan","zoom","menu","createUserOptions","stockChart","addTo","remove","trackChanges","sessionVariables","isBeingTracked","_oldOptions","hasOptionChanged","eventHandler","removeAllEventListeners","registerSpace","unRegisterSpace","getFreeSpace","topPadding","rightPadding","bottomPadding","leftPadding","font","measureText","translate","_lineHeight","_getFontString","rotate","lines","fillText","setText","_wrapText","_getLineWithWidth","substr","frontSize","setLayout","plotArea","layoutManager","_menuButton","_textBlock","release","Qa","addTheme","addColorSet","addCultureInfo","formatNumber","formatDate","exports","panel","_containerId","_objectsInitialized","overlaidCanvasCtx","_indexLabels","_panTimerId","_lastTouchEventType","_lastTouchData","isAnimating","disableToolTip","animatedRender","canvasPool","allDOMEventHandlers","panEnabled","_defaultCursor","_dataInRenderedOrder","_preRenderCanvas","_preRenderCtx","overlaidCanvas","webkitTapHighlightColor","_eventManager","windowResizeHandler","_updateSize","_toolBar","_mouseEventHandler","_dropdownMenu","msPointerEnabled","_touchEventHandler","J","trimLength","q","setLineDash","dashType","ghostCtx","orientation","dataSeries","horizontalSpacing","_ctx","noDataPointsInPlotArea","objectMap","objectType","dataSeriesIndex","dataPointEOs","dataPointIds","plotUnit","axisPlacement","getDefaultAxisPlacement","intervalStartPosition","labels","_stripLineLabels","_ticks","_labels","dataInfo","viewPortMin","viewPortMax","minDiff","_position","lineCoordinates","lastObjectId","_titleTextBlock","newViewportMinimum","newViewportMaximum","_appliedBreaks","_thicknessType","sqrt","currentDataPointIndex","currentSeriesIndex","_prevY","_prevX","NaN","containerTransitionDuration","mozContainerTransition","getContainerTransition","rectangularRegionEventSubscriptions","previousDataPointEventObject","ghostCanvas","mouseoveredObjectMaps","animations","animationRequestId","_animator","cancelAllAnimations","detachEvent","hasChildNodes","lastChild","_breaksCanvas","_resetButton","_zoomButton","_updateOptions","WebkitTransition","WebkitFilter","hide","resetOverlayedCanvas","_rangeEventParameter","charts","_dispatchRangeEvent","syncCharts","_dropDownCloseTime","blur","zIndex","MozUserSeelct","boxShadow","print","exportChart","format","fileName","hb","isNavigator","_axes","funnelPyramidClickHandler","pieDoughnutClickHandler","clearCanvas","_events","plotInfo","plotTypes","_supportedChartTypes","_colorSet","_linkedSeries","_plotAreaElements","_processData","_breaksCanvasCtx","renderElements","preparePlotArea","drawImage","miterLimit","globalCompositeOperation","plotUnits","targetCanvas","targetCanvasCtx","renderLine","renderStepLine","renderSpline","renderColumn","renderBar","renderArea","renderStepArea","renderSplineArea","renderStackedColumn","renderStackedColumn100","renderStackedBar","renderStackedBar100","renderStackedArea","renderStackedArea100","renderBubble","renderScatter","renderPie","renderFunnel","renderCandlestick","renderRangeColumn","renderError","renderRangeBar","renderRangeArea","renderRangeSplineArea","renderWaterfall","renderBoxAndWhisker","dataSeriesIndexes","dest","animationCallback","fadeInAnimation","easingFunction","easing","easeInQuad","animationBase","startTimePercent","renderIndexLabels","animate","g","createMask","attachPlotAreaEventHandlers","_updateToolTip","maskCanvas","maskCtx","mousedown","_plotAreaMouseDown","mouseup","_plotAreaMouseUp","_plotAreaMouseMove","categoriseDataSeries","totalDataSeries","previousDataSeriesCount","plotType","yTotals","yAbsTotals","assignIdToDataPoints","_processMultiseriesPlotUnit","_processStackedPlotUnit","_processStacked100PlotUnit","_processMultiYPlotUnit","_processSpecificPlotUnit","calculateAutoBreaks","valueType","z","u","cumulativeY","dataPointYPositiveSums","dataPointYNegativeSums","dataPointYSums","isCumulativeSum","cumulativeSumYStartValue","cumulativeSum","isIntermediateSum","_dataRanges","diff","renderCrosshairs","_hidden","showCrosshair","_updatedValue","getDataPointAtXY","dataPoint","distance","getObjectAtXY","dataPointIndex","scroll","isDrag","initMouseEvent","screenX","screenY","preventManipulation","cancelable","capturedEventParam","releaseCapture","srcElement","which","button","_ignoreNextEvent","setCapture","mouseEventHandler","dragStartPoint","_zoomPanToSelectedRegion","_axisXMin","_axisXMax","renderCrosshair","renderLabel","validateRegion","axesWithValidRange","axesRanges","setViewPortRange","val1","val2","convertPixelToValue","getApparentDifference","chartType","Ra","getPercentAndTotal","indexKeyword","C","replaceKeywordsWithValue","A","point","axisSwapped","clip","D","convertValueToPixel","getMarkerProperties","drawMarkers","xClipAnimation","linear","newStrokeStyle","newLineDashArray","bezierCurveTo","range","yScaleAnimation","easeOutQuart","xScaleAnimation","L","S","ga","aa","dataPointIndexes","ha","oa","la","F","drawMarker","x3","y3","x4","y4","M","ua","R","y5","isXYSwapped","stemProperties","whiskerProperties","arc","midAngle","exploded","center","highlightObjects","percentInnerRadius","lineJoin","indexLabelText","indexLabelTextBlock","hemisphere","acos","indexLabelAngle","explodeOnClick","x5","x6","y6","globalAplha","G","textBlock","isDirty","fNg","funnelSection","requestAnimFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","cancelRequestAnimFrame","cancelAnimationFrame","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","msCancelRequestAnimationFrame","toDataURL","download","Blob","atob","ArrayBuffer","Uint8Array","buffer","msSaveBlob","dataset","downloadurl","URL","createObjectURL","fireEvent","open","write","close","contentWindow","contentDocument","autoValueFormatString","errorMarkerColor","getDefaultLegendMarker","reverse","legendItemIndex","rows","getDataPointAtX","getXValueAt","createExtraLabelsForLog","logLabelValues","noTicks","getNiceNumber","createLabels","firstBreakIndex","equidistantInterval","effectiveHeight","getLabelStartPoint","breaksLabelType","labelMaxHeight","stripLineLabelMaxHeight","stripLine","createLabelsAndCalculateWidth","labelEffectiveWidth","effectiveWidth","stripLineLabelEffectiveWidth","createLabelsAndCalculateHeight","labelEffectiveHeight","stripLineLabelEffectiveHeight","calculateAxisParameters","viewPortMinimum","lastBreakIndex","calculateValueToPixelConversionParameters","calculateBreaksSizeInValues","conversionParameters","lnLogarithmBase","pixelPerUnit","calculateStripLinesThicknessInValues","calculateBreaksInPixels","alignVerticalAxes","renderLabelsTicksAndTitle","renderStripLinesOfThicknessType","renderInterlacedColors","renderGrid","renderBreaksBackground","renderAxisLine","startPixel","endPixel","getPixelCoordinatesOnAxis","reference","calculateLogarithmicAxisParameters","generateValueFormatString","getNiceExponent","getDay","showAt","clearedOverlayedCanvas","_crosshairValue","_entries","yPercent","_label","valueOf","textShadow","background","textIndent","borderRadius","innerText","contentDiv","firstChild","_lastUpdated","_updatedEventParameters","getToolTipInnerHTML","isToolTipDefinedInData","getElementsByTagName","borderRightColor","borderLeftColor","borderWidth","fixMozTransitionDelay","disableAnimation","enableAnimation","MozTransition","positionLeft","positionBottom","xValue","MsTransition","show","showAtIndex","showAtX","mouseX","eventObjects","getNewObjectTrackingId","eventParameter","eventContext","userContext","startTime","duration","onComplete","easeOutQuad","easeInQuart","version","context_","namespaces","g_vml_","g_o_","styleSheets","ex_canvas_","createStyleSheet","owningElement","cssText","propertyName","lineCap","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","arcScaleX_","arcScaleY_","lineScale_","alpha","m_","mStack_","aStack_","currentPath_","cloneNode","element_","cp1x","cp1y","cp2x","cp2y","currentX_","currentY_","type_","x1_","y1_","x0_","y0_","r0_","r1_","colors_","src_","nodeType","readyState","repetition_","width_","height_","code","init","init_","specified","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","grey","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","butt","textMeasureEl_","removeNode","xStart","yStart","xEnd","yEnd","strokeRect","createRadialGradient","runtimeStyle","insertAdjacentHTML","setTransform","drawText_","fontVariant","family","currentStyle","strokeText","arcTo","createPattern","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","CanvasRenderingContext2D","CanvasGradient","CanvasPattern","DOMException","Action","PopStateEventType","createBrowserHistory","getUrlBasedHistory","globalHistory","hash","createLocation","usr","createPath","invariant","warning","cond","warn","getHistoryState","idx","_extends","parsePath","random","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","history","action","Pop","getIndex","handlePop","nextIndex","delta","createURL","origin","replaceState","listen","fn","encodeLocation","Push","historyState","pushState","Replace","go","ResultType","immutableRouteKeys","convertRoutesToDataRoutes","mapRouteProperties","parentPath","manifest","route","treePath","isIndexRoute","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","stripBasename","branches","flattenRoutes","siblings","every","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","parentsMeta","flattenRoute","relativePath","caseSensitive","joinPaths","computeScore","_route$path","explodeOptionalSegments","segments","first","rest","isOptional","endsWith","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","compiledParams","regexpSource","paramName","compilePath","captureGroups","memo","splatValue","decodeURIComponent","startIndex","nextChar","getInvalidPathError","char","field","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","AbortedDeferredError","DeferredData","responseInit","reject","pendingKeysSet","subscribers","deferredKeys","abortPromise","Promise","controller","AbortController","onAbort","unlistenAbortSignal","signal","trackPromise","done","promise","race","onSettle","aborted","undefinedError","emit","settledKey","subscriber","cancel","abort","resolveData","unwrappedData","unwrapTrackedPromise","pendingKeys","_tracked","isTrackedPromise","_error","_data","ErrorResponseImpl","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","json","IDLE_FETCHER","IDLE_BLOCKER","proceed","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","hasErrorBoundary","TRANSITIONS_STORAGE_KEY","createRouter","routerWindow","isBrowser","isServer","detectErrorBoundary","inFlightDataRoutes","initialized","dataRoutes","dataStrategyImpl","unstable_dataStrategy","defaultDataStrategy","future","v7_fetcherPersist","v7_normalizeFormMethod","v7_partialHydration","v7_prependBasename","unstable_skipActionErrorRevalidation","unlistenHistory","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","hasLazyRoutes","lazy","hasLoaders","loaderData","isRouteInitialized","hydrate","pendingNavigationController","historyAction","navigation","restoreScrollPosition","preventScrollReset","revalidation","actionData","fetchers","blockers","pendingAction","pendingPreventScrollReset","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","ignoreNextHistoryUpdate","updateState","newState","completedFetchers","deletedFetchersKeys","fetcher","unstable_viewTransitionOpts","viewTransitionOpts","unstable_flushSync","flushSync","deleteFetcher","completeNavigation","_temp","_location$state","_location$state2","isActionReload","isMutationMethod","_isRedirect","mergeLoaderData","priorPaths","currentLocation","nextLocation","toPaths","getSavedScrollPosition","startNavigation","startUninterruptedRevalidation","getScrollKey","saveScrollPosition","enableViewTransition","routesToUse","loadingNavigation","overrideNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","submission","pendingActionResult","request","createClientSideRequest","pendingError","findNearestBoundary","actionResult","interruptActiveLoads","getSubmittingNavigation","actionMatch","getTargetMatch","callDataStrategy","shortCircuited","method","routeId","isRedirectResult","normalizeRedirectLocation","startRedirectNavigation","isDeferredResult","isErrorResult","boundaryMatch","handleAction","getLoadingNavigation","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","matchesToLoad","revalidatingFetchers","getMatchesToLoad","updatedFetchers","markFetchRedirectsDone","getActionDataForCommit","rf","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","handleLoaders","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","results","callDataStrategyImpl","all","isRedirectHandlerResult","normalizeRelativeRoutingRedirectResponse","convertHandlerResultToDataResult","currentMatches","fetchersToLoad","resolveDeferredResults","updateFetcherState","setFetcherError","getFetcher","markFetchersDone","doneFetcher","getDoneFetcher","doneKeys","landedId","yeetedKeys","deleteBlocker","updateBlocker","newBlocker","blocker","shouldBlockNavigation","blockerKey","blockerFunction","predicate","cancelledRouteIds","dfd","handle","convertRouteMatchToUiMatch","initialize","_window","transitions","sessionPositions","sessionStorage","restoreAppliedTransitions","_saveAppliedTransitions","persistAppliedTransitions","enableScrollRestoration","positions","getPosition","getKey","normalizedPath","normalizeTo","fromRouteId","relative","normalizeNavigateOptions","userReplace","unstable_viewTransition","fetch","requestMatches","existingFetcher","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","actionResults","revalidationRequest","loadId","loadFetcher","staleKey","handleFetcherAction","resolveDeferredData","handleFetcherLoader","revalidate","dispose","clear","getBlocker","_internalFetchControllers","_internalActiveDeferreds","_internalSetRoutes","newRoutes","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","isSubmissionNavigation","isValidMethod","getInvalidBodyError","rawFormMethod","stripHashFromPath","URLSearchParams","convertFormDataToSearchParams","convertSearchParamsToFormData","append","getLoaderMatchesUntilBoundary","boundaryId","boundaryMatches","isInitialLoad","skipActionErrorRevalidation","currentUrl","nextUrl","actionStatus","shouldSkipRevalidation","navigationMatches","currentLoaderData","currentMatch","isNew","isMissingData","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","currentParams","nextParams","unstable_actionStatus","defaultShouldRevalidate","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","currentPath","loaderMatch","arg","routeChoice","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","requestContext","routeIdsToLoad","loadedMatches","shouldLoad","handlerOverride","staticContext","onReject","runHandler","handler","handlerPromise","actualHandler","handlerError","callLoaderOrAction","handlerResult","isResponse","contentType","deferred","isDeferredData","_result$init","_result$init2","Headers","trimmedMatches","normalizedLocation","protocol","isSameBasename","Request","processRouteLoaderData","skipLoaderErrorBubbling","foundError","loaderHeaders","newLoaderData","mergedLoaderData","_temp5","signals","isRevalidatingLoader","unwrap","getAll","useCallbackRef","useEventCallback","useCommittedRef","isReactNative","product","toFnRef","refA","refB","mergeRefs","useMounted","isMounted","_excluded","useButtonProps","tabIndex","handleClick","isTrivialHref","Button","asProp","excluded","sourceKeys","_objectWithoutPropertiesLoose","buttonProps","iter","tar","dequal","foo","bar","ctor","len","tmp","DataView","byteLength","getInt8","isView","getBasePlacement","placement","getWindow","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","getLayoutRect","contains","rootNode","getRootNode","isSameNode","host","getNodeName","nodeName","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","auto","basePlacements","clippingParents","viewport","popper","variationPlacements","placements","modifierPhases","phase","_state$modifiersData$","arrowElement","elements","arrow","popperOffsets","modifiersData","basePlacement","rects","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","effect","_options$element","querySelector","requires","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","pageXOffset","scrollTop","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","strategy","html","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","order","modifiers","visited","modifier","dep","depModifier","debounce","pending","DEFAULT_OPTIONS","areValidElements","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","styles","effectCleanupFns","isDestroyed","instance","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","merged","existing","mergeByName","_ref$options","cleanupFn","noopFn","update","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$scroll","_options$resize","resize","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","_loop","fittingPlacement","disabledApplyStylesModifier","ariaDescribedByModifier","ids","removeAttribute","_popper$getAttribute","EMPTY_MODIFIERS","referenceElement","popperElement","config","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","popperState","setState","useSafeState","updateModifier","nextModifiers","compareDocumentPosition","noop","getRefTarget","InitialTriggerEvents","pointerup","onClickOutside","clickTrigger","preventMouseClickOutsideRef","waitingForTrigger","handleMouseCapture","currentTarget","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","isLeftClickEvent","handleInitialMouse","handleMouse","_ownerWindow$event","_ownerWindow$parent","doc","ownerWindow","currentEvent","removeInitialTriggerListener","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","el","toModifierArray","mergeOptionsWithPopperConfig","enableEvents","fixed","containerPadding","popperConfig","_modifiers$eventListe","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","toModifierMap","eventListeners","useDropdownMenu","DropdownContext","attachArrowRef","hasShownRef","rootCloseEvent","placementOverride","enableEventListeners","usePopper","shouldUsePopper","setMenu","menuElement","toggleElement","menuProps","metadata","hasShown","toggle","arrowProps","useClickOutside","DropdownMenu","$b5e257d569688ac6$var$defaultContext","$b5e257d569688ac6$var$SSRContext","$73SJx$react","$b5e257d569688ac6$var$IsSSRContext","$b5e257d569688ac6$var$canUseDOM","$b5e257d569688ac6$var$componentIds","$b5e257d569688ac6$var$useCounter","isDisabled","$73SJx$useContext","$73SJx$useRef","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","currentOwner","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","prevComponentValue","memoizedState","$b5e257d569688ac6$export$619500959fc48b26","defaultId","useId","didSSR","$73SJx$useState","$b5e257d569688ac6$var$subscribe","$b5e257d569688ac6$var$getSnapshot","$b5e257d569688ac6$var$getServerSnapshot","counter","onStoreChange","isRoleMenu","_el$getAttribute","useDropdownToggle","useSSRSafeId","setToggle","DropdownToggle","optionsSupported","onceSupported","once","canUseDOM","eventName","wrappedHandler","__once","onceHandler","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","arr","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","enumerable","configurable","newValue","writable","getProperty","extend","copy","copyIsArray","clone","deep","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","lineno","column","lastIndexOf","line","Position","whitespace","errorsList","reason","filename","silent","re","exec","comments","rules","comment","pos","declaration","prop","val","ret","property","decl","decls","declarations","condition","argIndex","framesToPop","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","object","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","iterator","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","blob","createWorker","completeLayers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","completeText","comp","findComp","__used","checkVersion","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","checkChars","chars","charData","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","send","completeData","payload","onError","createProcess","loadAnimation","processId","loadData","completeAnimation","ImagePreloader","proxyImage","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","_imageLoaded","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","BaseEvent","triggerEvent","_cbs","markerParser","parsePayloadLines","keysCount","_markers","_marker","markerData","tm","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","wrapper","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","div","unfreeze","getRegisteredAnimations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","newElement","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","nextKeyTime","keyTime","ti","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","quat","qx","qy","qz","qw","heading","attitude","asin","bank","c1","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","_rnd","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","sz","tx","tz","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","define","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","ry","rz","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","boundingBox","splitData","boxIntersect","intersectsImpl","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","angleOut","tangentAngle","angleIn","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","mid","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","fStyle","fWeight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","group","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","newPosPerc","derivative","denom","tcusp","square","root","p10","p11","p20","p21","other","shapeSegmentInverted","pointsType","ml","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","letterSpacing","familyArray","enabledFamilies","trimFontOptions","createHelper","def","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","getComputedTextLength","getCodePoint","codePoint","second","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","matteMasks","gg","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","of","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","descElement","descId","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","hideElement","showElement","prepareLayer","bufferCtx","getTransform","exitLayer","forceRealStack","transformHelper","dashResetter","preTransforms","co","wi","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","coOp","grd","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","setup","perspectiveStyle","perspectiveElem","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","randomBytes","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","createGroupInterface","groupInterface","_propertyGroup","createValueInterface","numProperties","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","contentsInterfaceFactory","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","skewAxis","outerRoundness","innerRoundness","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","QR8bitByte","MODE_8BIT_BYTE","getLength","put","QRBitBuffer","bufIndex","putBit","getLengthInBits","bit","QRPolynomial","gexp","glog","ratio","BitByte","RSBlock","BitBuffer","util","Polynomial","typeNumber","errorCorrectLevel","modules","moduleCount","dataCache","dataList","proto","addData","isDark","row","getModuleCount","make","rsBlocks","getRSBlocks","totalDataCount","dataCount","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","minLostPoint","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","qr_mc","createEmptyMovieClip","beginFill","endFill","getPatternPosition","bits","getBCHTypeNumber","getBCHTypeInfo","inc","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","rsPoly","getErrorCorrectPolynomial","modPoly","modIndex","totalCodeCount","ECL","QRRSBlock","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","QRMath","LOG_TABLE","EXP_TABLE","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","Mode","QRMaskPattern","QRUtil","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","digit","errorCorrectLength","qrCode","sameCount","darkCount","psuedoElement","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","getPropertyValue","isTransform","removeProperty","emulateTransitionEnd","called","bubbles","transitionEnd","parseDuration","removeEmulate","transitionEndListener","delay","funcs","_len2","_key2","onEnter","onEntering","onEntered","onExit","onExiting","onExited","addEndListener","childRef","mergedRef","useMergedRefs","attachRef","componentOrElement","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleExited","handleAddEndListener","innerProps","MARGINS","getDefaultDimensionValue","dimension","margins","collapseStyles","EXITED","EXITING","ENTERING","ENTERED","inProp","appear","getDimensionValue","computedDimension","createChainedFunction","TransitionWrapper","isAccordionItemSelected","activeEventKey","AccordionCollapse","AccordionContext","Collapse","only","AccordionBody","AccordionItemContext","AccordionButton","accordionOnClick","onSelect","alwaysOpen","eventKeyPassed","useAccordionButton","AccordionItem","activeKey","controlledProps","useUncontrolled","toArray","Function","qsa","selector","useUncontrolledProp","propValue","wasPropRef","stateValue","isProp","wasProp","makeEventKey","NavContext","ATTRIBUTE_PREFIX","dataAttr","useDropdownItem","onSelectCtx","SelectableContext","navContext","isPropagationStopped","DropdownItem","dropdownItemProps","Context","useRefWithUpdate","dispatch","useReducer","useForceUpdate","defaultShow","rawShow","onToggle","rawOnToggle","itemSelector","focusFirstItemOnShow","menuRef","toggleRef","lastShow","usePrevious","lastSourceEvent","focusInDropdown","nextShow","originalEvent","handleSelect","activeElement","focusToggle","maybeFocusFirst","focusType","getNextFocusedChild","eventTarget","useEventListener","_menuRef$current","_toggleRef$current","fromMenu","fromToggle","_menuRef$current2","Toggle","DropdownDivider","DropdownHeader","Anchor","handleKeyDown","DropdownItemText","drop","align","navbar","_4","autoClose","isInputGroup","isRTL","useIsRTL","handleToggle","_meta$originalEvent","_meta$originalEvent$t","classList","alignEnd","getDropdownMenuPlacement","directionClasses","down","up","BaseDropdown","ItemText","alignDirection","alignPropType","md","lg","xl","xxl","menuRole","renderMenuOnMount","menuVariant","childBsPrefix","renderOnMount","dropDirection","showProps","isNavbar","NavbarContext","contextAlign","alignClasses","brkPoint","useWrappedRefWithWarning","useIsomorphicEffect","dropdownContext","toggleProps","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","prefixes","breakpoints","minBreakpoint","Consumer","defaultPrefix","ex","React__default","UAParser","ClientUAInstance","getBrowser","cpu","getCPU","device","getDevice","getEngine","getOS","getUA","setUa","userAgentString","setUA","parseUserAgent","UserAgentInstance","UA","setUserAgent","UAHelper","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_defineProperties","descriptor","_defineProperty","_getPrototypeOf","getPrototypeOf","_setPrototypeOf","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","ReferenceError","_slicedToArray","_arrayWithHoles","_e","_arr","_n","_d","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","InitialDeviceTypes","isTablet","isSmartTV","isConsole","isWearable","setDefaults","getNavigatorInstance","isIOS13Check","nav","platform","maxTouchPoints","MSStream","mobilePayload","getOwnPropertyDescriptors","_objectSpread2","vendor","model","osVersion","isMobileType","isTabletType","isMobileAndTabletType","isSmartTVType","isBrowserType","isWearableType","isConsoleType","isEmbeddedType","getMobileVendor","getMobileModel","getDeviceType","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","isEmbedded","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isOpera","isIE","osName","fullBrowserVersion","browserVersion","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","useDeviceData","hookUserAgent","encodeURIComponent","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","xlinkHref","prepareStackTrace","Reflect","construct","tag","_context","_payload","_init","_valueTracker","setValue","stopTracking","checked","_wrapperState","initialChecked","initialValue","controlled","selected","defaultSelected","dangerouslySetInnerHTML","namespaceURI","MSApp","execUnsafeLocalFunction","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","tb","menuitem","area","br","embed","hr","keygen","track","wbr","ub","vb","wb","xb","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","jd","kd","ld","nd","od","pd","qd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","persist","isPersistent","wd","xd","yd","sd","eventPhase","timeStamp","isTrusted","ud","vd","Ad","getModifierState","zd","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","month","tel","week","oe","listeners","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Je","Ke","nextSibling","Le","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","pf","qf","sf","tf","uf","parentWindow","vf","wf","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","bh","eventTime","lane","dh","eh","gh","hh","ih","jh","refs","kh","nh","_reactInternals","enqueueSetState","mh","enqueueReplaceState","enqueueForceUpdate","oh","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","hi","ii","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useImperativeHandle","useInsertionEffect","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","qj","rj","tj","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onclick","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","Yj","Zj","ak","onCommitFiberUnmount","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","_propTypes2","_interopRequireDefault","_react","_react2","__esModule","bgColor","bgD","fgColor","fgD","QRCodeSvg","forwardRef","_QRCode2","_ErrorCorrectLevel2","_QRCodeSvg2","qrcode","cells","rowIndex","cell","cellIndex","createSearchParams","__reactRouterVersion","parseHydrationData","UNSAFE_mapRouteProperties","__staticRouterHydrationData","deserializeErrors","serialized","__type","UNSAFE_ErrorResponseImpl","__subType","ErrorConstructor","ViewTransitionContext","isTransitioning","FetchersContext","startTransitionImpl","flushSyncImpl","flushSyncSafe","Deferred","fallbackElement","setStateImpl","pendingState","setPendingState","vtContext","setVtContext","renderDfd","setRenderDfd","setTransition","interruption","setInterruption","fetcherData","v7_startTransition","optInStartTransition","startTransitionSafe","isViewTransitionUnavailable","startViewTransition","skipTransition","finished","finally","renderPromise","dataRouterContext","static","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","Router","navigationType","DataRoutes","UNSAFE_useRoutesImpl","absoluteHref","reloadDocument","UNSAFE_NavigationContext","isExternal","targetUrl","useHref","internalOnClick","replaceProp","useResolvedPath","shouldProcessLinkClick","useLinkClickHandler","DataRouterHook","DataRouterStateHook","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","locationSearch","defaultSearchParams","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","DataRouterContext","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","UNSAFE_invariant","joinedPathname","useIsomorphicLayoutEffect","useDataRouterContext","UseNavigateStable","useCurrentRouteId","activeRef","useNavigateStable","routePathnamesJson","UNSAFE_getResolveToMatches","useNavigateUnstable","OutletContext","routeMatch","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","DefaultErrorComponent","preStyles","defaultErrorElement","RenderErrorBoundary","errorInfo","routeContext","RenderedRoute","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState2","_dataRouterState","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","needsToRunLoader","reduceRight","shouldRenderHydrateFallback","alreadyWarned","getChildren","hookName","useDataRouterState","useRouteContext","thisRoute","UseLoaderData","_state$errors","UseRouteError","useOutlet","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","AwaitErrorBoundary","ResolveAwait","AwaitRenderStatus","neverSettledPromise","success","useAsyncValue","toRender","updates","UNMOUNTED","_React$Component","subClass","superClass","initialStatus","isMounting","enter","appearStatus","nextCallback","prevState","_proto","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","forceReflow","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","setNextCallback","_this4","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","TransitionGroupContext","__self","__source","Fragment","jsx","jsxs","escape","_status","_result","Children","Profiler","PureComponent","StrictMode","Suspense","cloneElement","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","isValidElement","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","inline_style_parser_1","__importDefault","styleObject","hasIterator","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","enumerize","enums","str1","str2","lowerize","rgxMapper","arrays","strMapper","windowsVersionMap","ME","XP","Vista","RT","regexes","EDGE","extensions","getResult","_navigator","_ua","_uach","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","_cpu","_device","mobile","_engine","_os","CPU","DEVICE","ENGINE","OS","jQuery","Zepto","parser","defaultKey","_toPropertyKey","hint","prim","toPrimitive","_toPrimitive","fieldName","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","_useState","__reactInternalSnapshotFlag","__reactInternalSnapshot","__suppressDeprecationWarning","webpackAsyncContext","req","__webpack_require__","webpackContext","webpackContextResolve","classes","appendClass","parseValue","newClass","thisArg","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","toStringTag","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","getOwnPropertyNames","findKey","_global","globalThis","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","isArrayBufferView","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","captureStackTrace","utils","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","visitor","defaultVisitor","useBlob","convertValue","toISOString","Buffer","isFlatArray","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","protocols","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","parseHeaders","tokens","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","domain","secure","cookie","toGMTString","read","buildFullPath","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","hostname","port","requestURL","samplesCount","bytes","timestamps","firstSampleTS","head","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","lengthComputable","progressBytes","progress","estimated","knownAdapters","http","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","auth","username","unescape","btoa","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","paramsSerializer","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","parseProtocol","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","formatMessage","opt","desc","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","Cancel","promises","spread","isAxiosError","formToJSON","getAdapter","nameRe","nameReJsx","emptyOptions","empty","Schema","normal","space","definitions","Info","attribute","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","defined","powers","increment","types","DefinedInfo","mark","own","definition","info","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","autoCapitalize","autoPlay","blocking","charSet","cite","cols","colSpan","controls","controlsList","coords","dateTime","decoding","dirName","draggable","encType","enterKeyHint","fetchPriority","formNoValidate","formTarget","high","hrefLang","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","isMap","itemId","itemProp","itemRef","itemScope","itemType","lang","language","low","media","minLength","muted","nonce","noModule","noValidate","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseLeave","onMouseOut","onMouseOver","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSlotChange","onStalled","onStorage","onSuspend","onTimeUpdate","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","ping","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rowSpan","sandbox","scoped","seamless","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","typeMustMatch","useMap","writingSuggestions","aLink","archive","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","prompt","rev","rightMargin","scheme","scrolling","standby","topMargin","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","enableBackground","floodColor","fontSizeAdjust","fontStretch","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","renderingIntent","shapeRendering","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textRendering","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","xHeight","playbackOrder","timelineBegin","about","accumulate","alphabetic","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","begin","bias","calcMode","clipPathUnits","contentScriptType","contentStyleType","defaultAction","descent","diffuseConstant","dur","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusHighlight","fx","fy","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","intercept","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","operator","orient","overlay","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","primitiveUnits","propagate","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","startOffset","stemh","stemv","stitchTiles","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u2","unicode","viewTarget","widths","xChannelSelector","yChannelSelector","zoomAndPan","htmlBase","svgBase","valid","cap","kebab","$0","camelcase","hastToReact","StyleToObject","pointEnd","pointStart","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","legacyCause","place","ancestors","ruleId","fatal","file","actual","expected","note","emptyMap","dashSomething","tableElements","tableCellElement","docs","toJsxRuntime","tree","development","jsxDEV","isStaticChildren","developmentCreate","productionCreate","components","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","stylePropertyNameCase","tableCellAlignToStyle","one","parentSchema","findComponentFromName","alignValue","createProperty","createElementProps","createChildren","addNode","addChildren","estree","evaluateExpression","crashEstree","mdxExpression","objectExpression","argument","createJsxElementProps","mdxJsxElement","evaluateProgram","mdxEsm","countsByName","Type","dashes","settings","padRight","padLeft","commas","styleToObject","replacer","toCamel","parseStyle","domCasing","cssCasing","transformStyleToCssCasing","transformStylesToCssCasing","allowExpression","identifiers","isIdentifierName","optional","toDash","$1","urlAttributes","icon","includeImageAlt","includeHtml","parameters","chunkStart","SpliceBuffer","initial","RangeError","setCursor","POSITIVE_INFINITY","deleteCount","trunc","removed","chunkedPush","pushMany","unshiftMany","subtokenize","eventsArray","jumps","lineIndex","otherIndex","otherEvent","subevents","more","_tokenizer","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","stream","previous","adjust","breaks","sliceStream","defineSkip","_gfmTasklistFirstContentOfListItem","syntaxExtension","extension","hook","constructs","before","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","factorySpace","limit","consume","tokenize","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flow","flowContinue","writeToChild","eof","seen","nok","disable","null","blankLine","after","chunkInside","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","tabs","bufferIndex","chunk","_bufferIndex","createTokenizer","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","fields","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","expectedCode","startBufferIndex","endBufferIndex","sliceChunks","chunkIndex","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","thematicBreak","initialSize","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","contBefore","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","raw","enclosed","enclosedEscape","rawEscape","factoryLabel","labelInside","labelEscape","factoryTitle","factoryWhitespace","normalizeIdentifier","identifier","labelAfter","markerAfter","destinationBefore","destinationAfter","titleBefore","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","codeIndented","afterPrefix","furtherStart","headingAtx","sequenceOpen","sequenceFurther","setextUnderline","htmlBlockNames","htmlRawNames","htmlFlow","closingTag","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationStart","blankLineBefore","continuationAfter","nonLazyContinuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","nonLazyContinuation","codeFenced","closeStart","startBefore","beforeSequenceClose","sequenceClose","sizeOpen","sequenceCloseAfter","initialPrefix","beforeSequenceOpen","infoBefore","atNonLazyBreak","metaBefore","contentBefore","beforeContentChunk","contentChunk","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","labelEndNok","resourceConstruct","labelEndOk","referenceFullConstruct","referenceNotFull","referenceCollapsedConstruct","insideSpan","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFullAfter","referenceFullMissing","referenceCollapsedOpen","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","closingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelStartLink","hardBreakEscape","codeText","between","tailExitIndex","headEnterIndex","resolveText","combineExtensions","defaultConstructs","decodeNumericCharacterReference","fromCodePoint","characterEscapeOrReference","decode","$2","fromMarkdown","encoding","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","configure","mdastExtensions","compile","tokenStack","listStack","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","expectingFirstListItemValue","flowCodeInside","setextHeadingSlurpLineEnding","codePointAt","atHardBreak","inReference","referenceType","ancestor","decodeString","fragment","characterReferenceType","ordered","compiler","postprocess","atCarriageReturn","endPosition","TextDecoder","preprocess","combined","remarkParse","deserialize","deserializer","unpair","BigInt","EMPTY","asString","shouldSkip","lossy","serializer","strict","structuredClone","normalizeUri","skip","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","convert","castFactory","tests","anyFactory","checkAsRecord","nodeAsRecord","propsFactory","typeFactory","testFunction","looksLikeANode","CONTINUE","EXIT","SKIP","visitParents","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","revert","subtype","contents","listItemLoose","tab","trimLines","trimLine","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","safeId","footnoteOrder","reuseCounter","footnoteCounts","dataFootnoteRef","sup","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","loose","listLoose","firstRow","tableContent","tableCell","tableRow","toml","ignore","yaml","footnoteDefinition","hName","hChildren","hProperties","defaultUnknownHandler","trimMarkdownSpaceStart","toHast","footnoteById","defaultHandlers","passThrough","shallow","unknownHandler","createState","foot","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","dataFootnoteBackref","tailTail","dataFootnotes","footer","remarkRehype","hastTree","bail","trough","pipeline","middlewareIndex","output","middleware","wrapped","_len3","_key3","fnExpectsCallback","_len4","_key4","middelware","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","normalizeString","sep","proc","cwd","isUrl","fileUrlOrPath","urlToPath","third","getPathFromURLPosix","VFile","isUint8Array","stored","assertNonEmpty","assertPart","stem","fail","part","CallableInstance","names","Processor","Compiler","Parser","attachers","freezeIndex","frozen","namespace","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","parseTree","realDone","compileTree","compileResult","processSync","complete","assertDone","assertNode","outputTree","resultingTree","runSync","addPlugin","addList","addPreset","entryIndex","primary","currentPrimary","isPlainObj","unified","asyncName","looksLikeAVFile","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","processor","deprecation","mdastTree","colon","questionMark","numberSign","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","amdO","getter","leafPrototypes","getProto","ns","__webpack_exports__"],"sourceRoot":""}