{"version":3,"file":"static/js/394.0176a5f8.chunk.js","mappings":";oGACAA,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQE,cAAW,EACnBF,EAAQE,SAAW,CACfC,QAAS,CACL,SACA,SACA,UACA,YACA,WACA,SACA,YAEJ,QAAS,CACL,UACA,SACA,WACA,WACA,aACA,UACA,WAEJ,QAAS,CACL,UACA,SACA,WACA,WACA,aACA,UACA,WAEJ,QAAS,CACL,UACA,SACA,WACA,WACA,aACA,UACA,WAEJ,QAAS,CACL,UACA,QACA,SACA,YACA,SACA,UACA,UAEJ,QAAS,CACL,UACA,QACA,SACA,YACA,SACA,UACA,UAEJ,QAAS,CACL,UACA,QACA,SACA,YACA,SACA,UACA,UAEJ,QAAS,CACL,UACA,QACA,SACA,YACA,SACA,UACA,UAEJ,QAAS,CACL,UACA,QACA,SACA,YACA,SACA,UACA,UAEJ,QAAS,CACL,WACA,QACA,QACA,WACA,QACA,WACA,UAEJ,QAAS,CACL,WACA,QACA,QACA,WACA,QACA,WACA,UAEJ,QAAS,CACL,WACA,QACA,QACA,WACA,QACA,WACA,UAEJ,QAAS,CACL,WACA,QACA,OACA,SACA,YACA,SACA,WAEJ,QAAS,CACL,SACA,QACA,SACA,OACA,QACA,QACA,SAEJ,QAAS,CACL,WACA,SACA,UACA,YACA,UACA,UACA,UAEJ,QAAS,CACL,WACA,SACA,UACA,YACA,UACA,UACA,UAEJ,QAAS,CACL,SACA,UACA,UACA,WACA,YACA,UACA,YAEJ,QAAS,CACL,UACA,gBACA,cACA,eACA,eACA,cACA,UAEJ,QAAS,CACL,aACA,YACA,YACA,SACA,cACA,WACA,YAEJ,QAAS,CACL,SACA,SACA,UACA,SACA,UACA,WACA,sCCrLRL,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQI,gBAAa,EACrBJ,EAAQI,WAAa,CACjBD,QAAS,CACL,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,aAEJ,QAAS,CACL,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,aAEJ,QAAS,CACL,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,aAEJ,QAAS,CACL,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,aAEJ,QAAS,CACL,UACA,UACA,OACA,QACA,MACA,OACA,UACA,OACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,UACA,OACA,QACA,MACA,OACA,UACA,OACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,UACA,OACA,QACA,MACA,OACA,UACA,OACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,SACA,UACA,UACA,UACA,QACA,SACA,SACA,YACA,aACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,WACA,QACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,WACA,QACA,SACA,SACA,SACA,SACA,SACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,WACA,QACA,SACA,SACA,SACA,SACA,SACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,WACA,MACA,QACA,MACA,OACA,OACA,WACA,YACA,UACA,WACA,YAEJ,QAAS,CACL,UACA,YACA,QACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YAEJ,QAAS,CACL,SACA,aACA,SACA,SACA,UACA,WACA,UACA,UACA,UACA,SACA,YACA,WAEJ,QAAS,CACL,QACA,SACA,QACA,SACA,KACA,MACA,QACA,QACA,UACA,UACA,QACA,uCC3QRL,OAA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Q,EACRpyB,KAAM,EACNqyB,MAAO,SAACruB,EAAmBhE,GACvB,OAAQA,GACJ,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,SACD,OAAO,EACX,IAAK,UACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,uBACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,EACX,IAAK,cACD,OAAO,GACX,IAAK,eACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,qBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,aACD,OAAO,GACX,IAAK,mBACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,WAEL,IAAK,SACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,WACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,uBACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,MACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,YACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,GACX,IAAK,OACD,OAAO,GACX,IAAK,UACD,OAAO,GACX,IAAK,sBACD,OAAO,GACX,IAAK,wBACD,OAAO,GACX,IAAK,iBACD,OAAO,GACX,IAAK,kBACD,OAAO,GACX,IAAK,oBACD,OAAO,GAEX,QACI,YC5KV24B,GAAgB,SAACjC,GAAgD,OACnEr8B,KAAM,UAAUq8B,EAChBvd,aAAc,I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","sources":["webpack:///./node_modules/@im/localization/cultures/constant-values/day-names.js","webpack:///./node_modules/@im/localization/cultures/constant-values/month-names.js","webpack:///./node_modules/@im/localization/cultures/constant-values/short-currency-notations.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/all-cultures.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/at-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/au-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/be-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/br-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/ca-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/ch-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/cl-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/cn-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/co-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/de-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/dk-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/es-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/fi-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/fr-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/hk-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/hu-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/id-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/in-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/it-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/mx-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/my-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/nl-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/no-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/nz-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/pe-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/pt-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/se-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/sg-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/th-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/uk-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/us-culture.js","webpack:///./node_modules/@im/localization/cultures/im-cultures/usme-culture.js","webpack:///./node_modules/@im/localization/cultures/providers/constant-provider.js","webpack:///./node_modules/@im/localization/cultures/providers/im-culture-provider.js","webpack:///./node_modules/@im/localization/features/im-api-translator.js","webpack:///./node_modules/@im/localization/features/im-currency-formatter.js","webpack:///./node_modules/@im/localization/features/im-date-formatter.js","webpack:///./node_modules/@im/localization/features/im-file-translator.js","webpack:///./node_modules/@im/localization/features/im-translator.js","webpack:///./node_modules/@im/localization/index.js","webpack:///./node_modules/@im/localization/services/im-localization-service.js","webpack:///./node_modules/@im/react-localization/localization/localizationContext.js","webpack:///./node_modules/@mui/material/Fab/fabClasses.js","webpack:///./node_modules/@mui/material/Fab/Fab.js","webpack:///./node_modules/@im/react-localization/localization/editTranslate/showHideResouceKey.js","webpack:///./node_modules/@im/react-localization/localization/LocalizationProvider.js","webpack:///./node_modules/@im/react-localization/localization/Translate.js","webpack:///./node_modules/@im/react-localization/localization/editTranslate/EditTranslateModal.js","webpack:///./node_modules/@im/react-localization/localization/editTranslate/api-customize-hooks.js","webpack:///./node_modules/@im/react-localization/localization/editTranslate/EditTranslate.js","webpack:///./node_modules/@im/react-localization/localization/useLocalization.js","webpack:///./node_modules/@im/react-localization/localization/useTranslate.js","webpack:///./node_modules/@mui/material/Dialog/dialogClasses.js","webpack:///./node_modules/@mui/material/Dialog/Dialog.js","webpack:///./node_modules/@mui/material/Dialog/DialogContext.js","webpack:///./node_modules/@mui/material/Stack/Stack.js","webpack:///./node_modules/html2canvas/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/html2canvas/node_modules/src/Util.ts","webpack:///./node_modules/src/css/layout/bounds.ts","webpack:///./node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","webpack:///./node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","webpack:///./node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","webpack:///./node_modules/html2canvas/node_modules/src/linebreak-trie.ts","webpack:///./node_modules/html2canvas/node_modules/src/LineBreak.ts","webpack:///./node_modules/src/css/syntax/tokenizer.ts","webpack:///./node_modules/src/css/syntax/parser.ts","webpack:///./node_modules/src/css/types/length.ts","webpack:///./node_modules/src/css/types/length-percentage.ts","webpack:///./node_modules/src/css/types/angle.ts","webpack:///./node_modules/src/css/types/color.ts","webpack:///./node_modules/src/css/property-descriptors/background-clip.ts","webpack:///./node_modules/src/css/property-descriptors/background-color.ts","webpack:///./node_modules/src/css/types/functions/gradient.ts","webpack:///./node_modules/src/css/types/functions/-prefix-linear-gradient.ts","webpack:///./node_modules/src/css/types/functions/radial-gradient.ts","webpack:///./node_modules/src/css/types/functions/-prefix-radial-gradient.ts","webpack:///./node_modules/src/css/types/image.ts","webpack:///./node_modules/src/css/property-descriptors/background-size.ts","webpack:///./node_modules/src/css/types/functions/linear-gradient.ts","webpack:///./node_modules/src/css/types/functions/-webkit-gradient.ts","webpack:///./node_modules/src/css/property-descriptors/background-image.ts","webpack:///./node_modules/src/css/property-descriptors/background-origin.ts","webpack:///./node_modules/src/css/property-descriptors/background-position.ts","webpack:///./node_modules/src/css/property-descriptors/background-repeat.ts","webpack:///./node_modules/src/css/property-descriptors/line-break.ts","webpack:///./node_modules/src/css/property-descriptors/border-color.ts","webpack:///./node_modules/src/css/property-descriptors/border-radius.ts","webpack:///./node_modules/src/css/property-descriptors/border-style.ts","webpack:///./node_modules/src/css/property-descriptors/border-width.ts","webpack:///./node_modules/src/css/property-descriptors/color.ts","webpack:///./node_modules/src/css/property-descriptors/direction.ts","webpack:///./node_modules/src/css/property-descriptors/display.ts","webpack:///./node_modules/src/css/property-descriptors/float.ts","webpack:///./node_modules/src/css/property-descriptors/letter-spacing.ts","webpack:///./node_modules/src/css/property-descriptors/word-break.ts","webpack:///./node_modules/src/css/property-descriptors/line-height.ts","webpack:///./node_modules/src/css/property-descriptors/list-style-image.ts","webpack:///./node_modules/src/css/property-descriptors/list-style-position.ts","webpack:///./node_modules/src/css/property-descriptors/list-style-type.ts","webpack:///./node_modules/src/css/property-descriptors/margin.ts","webpack:///./node_modules/src/css/property-descriptors/overflow.ts","webpack:///./node_modules/src/css/property-descriptors/overflow-wrap.ts","webpack:///./node_modules/src/css/property-descriptors/padding.ts","webpack:///./node_modules/src/css/property-descriptors/text-align.ts","webpack:///./node_modules/src/css/property-descriptors/position.ts","webpack:///./node_modules/src/css/property-descriptors/text-shadow.ts","webpack:///./node_modules/src/css/property-descriptors/text-transform.ts","webpack:///./node_modules/src/css/property-descriptors/transform.ts","webpack:///./node_modules/src/css/property-descriptors/transform-origin.ts","webpack:///./node_modules/src/css/property-descriptors/visibility.ts","webpack:///./node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","webpack:///./node_modules/src/css/property-descriptors/z-index.ts","webpack:///./node_modules/src/css/types/time.ts","webpack:///./node_modules/src/css/property-descriptors/opacity.ts","webpack:///./node_modules/src/css/property-descriptors/text-decoration-color.ts","webpack:///./node_modules/src/css/property-descriptors/text-decoration-line.ts","webpack:///./node_modules/src/css/property-descriptors/font-family.ts","webpack:///./node_modules/src/css/property-descriptors/font-size.ts","webpack:///./node_modules/src/css/property-descriptors/font-weight.ts","webpack:///./node_modules/src/css/property-descriptors/font-variant.ts","webpack:///./node_modules/src/css/property-descriptors/font-style.ts","webpack:///./node_modules/src/core/bitwise.ts","webpack:///./node_modules/src/css/property-descriptors/content.ts","webpack:///./node_modules/src/css/property-descriptors/counter-increment.ts","webpack:///./node_modules/src/css/property-descriptors/counter-reset.ts","webpack:///./node_modules/src/css/property-descriptors/duration.ts","webpack:///./node_modules/src/css/property-descriptors/quotes.ts","webpack:///./node_modules/src/css/property-descriptors/box-shadow.ts","webpack:///./node_modules/src/css/property-descriptors/paint-order.ts","webpack:///./node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","webpack:///./node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","webpack:///./node_modules/src/css/index.ts","webpack:///./node_modules/src/core/debugger.ts","webpack:///./node_modules/src/dom/element-container.ts","webpack:///./node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","webpack:///./node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","webpack:///./node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","webpack:///./node_modules/src/dom/document-cloner.ts","webpack:///./node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","webpack:///./node_modules/src/core/features.ts","webpack:///./node_modules/src/css/layout/text.ts","webpack:///./node_modules/src/dom/text-container.ts","webpack:///./node_modules/src/dom/replaced-elements/image-element-container.ts","webpack:///./node_modules/src/dom/replaced-elements/canvas-element-container.ts","webpack:///./node_modules/src/dom/replaced-elements/svg-element-container.ts","webpack:///./node_modules/src/dom/elements/li-element-container.ts","webpack:///./node_modules/src/dom/elements/ol-element-container.ts","webpack:///./node_modules/src/dom/replaced-elements/input-element-container.ts","webpack:///./node_modules/src/dom/elements/select-element-container.ts","webpack:///./node_modules/src/dom/elements/textarea-element-container.ts","webpack:///./node_modules/src/dom/replaced-elements/iframe-element-container.ts","webpack:///./node_modules/src/dom/node-parser.ts","webpack:///./node_modules/src/css/types/functions/counter.ts","webpack:///./node_modules/src/render/bound-curves.ts","webpack:///./node_modules/src/core/cache-storage.ts","webpack:///./node_modules/src/render/vector.ts","webpack:///./node_modules/src/render/bezier-curve.ts","webpack:///./node_modules/src/render/effects.ts","webpack:///./node_modules/src/render/path.ts","webpack:///./node_modules/src/render/stacking-context.ts","webpack:///./node_modules/src/render/border.ts","webpack:///./node_modules/src/render/box-sizing.ts","webpack:///./node_modules/src/render/background.ts","webpack:///./node_modules/src/render/font-metrics.ts","webpack:///./node_modules/src/core/util.ts","webpack:///./node_modules/src/render/renderer.ts","webpack:///./node_modules/src/render/canvas/canvas-renderer.ts","webpack:///./node_modules/src/render/canvas/foreignobject-renderer.ts","webpack:///./node_modules/src/core/logger.ts","webpack:///./node_modules/src/core/context.ts","webpack:///./node_modules/src/index.ts","webpack:///./node_modules/react/jsx-runtime.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DayNames = void 0;\nexports.DayNames = {\n default: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n \"de-at\": [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n \"de-ch\": [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n \"de-de\": [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n \"es-mx\": [\n \"domingo\",\n \"lunes\",\n \"martes\",\n \"miércoles\",\n \"jueves\",\n \"viernes\",\n \"sábado\",\n ],\n \"es-co\": [\n \"domingo\",\n \"lunes\",\n \"martes\",\n \"miércoles\",\n \"jueves\",\n \"viernes\",\n \"sábado\",\n ],\n \"es-cl\": [\n \"Domingo\",\n \"Lunes\",\n \"Martes\",\n \"Miércoles\",\n \"Jueves\",\n \"Viernes\",\n \"Sábado\",\n ],\n \"es-es\": [\n \"domingo\",\n \"lunes\",\n \"martes\",\n \"miércoles\",\n \"jueves\",\n \"viernes\",\n \"sábado\",\n ],\n \"es-pe\": [\n \"domingo\",\n \"lunes\",\n \"martes\",\n \"miércoles\",\n \"jueves\",\n \"viernes\",\n \"sábado\",\n ],\n \"fr-ca\": [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ],\n \"fr-ch\": [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ],\n \"fr-fr\": [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\",\n ],\n \"hu-hu\": [\n \"vasárnap\",\n \"hétfő\",\n \"kedd\",\n \"szerda\",\n \"csütörtök\",\n \"péntek\",\n \"szombat\",\n ],\n \"id-id\": [\n \"Minggu\",\n \"Senin\",\n \"Selasa\",\n \"Rabu\",\n \"Kamis\",\n \"Jumat\",\n \"Sabtu\",\n ],\n \"it-ch\": [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\",\n ],\n \"it-it\": [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\",\n ],\n \"nl-nl\": [\n \"zondag\",\n \"maandag\",\n \"dinsdag\",\n \"woensdag\",\n \"donderdag\",\n \"vrijdag\",\n \"zaterdag\",\n ],\n \"pt-pt\": [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n \"th-th\": [\n \"วันอาทิตย์\",\n \"วันจันทร์\",\n \"วันอังคาร\",\n \"วันพุธ\",\n \"วันพฤหัสบดี\",\n \"วันศุกร์\",\n \"วันเสาร์\"\n ],\n \"hi-in\": [\n \"रविवार\",\n \"सोमवार\",\n \"मंगलवार\",\n \"बुधवार\",\n \"गुरुवार\",\n \"शुक्रवार\",\n \"शनिवार\"\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MonthNames = void 0;\nexports.MonthNames = {\n default: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n \"de-at\": [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n \"de-ch\": [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n \"de-de\": [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n \"es-mx\": [\n \"enero\",\n \"febrero\",\n \"marzo\",\n \"abril\",\n \"mayo\",\n \"junio\",\n \"julio\",\n \"agosto\",\n \"septiembre\",\n \"octubre\",\n \"noviembre\",\n \"diciembre\",\n ],\n \"es-co\": [\n \"enero\",\n \"febrero\",\n \"marzo\",\n \"abril\",\n \"mayo\",\n \"junio\",\n \"julio\",\n \"agosto\",\n \"septiembre\",\n \"octubre\",\n \"noviembre\",\n \"diciembre\",\n ],\n \"es-es\": [\n \"enero\",\n \"febrero\",\n \"marzo\",\n \"abril\",\n \"mayo\",\n \"junio\",\n \"julio\",\n \"agosto\",\n \"septiembre\",\n \"octubre\",\n \"noviembre\",\n \"diciembre\",\n ],\n \"es-pe\": [\n \"enero\",\n \"febrero\",\n \"marzo\",\n \"abril\",\n \"mayo\",\n \"junio\",\n \"julio\",\n \"agosto\",\n \"septiembre\",\n \"octubre\",\n \"noviembre\",\n \"diciembre\",\n ],\n \"fr-ca\": [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ],\n \"fr-ch\": [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ],\n \"fr-fr\": [\n \"janvier\",\n \"février\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"août\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"décembre\",\n ],\n \"hu-hu\": [\n \"január\",\n \"február\",\n \"március\",\n \"április\",\n \"május\",\n \"június\",\n \"július\",\n \"augusztus\",\n \"szeptember\",\n \"október\",\n \"november\",\n \"december\",\n ],\n \"id-id\": [\n \"Januari\",\n \"Februari\",\n \"Maret\",\n \"April\",\n \"Mei\",\n \"Juni\",\n \"Juli\",\n \"Agustus\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Desember\",\n ],\n \"it-it\": [\n \"gennaio\",\n \"febbraio\",\n \"marzo\",\n \"aprile\",\n \"maggio\",\n \"giugno\",\n \"luglio\",\n \"agosto\",\n \"settembre\",\n \"ottobre\",\n \"novembre\",\n \"dicembre\",\n ],\n \"it-ch\": [\n \"gennaio\",\n \"febbraio\",\n \"marzo\",\n \"aprile\",\n \"maggio\",\n \"giugno\",\n \"luglio\",\n \"agosto\",\n \"settembre\",\n \"ottobre\",\n \"novembre\",\n \"dicembre\",\n ],\n \"nl-nl\": [\n \"januari\",\n \"februari\",\n \"mrt\",\n \"april\",\n \"mei\",\n \"juni\",\n \"juli\",\n \"augustus\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n \"pt-pt\": [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n \"th-th\": [\n \"มกราคม\",\n \"กุมภาพันธ์\",\n \"มีนาคม\",\n \"เมษายน\",\n \"พฤษภาคม\",\n \"มิถุนายน\",\n \"กรกฎาคม\",\n \"สิงหาคม\",\n \"กันยายน\",\n \"ตุลาคม\",\n \"พฤศจิกายน\",\n \"ธันวาคม\"\n ],\n \"hi-in\": [\n \"जनवरी\",\n \"फ़रवरी\",\n \"मार्च\",\n \"अप्रैल\",\n \"मई\",\n \"जून\",\n \"जुलाई\",\n \"अगस्त\",\n \"सितम्बर\",\n \"अक्टूबर\",\n \"नवंबर\",\n \"दिसंबर\"\n ]\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThousandsNotation = exports.MillionsNotation = exports.BillionsNotation = void 0;\nexports.BillionsNotation = {\n default: \"B\",\n \"en-US\": \"B\",\n};\nexports.MillionsNotation = {\n default: \"M\",\n \"en-US\": \"M\",\n};\nexports.ThousandsNotation = {\n default: \"K\",\n \"en-US\": \"K\",\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AllCultures = void 0;\nconst at_culture_1 = require(\"./at-culture\");\nconst au_culture_1 = require(\"./au-culture\");\nconst be_culture_1 = require(\"./be-culture\");\nconst br_culture_1 = require(\"./br-culture\");\nconst ca_culture_1 = require(\"./ca-culture\");\nconst ch_culture_1 = require(\"./ch-culture\");\nconst cl_culture_1 = require(\"./cl-culture\");\nconst cn_culture_1 = require(\"./cn-culture\");\nconst co_culture_1 = require(\"./co-culture\");\nconst de_culture_1 = require(\"./de-culture\");\nconst dk_culture_1 = require(\"./dk-culture\");\nconst es_culture_1 = require(\"./es-culture\");\nconst fi_culture_1 = require(\"./fi-culture\");\nconst fr_culture_1 = require(\"./fr-culture\");\nconst uk_culture_1 = require(\"./uk-culture\");\nconst hk_culture_1 = require(\"./hk-culture\");\nconst hu_culture_1 = require(\"./hu-culture\");\nconst id_culture_1 = require(\"./id-culture\");\nconst in_culture_1 = require(\"./in-culture\");\nconst it_culture_1 = require(\"./it-culture\");\nconst mx_culture_1 = require(\"./mx-culture\");\nconst my_culture_1 = require(\"./my-culture\");\nconst nl_culture_1 = require(\"./nl-culture\");\nconst no_culture_1 = require(\"./no-culture\");\nconst nz_culture_1 = require(\"./nz-culture\");\nconst pe_culture_1 = require(\"./pe-culture\");\nconst pt_culture_1 = require(\"./pt-culture\");\nconst se_culture_1 = require(\"./se-culture\");\nconst sg_culture_1 = require(\"./sg-culture\");\nconst us_culture_1 = require(\"./us-culture\");\nconst usme_culture_1 = require(\"./usme-culture\");\nconst th_culture_1 = require(\"./th-culture\");\nexports.AllCultures = {\n \"de-at\": {\n \"EUR\": new at_culture_1.DeAtEur(),\n \"USD\": new at_culture_1.DeAtUsd()\n },\n \"en-at\": {\n \"EUR\": new at_culture_1.EnAtEur(),\n \"USD\": new at_culture_1.EnAtUsd()\n },\n \"en-au\": {\n \"AUD\": new au_culture_1.EnAuAud(),\n \"USD\": new au_culture_1.EnAuUsd()\n },\n \"en-be\": {\n \"EUR\": new be_culture_1.EnBeEur(),\n \"USD\": new be_culture_1.EnBeUsd()\n },\n \"nl-be\": {\n \"EUR\": new be_culture_1.NlBeEur(),\n \"USD\": new be_culture_1.NlBeUsd()\n },\n \"fr-be\": {\n \"EUR\": new be_culture_1.FrBeEur(),\n \"USD\": new be_culture_1.FrBeUsd()\n },\n \"en-br\": {\n \"BRR\": new br_culture_1.EnBrBrr(),\n \"USD\": new br_culture_1.EnBrUsd()\n },\n \"pt-br\": {\n \"BRR\": new br_culture_1.PtBrBrr(),\n \"USD\": new br_culture_1.PtBrUsd()\n },\n \"en-ca\": {\n \"CAD\": new ca_culture_1.EnCaCad(),\n \"USD\": new ca_culture_1.EnCaUsd()\n },\n \"fr-ca\": {\n \"CAD\": new ca_culture_1.FrCaCad(),\n \"USD\": new ca_culture_1.FrCaUsd()\n },\n \"de-ch\": {\n \"CHF\": new ch_culture_1.DeChChf(),\n \"EUR\": new ch_culture_1.DeChEur(),\n \"USD\": new ch_culture_1.DeChUsd(),\n \"GBP\": new ch_culture_1.DeChGbp()\n },\n \"fr-ch\": {\n \"CHF\": new ch_culture_1.FrChChf(),\n \"EUR\": new ch_culture_1.FrChEur(),\n \"USD\": new ch_culture_1.FrChUsd(),\n \"GBP\": new ch_culture_1.FrChGbp()\n },\n \"it-ch\": {\n \"CHF\": new ch_culture_1.ItChChf(),\n \"EUR\": new ch_culture_1.ItChEur(),\n \"USD\": new ch_culture_1.ItChUsd(),\n \"GBP\": new ch_culture_1.ItChGbp()\n },\n \"en-ch\": {\n \"CHF\": new ch_culture_1.EnChChf(),\n \"EUR\": new ch_culture_1.EnChEur(),\n \"USD\": new ch_culture_1.EnChUsd(),\n \"GBP\": new ch_culture_1.EnChGbp()\n },\n \"es-cl\": {\n \"USD\": new cl_culture_1.EsClUsd(),\n \"CLP\": new cl_culture_1.EsClClp()\n },\n \"en-cl\": {\n \"USD\": new cl_culture_1.EnClUsd()\n },\n \"zh-cn\": {\n \"CNY\": new cn_culture_1.ZhCnCny()\n },\n \"en-cn\": {\n \"CNY\": new cn_culture_1.EnCnCny()\n },\n \"es-co\": {\n \"COP\": new co_culture_1.EsCoCop(),\n \"USD\": new co_culture_1.EsCoUsd()\n },\n \"de-de\": {\n \"EUR\": new de_culture_1.DeDeEur(),\n \"DKK\": new de_culture_1.DeDeDkk(),\n \"CZK\": new de_culture_1.DeDeCzk(),\n \"NOK\": new de_culture_1.DeDeNok(),\n \"PLN\": new de_culture_1.DeDePln(),\n \"USD\": new de_culture_1.DeDeUsd()\n },\n \"en-de\": {\n \"EUR\": new de_culture_1.EnDeEur(),\n \"DKK\": new de_culture_1.EnDeDkk(),\n \"CZK\": new de_culture_1.EnDeCzk(),\n \"NOK\": new de_culture_1.EnDeNok(),\n \"PLN\": new de_culture_1.EnDePln(),\n \"USD\": new de_culture_1.EnDeUsd()\n },\n \"en-dk\": {\n \"DKK\": new dk_culture_1.EnDkDkk(),\n \"USD\": new dk_culture_1.EnDkUsd(),\n \"EUR\": new dk_culture_1.EnDkEur(),\n \"SEK\": new dk_culture_1.EnDkSek(),\n \"NOK\": new dk_culture_1.EnDkNok()\n },\n \"es-es\": {\n \"EUR\": new es_culture_1.EsEsEur(),\n \"USD\": new es_culture_1.EsEsUsd()\n },\n \"en-es\": {\n \"EUR\": new es_culture_1.EnEsEur(),\n \"USD\": new es_culture_1.EnEsUsd()\n },\n \"pt-es\": {\n \"EUR\": new es_culture_1.PtEsEur(),\n \"USD\": new es_culture_1.PtEsUsd()\n },\n \"en-fi\": {\n \"EUR\": new fi_culture_1.EnFiEur(),\n \"USD\": new fi_culture_1.EnFiUsd(),\n \"SEK\": new fi_culture_1.EnFiSek(),\n \"DKK\": new fi_culture_1.EnFiDkk(),\n \"NOK\": new fi_culture_1.EnFiNok()\n },\n \"fr-fr\": {\n \"EUR\": new fr_culture_1.FrFrEur(),\n \"USD\": new fr_culture_1.FrFrUsd()\n },\n \"en-fr\": {\n \"EUR\": new fr_culture_1.EnFrEur(),\n \"USD\": new fr_culture_1.EnFrUsd()\n },\n \"en-gb\": {\n \"GBP\": new uk_culture_1.EnGbGbp(),\n \"EUR\": new uk_culture_1.EnGbEur(),\n \"USD\": new uk_culture_1.EnGbUsd()\n },\n \"en-hk\": {\n \"HKD\": new hk_culture_1.EnHkHkd(),\n \"USD\": new hk_culture_1.EnHkUsd()\n },\n \"hu-hu\": {\n \"HUF\": new hu_culture_1.HuHuHuf(),\n \"EUR\": new hu_culture_1.HuHuEur(),\n \"USD\": new hu_culture_1.HuHuUsd()\n },\n \"en-hu\": {\n \"HUF\": new hu_culture_1.EnHuHuf(),\n \"EUR\": new hu_culture_1.EnHuEur(),\n \"USD\": new hu_culture_1.EnHuUsd()\n },\n \"id-id\": {\n \"IDR\": new id_culture_1.IdIdIdr()\n },\n \"en-id\": {\n \"IDR\": new id_culture_1.EnIdIdr()\n },\n \"en-in\": {\n \"INR\": new in_culture_1.EnInInr(),\n \"USD\": new in_culture_1.EnInUsd()\n },\n \"hi-in\": {\n \"INR\": new in_culture_1.HiInInr(),\n \"USD\": new in_culture_1.HiInUsd()\n },\n \"it-it\": {\n \"EUR\": new it_culture_1.ItItEur(),\n \"USD\": new it_culture_1.ItItUsd()\n },\n \"en-it\": {\n \"EUR\": new it_culture_1.EnItEur(),\n \"USD\": new it_culture_1.EnItUsd()\n },\n \"es-mx\": {\n \"MXP\": new mx_culture_1.EsMxMxp(),\n \"MXN\": new mx_culture_1.EsMxMxn(),\n \"USD\": new mx_culture_1.EsMxUsd()\n },\n \"en-mx\": {\n \"MXP\": new mx_culture_1.EnMxMxp(),\n \"MXN\": new mx_culture_1.EnMxMxn(),\n \"USD\": new mx_culture_1.EnMxUsd()\n },\n \"en-my\": {\n \"MYR\": new my_culture_1.EnMyMyr(),\n \"USD\": new my_culture_1.EnMyUsd()\n },\n \"nl-nl\": {\n \"EUR\": new nl_culture_1.NlNlEur(),\n \"USD\": new nl_culture_1.NlNlUsd()\n },\n \"en-nl\": {\n \"EUR\": new nl_culture_1.EnNlEur(),\n \"USD\": new nl_culture_1.EnNlUsd()\n },\n \"en-no\": {\n \"EUR\": new no_culture_1.EnNoEur(),\n \"USD\": new no_culture_1.EnNoUsd(),\n \"SEK\": new no_culture_1.EnNoSek(),\n \"DKK\": new no_culture_1.EnNoDkk(),\n \"NOK\": new no_culture_1.EnNoNok()\n },\n \"en-nz\": {\n \"NZD\": new nz_culture_1.EnNzNzd(),\n \"USD\": new nz_culture_1.EnNzUsd(),\n \"AUD\": new nz_culture_1.EnNzAud()\n },\n \"es-pe\": {\n \"USD\": new pe_culture_1.EsPeUsd(),\n \"PEN\": new pe_culture_1.EsPePen()\n },\n \"en-pe\": {\n \"USD\": new pe_culture_1.EnPeUsd(),\n \"PEN\": new pe_culture_1.EnPePen()\n },\n \"pt-pt\": {\n \"EUR\": new pt_culture_1.PtPtEur(),\n \"USD\": new pt_culture_1.PtPtUsd()\n },\n \"en-pt\": {\n \"EUR\": new pt_culture_1.EnPtEur(),\n \"USD\": new pt_culture_1.EnPtUsd()\n },\n \"en-se\": {\n \"EUR\": new se_culture_1.EnSeEur(),\n \"SEK\": new se_culture_1.EnSeSek(),\n \"DKK\": new se_culture_1.EnSeDkk(),\n \"NOK\": new se_culture_1.EnSeNok(),\n \"USD\": new se_culture_1.EnSeUsd()\n },\n \"sv-se\": {\n \"EUR\": new se_culture_1.SvSeEur(),\n \"SEK\": new se_culture_1.SvSeSek(),\n \"DKK\": new se_culture_1.SvSeDkk(),\n \"NOK\": new se_culture_1.SvSeNok(),\n \"USD\": new se_culture_1.SvSeUsd()\n },\n \"se-se\": {\n \"SEK\": new se_culture_1.SeSeSek(),\n \"DKK\": new se_culture_1.SeSeDkk(),\n \"NOK\": new se_culture_1.SeSeNok()\n },\n \"en-sg\": {\n \"SGD\": new sg_culture_1.EnSgSgd(),\n \"USD\": new sg_culture_1.EnSgUsd(),\n \"EUR\": new sg_culture_1.EnSgEur(),\n \"JPY\": new sg_culture_1.EnSgJpy()\n },\n \"en-us\": {\n \"USD\": new us_culture_1.EnUsUsd()\n },\n \"en-usme\": {\n \"USD\": new usme_culture_1.EnUsmeUsd()\n },\n \"es-usme\": {\n \"USD\": new usme_culture_1.EsUsmeUsd()\n },\n \"en-th\": {\n \"THB\": new th_culture_1.EnThThb()\n },\n \"th-th\": {\n \"THB\": new th_culture_1.ThThThb()\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnAtUsd = exports.EnAtEur = exports.DeAtUsd = exports.DeAtEur = void 0;\nclass DeAtEur {\n constructor() {\n this.locale = \"de-at\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"EUR\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.DeAtEur = DeAtEur;\nclass DeAtUsd {\n constructor() {\n this.locale = \"de-at\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeAtUsd = DeAtUsd;\nclass EnAtEur {\n constructor() {\n this.locale = \"en-at\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"EUR\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnAtEur = EnAtEur;\nclass EnAtUsd {\n constructor() {\n this.locale = \"en-at\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnAtUsd = EnAtUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnAuUsd = exports.EnAuAud = void 0;\nclass EnAuAud {\n constructor() {\n this.locale = \"en-au\";\n this.dateFormat = {\n short: \"d/MM/yyyy\",\n medium: \"d MMMM yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"AUD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnAuAud = EnAuAud;\nclass EnAuUsd {\n constructor() {\n this.locale = \"en-au\";\n this.dateFormat = {\n short: \"d/MM/yyyy\",\n medium: \"d MMMM yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnAuUsd = EnAuUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrBeUsd = exports.FrBeEur = exports.NlBeUsd = exports.NlBeEur = exports.EnBeUsd = exports.EnBeEur = void 0;\nclass EnBeEur {\n constructor() {\n this.locale = \"en-be\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnBeEur = EnBeEur;\nclass EnBeUsd {\n constructor() {\n this.locale = \"en-be\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnBeUsd = EnBeUsd;\nclass NlBeEur {\n constructor() {\n this.locale = \"nl-be\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.NlBeEur = NlBeEur;\nclass NlBeUsd {\n constructor() {\n this.locale = \"nl-be\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.NlBeUsd = NlBeUsd;\nclass FrBeEur {\n constructor() {\n this.locale = \"fr-be\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.FrBeEur = FrBeEur;\nclass FrBeUsd {\n constructor() {\n this.locale = \"fr-be\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.FrBeUsd = FrBeUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PtBrUsd = exports.PtBrBrr = exports.EnBrUsd = exports.EnBrBrr = void 0;\nclass EnBrBrr {\n constructor() {\n this.locale = \"en-br\";\n this.dateFormat = {\n short: \"M/d/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"BRR\",\n symbol: \"R$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.EnBrBrr = EnBrBrr;\nclass EnBrUsd {\n constructor() {\n this.locale = \"en-br\";\n this.dateFormat = {\n short: \"M/d/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\",\n };\n }\n}\nexports.EnBrUsd = EnBrUsd;\nclass PtBrBrr {\n constructor() {\n this.locale = \"pt-br\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM, yyyy\",\n long: \"dddd, d' de 'MMMM' de 'yyyy\",\n };\n this.currencyFormat = {\n code: \"BRR\",\n symbol: \"R$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.PtBrBrr = PtBrBrr;\nclass PtBrUsd {\n constructor() {\n this.locale = \"pt-br\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM, yyyy\",\n long: \"dddd, d' de 'MMMM' de 'yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\",\n };\n }\n}\nexports.PtBrUsd = PtBrUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrCaUsd = exports.FrCaCad = exports.EnCaUsd = exports.EnCaCad = void 0;\nclass EnCaCad {\n constructor() {\n this.locale = \"en-ca\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"MMMM d, yyyy\",\n };\n this.currencyFormat = {\n code: \"CAD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnCaCad = EnCaCad;\nclass EnCaUsd {\n constructor() {\n this.locale = \"en-ca\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"MMMM d, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnCaUsd = EnCaUsd;\nclass FrCaCad {\n constructor() {\n this.locale = \"fr-ca\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CAD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"Cn\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.FrCaCad = FrCaCad;\nclass FrCaUsd {\n constructor() {\n this.locale = \"fr-ca\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"Cn\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.FrCaUsd = FrCaUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnChGbp = exports.EnChUsd = exports.EnChEur = exports.EnChChf = exports.ItChGbp = exports.ItChUsd = exports.ItChEur = exports.ItChChf = exports.FrChGbp = exports.FrChUsd = exports.FrChEur = exports.FrChChf = exports.DeChGbp = exports.DeChUsd = exports.DeChEur = exports.DeChChf = void 0;\nclass DeChChf {\n constructor() {\n this.locale = \"de-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CHF\",\n symbol: \"CHF\",\n decimalSeparator: \".\",\n groupSeparator: \"'\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeChChf = DeChChf;\nclass DeChEur {\n constructor() {\n this.locale = \"de-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeChEur = DeChEur;\nclass DeChUsd {\n constructor() {\n this.locale = \"de-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeChUsd = DeChUsd;\nclass DeChGbp {\n constructor() {\n this.locale = \"de-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"GBP\",\n symbol: \"£\",\n decimalSeparator: \".\",\n groupSeparator: \"’\",\n positivePattern: \"C n\",\n negativePattern: \"C-n\"\n };\n }\n}\nexports.DeChGbp = DeChGbp;\nclass FrChChf {\n constructor() {\n this.locale = \"fr-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CHF\",\n symbol: \"CHF\",\n decimalSeparator: \".\",\n groupSeparator: \"'\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.FrChChf = FrChChf;\nclass FrChEur {\n constructor() {\n this.locale = \"fr-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.FrChEur = FrChEur;\nclass FrChUsd {\n constructor() {\n this.locale = \"fr-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.FrChUsd = FrChUsd;\nclass FrChGbp {\n constructor() {\n this.locale = \"fr-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"GBP\",\n symbol: \"£\",\n decimalSeparator: \".\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.FrChGbp = FrChGbp;\nclass ItChChf {\n constructor() {\n this.locale = \"it-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CHF\",\n symbol: \"CHF\",\n decimalSeparator: \".\",\n groupSeparator: \"'\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.ItChChf = ItChChf;\nclass ItChEur {\n constructor() {\n this.locale = \"it-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.ItChEur = ItChEur;\nclass ItChUsd {\n constructor() {\n this.locale = \"it-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.ItChUsd = ItChUsd;\nclass ItChGbp {\n constructor() {\n this.locale = \"it-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"GBP\",\n symbol: \"£\",\n decimalSeparator: \".\",\n groupSeparator: \"’\",\n positivePattern: \"C n\",\n negativePattern: \"C-n\"\n };\n }\n}\nexports.ItChGbp = ItChGbp;\nclass EnChChf {\n constructor() {\n this.locale = \"en-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CHF\",\n symbol: \"CHF\",\n decimalSeparator: \".\",\n groupSeparator: \"'\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnChChf = EnChChf;\nclass EnChEur {\n constructor() {\n this.locale = \"en-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnChEur = EnChEur;\nclass EnChUsd {\n constructor() {\n this.locale = \"en-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd. MMMM yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnChUsd = EnChUsd;\nclass EnChGbp {\n constructor() {\n this.locale = \"en-ch\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d. MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"GBP\",\n symbol: \"£\",\n decimalSeparator: \".\",\n groupSeparator: \"’\",\n positivePattern: \"C n\",\n negativePattern: \"C-n\"\n };\n }\n}\nexports.EnChGbp = EnChGbp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnClUsd = exports.EsClClp = exports.EsClUsd = void 0;\nclass EsClUsd {\n constructor() {\n this.locale = \"es-cl\";\n this.dateFormat = {\n short: \"dd-MM-yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d 'de' MMMM 'de' yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EsClUsd = EsClUsd;\nclass EsClClp {\n constructor() {\n this.locale = \"es-cl\";\n this.dateFormat = {\n short: \"dd-MM-yyyy\",\n medium: \"dd MMMM, yyyy\",\n long: \"dddd, d 'de' MMMM 'del' yyyy\",\n };\n this.currencyFormat = {\n code: \"CLP\",\n symbol: \"CLP$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EsClClp = EsClClp;\nclass EnClUsd {\n constructor() {\n this.locale = \"en-cl\";\n this.dateFormat = {\n short: \"M/d/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnClUsd = EnClUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnCnCny = exports.ZhCnCny = void 0;\nclass ZhCnCny {\n constructor() {\n this.locale = \"zh-cn\";\n this.dateFormat = {\n short: \"yyyy/M/d\",\n medium: \"MMMM dd, yyyy\",\n long: \"yyyy'年'M'月'd'日'\",\n };\n this.currencyFormat = {\n code: \"CNY\",\n symbol: \"元\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"n C\",\n negativePattern: \"C-n\"\n };\n }\n}\nexports.ZhCnCny = ZhCnCny;\nclass EnCnCny {\n constructor() {\n this.locale = \"en-cn\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CNY\",\n symbol: \"元\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"n C\",\n negativePattern: \"-Cn\"\n };\n }\n}\nexports.EnCnCny = EnCnCny;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EsCoUsd = exports.EsCoCop = void 0;\nclass EsCoCop {\n constructor() {\n this.locale = \"es-co\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"COP\",\n symbol: \"$\",\n decimalSeparator: \"\",\n groupSeparator: \".\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\",\n };\n }\n}\nexports.EsCoCop = EsCoCop;\nclass EsCoUsd {\n constructor() {\n this.locale = \"es-co\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \"\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.EsCoUsd = EsCoUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnDeUsd = exports.EnDePln = exports.EnDeNok = exports.EnDeCzk = exports.EnDeDkk = exports.EnDeEur = exports.DeDeUsd = exports.DeDePln = exports.DeDeNok = exports.DeDeCzk = exports.DeDeDkk = exports.DeDeEur = void 0;\nclass DeDeEur {\n constructor() {\n this.locale = \"de-de\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd.MMMM yyyy\",\n long: \"dddd dd.MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.DeDeEur = DeDeEur;\nclass DeDeDkk {\n constructor() {\n this.locale = \"de-de\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd.MMMM yyyy\",\n long: \"dddd dd.MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"DKK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeDeDkk = DeDeDkk;\nclass DeDeCzk {\n constructor() {\n this.locale = \"de-de\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd.MMMM yyyy\",\n long: \"dddd dd.MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"CZK\",\n symbol: \"CZK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeDeCzk = DeDeCzk;\nclass DeDeNok {\n constructor() {\n this.locale = \"de-de\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd.MMMM yyyy\",\n long: \"dddd dd.MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"NOK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeDeNok = DeDeNok;\nclass DeDePln {\n constructor() {\n this.locale = \"de-de\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd.MMMM yyyy\",\n long: \"dddd dd.MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"PLN\",\n symbol: \"PLN\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeDePln = DeDePln;\nclass DeDeUsd {\n constructor() {\n this.locale = \"de-de\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"dd.MMMM yyyy\",\n long: \"dddd dd.MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.DeDeUsd = DeDeUsd;\nclass EnDeEur {\n constructor() {\n this.locale = \"en-de\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnDeEur = EnDeEur;\nclass EnDeDkk {\n constructor() {\n this.locale = \"en-de\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"DKK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnDeDkk = EnDeDkk;\nclass EnDeCzk {\n constructor() {\n this.locale = \"en-de\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"CZK\",\n symbol: \"CZK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnDeCzk = EnDeCzk;\nclass EnDeNok {\n constructor() {\n this.locale = \"en-de\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"NOK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnDeNok = EnDeNok;\nclass EnDePln {\n constructor() {\n this.locale = \"en-de\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"PLN\",\n symbol: \"PLN\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnDePln = EnDePln;\nclass EnDeUsd {\n constructor() {\n this.locale = \"en-de\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnDeUsd = EnDeUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnDkNok = exports.EnDkSek = exports.EnDkEur = exports.EnDkUsd = exports.EnDkDkk = void 0;\nclass EnDkDkk {\n constructor() {\n this.locale = \"en-dk\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"DKK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnDkDkk = EnDkDkk;\nclass EnDkUsd {\n constructor() {\n this.locale = \"en-dk\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnDkUsd = EnDkUsd;\nclass EnDkEur {\n constructor() {\n this.locale = \"en-dk\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnDkEur = EnDkEur;\nclass EnDkSek {\n constructor() {\n this.locale = \"en-dk\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"SEK\",\n symbol: \"SEK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnDkSek = EnDkSek;\nclass EnDkNok {\n constructor() {\n this.locale = \"en-dk\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"NOK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnDkNok = EnDkNok;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PtEsUsd = exports.PtEsEur = exports.EnEsUsd = exports.EnEsEur = exports.EsEsUsd = exports.EsEsEur = void 0;\nclass EsEsEur {\n constructor() {\n this.locale = \"es-es\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, dd MMMM, yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EsEsEur = EsEsEur;\nclass EsEsUsd {\n constructor() {\n this.locale = \"es-es\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, dd MMMM, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.EsEsUsd = EsEsUsd;\nclass EnEsEur {\n constructor() {\n this.locale = \"en-es\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, dd MMMM, yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnEsEur = EnEsEur;\nclass EnEsUsd {\n constructor() {\n this.locale = \"en-es\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, dd MMMM, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.EnEsUsd = EnEsUsd;\nclass PtEsEur {\n constructor() {\n this.locale = \"pt-es\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, dd' de 'MMMM' de 'yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.PtEsEur = PtEsEur;\nclass PtEsUsd {\n constructor() {\n this.locale = \"pt-es\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, dd' de 'MMMM' de 'yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.PtEsUsd = PtEsUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnFiNok = exports.EnFiDkk = exports.EnFiSek = exports.EnFiUsd = exports.EnFiEur = void 0;\nclass EnFiEur {\n constructor() {\n this.locale = \"en-fi\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.EnFiEur = EnFiEur;\nclass EnFiUsd {\n constructor() {\n this.locale = \"en-fi\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.EnFiUsd = EnFiUsd;\nclass EnFiSek {\n constructor() {\n this.locale = \"en-fi\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"SEK\",\n symbol: \"SEK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnFiSek = EnFiSek;\nclass EnFiDkk {\n constructor() {\n this.locale = \"en-fi\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"DKK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnFiDkk = EnFiDkk;\nclass EnFiNok {\n constructor() {\n this.locale = \"en-fi\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"NOK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnFiNok = EnFiNok;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnFrUsd = exports.EnFrEur = exports.FrFrUsd = exports.FrFrEur = void 0;\nclass FrFrEur {\n constructor() {\n this.locale = \"fr-fr\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd-MMM-yy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.FrFrEur = FrFrEur;\nclass FrFrUsd {\n constructor() {\n this.locale = \"fr-fr\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd-MMM-yy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.FrFrUsd = FrFrUsd;\nclass EnFrEur {\n constructor() {\n this.locale = \"en-fr\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd-MMM-yy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnFrEur = EnFrEur;\nclass EnFrUsd {\n constructor() {\n this.locale = \"en-fr\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd-MMM-yy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnFrUsd = EnFrUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnHkUsd = exports.EnHkHkd = void 0;\nclass EnHkHkd {\n constructor() {\n this.locale = \"en-hk\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"HKD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnHkHkd = EnHkHkd;\nclass EnHkUsd {\n constructor() {\n this.locale = \"en-hk\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnHkUsd = EnHkUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnHuUsd = exports.EnHuEur = exports.EnHuHuf = exports.HuHuUsd = exports.HuHuEur = exports.HuHuHuf = void 0;\nclass HuHuHuf {\n constructor() {\n this.locale = \"hu-hu\";\n this.dateFormat = {\n short: \"yyyy.MM.dd.\",\n medium: \"yyyy. MMMM d.\",\n long: \"yyyy. MMMM d., dddd\",\n };\n this.currencyFormat = {\n code: \"HUF\",\n symbol: \"Ft\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.HuHuHuf = HuHuHuf;\nclass HuHuEur {\n constructor() {\n this.locale = \"hu-hu\";\n this.dateFormat = {\n short: \"yyyy.MM.dd.\",\n medium: \"yyyy. MMMM d.\",\n long: \"yyyy. MMMM d., dddd\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.HuHuEur = HuHuEur;\nclass HuHuUsd {\n constructor() {\n this.locale = \"hu-hu\";\n this.dateFormat = {\n short: \"yyyy.MM.dd.\",\n medium: \"yyyy. MMMM d.\",\n long: \"yyyy. MMMM d., dddd\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.HuHuUsd = HuHuUsd;\nclass EnHuHuf {\n constructor() {\n this.locale = \"en-hu\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"HUF\",\n symbol: \"HUF\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnHuHuf = EnHuHuf;\nclass EnHuEur {\n constructor() {\n this.locale = \"en-hu\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnHuEur = EnHuEur;\nclass EnHuUsd {\n constructor() {\n this.locale = \"en-hu\";\n this.dateFormat = {\n short: \"dd.MM.yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnHuUsd = EnHuUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnIdIdr = exports.IdIdIdr = void 0;\nclass IdIdIdr {\n constructor() {\n this.locale = \"id-id\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"d MMMM yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"IDR\",\n symbol: \"Rp\",\n decimalSeparator: \"\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.IdIdIdr = IdIdIdr;\nclass EnIdIdr {\n constructor() {\n this.locale = \"en-id\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"d MMMM yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"IDR\",\n symbol: \"Rp\",\n decimalSeparator: \"\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnIdIdr = EnIdIdr;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HiInUsd = exports.HiInInr = exports.EnInUsd = exports.EnInInr = void 0;\nclass EnInInr {\n constructor() {\n this.locale = \"en-in\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"INR\",\n symbol: \"₹\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.EnInInr = EnInInr;\nclass EnInUsd {\n constructor() {\n this.locale = \"en-in\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.EnInUsd = EnInUsd;\nclass HiInInr {\n constructor() {\n this.locale = \"hi-in\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"INR\",\n symbol: \"₹\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.HiInInr = HiInInr;\nclass HiInUsd {\n constructor() {\n this.locale = \"hi-in\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.HiInUsd = HiInUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnItUsd = exports.EnItEur = exports.ItItUsd = exports.ItItEur = void 0;\nclass ItItEur {\n constructor() {\n this.locale = \"it-it\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.ItItEur = ItItEur;\nclass ItItUsd {\n constructor() {\n this.locale = \"it-it\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.ItItUsd = ItItUsd;\nclass EnItEur {\n constructor() {\n this.locale = \"en-it\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.EnItEur = EnItEur;\nclass EnItUsd {\n constructor() {\n this.locale = \"en-it\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\",\n };\n }\n}\nexports.EnItUsd = EnItUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnMxUsd = exports.EnMxMxn = exports.EnMxMxp = exports.EsMxUsd = exports.EsMxMxn = exports.EsMxMxp = void 0;\nclass EsMxMxp {\n constructor() {\n this.locale = \"es-mx\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"MXP\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\",\n };\n }\n}\nexports.EsMxMxp = EsMxMxp;\nclass EsMxMxn {\n constructor() {\n this.locale = \"es-mx\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"MXN\",\n symbol: \"MXN $\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\",\n };\n }\n}\nexports.EsMxMxn = EsMxMxn;\nclass EsMxUsd {\n constructor() {\n this.locale = \"es-mx\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD $\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\",\n };\n }\n}\nexports.EsMxUsd = EsMxUsd;\nclass EnMxMxp {\n constructor() {\n this.locale = \"en-mx\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"MXP\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\",\n };\n }\n}\nexports.EnMxMxp = EnMxMxp;\nclass EnMxMxn {\n constructor() {\n this.locale = \"en-mx\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"MXN\",\n symbol: \"MXN $\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\",\n };\n }\n}\nexports.EnMxMxn = EnMxMxn;\nclass EnMxUsd {\n constructor() {\n this.locale = \"en-mx\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD $\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\",\n };\n }\n}\nexports.EnMxUsd = EnMxUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnMyUsd = exports.EnMyMyr = void 0;\nclass EnMyMyr {\n constructor() {\n this.locale = \"en-my\";\n this.dateFormat = {\n short: \"d/M/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM, yyyy\",\n };\n this.currencyFormat = {\n code: \"MYR\",\n symbol: \"RM\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnMyMyr = EnMyMyr;\nclass EnMyUsd {\n constructor() {\n this.locale = \"en-my\";\n this.dateFormat = {\n short: \"d/M/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnMyUsd = EnMyUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnNlUsd = exports.EnNlEur = exports.NlNlUsd = exports.NlNlEur = void 0;\nclass NlNlEur {\n constructor() {\n this.locale = \"nl-nl\";\n this.dateFormat = {\n short: \"dd-MM-yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.NlNlEur = NlNlEur;\nclass NlNlUsd {\n constructor() {\n this.locale = \"nl-nl\";\n this.dateFormat = {\n short: \"dd-MM-yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.NlNlUsd = NlNlUsd;\nclass EnNlEur {\n constructor() {\n this.locale = \"en-nl\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnNlEur = EnNlEur;\nclass EnNlUsd {\n constructor() {\n this.locale = \"en-nl\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM yyyy\",\n long: \"dddd d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnNlUsd = EnNlUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnNoUsd = exports.EnNoNok = exports.EnNoDkk = exports.EnNoSek = exports.EnNoEur = void 0;\nclass EnNoEur {\n constructor() {\n this.locale = \"en-no\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.EnNoEur = EnNoEur;\nclass EnNoSek {\n constructor() {\n this.locale = \"en-no\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"SEK\",\n symbol: \"SEK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnNoSek = EnNoSek;\nclass EnNoDkk {\n constructor() {\n this.locale = \"en-no\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"DKK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnNoDkk = EnNoDkk;\nclass EnNoNok {\n constructor() {\n this.locale = \"en-no\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"NOK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\",\n };\n }\n}\nexports.EnNoNok = EnNoNok;\nclass EnNoUsd {\n constructor() {\n this.locale = \"en-no\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\",\n };\n }\n}\nexports.EnNoUsd = EnNoUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnNzAud = exports.EnNzUsd = exports.EnNzNzd = void 0;\nclass EnNzNzd {\n constructor() {\n this.locale = \"en-nz\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM, yyyy\",\n long: \"dddd, dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NZD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnNzNzd = EnNzNzd;\nclass EnNzUsd {\n constructor() {\n this.locale = \"en-nz\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM, yyyy\",\n long: \"dddd, dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnNzUsd = EnNzUsd;\nclass EnNzAud {\n constructor() {\n this.locale = \"en-nz\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"dd MMMM, yyyy\",\n long: \"dddd, dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"AUD\",\n symbol: \"AU$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnNzAud = EnNzAud;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnPePen = exports.EnPeUsd = exports.EsPePen = exports.EsPeUsd = void 0;\nclass EsPeUsd {\n constructor() {\n this.locale = \"es-pe\";\n this.dateFormat = {\n short: \"d/MM/yyyy\",\n medium: \"dd de MMMM de yyyy\",\n long: \"dddd, d de MMMM de yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EsPeUsd = EsPeUsd;\nclass EsPePen {\n constructor() {\n this.locale = \"es-pe\";\n this.dateFormat = {\n short: \"d/MM/yyyy\",\n medium: \"dd de MMMM de yyyy\",\n long: \"dddd, d de MMMM de yyyy\",\n };\n this.currencyFormat = {\n code: \"PEN\",\n symbol: \"S/\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"-Cn\"\n };\n }\n}\nexports.EsPePen = EsPePen;\nclass EnPeUsd {\n constructor() {\n this.locale = \"en-pe\";\n this.dateFormat = {\n short: \"M/d/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnPeUsd = EnPeUsd;\nclass EnPePen {\n constructor() {\n this.locale = \"en-pe\";\n this.dateFormat = {\n short: \"M/d/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"PEN\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\"\n };\n }\n}\nexports.EnPePen = EnPePen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnPtUsd = exports.EnPtEur = exports.PtPtUsd = exports.PtPtEur = void 0;\nclass PtPtEur {\n constructor() {\n this.locale = \"pt-pt\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d de MMMM de yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \" \",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.PtPtEur = PtPtEur;\nclass PtPtUsd {\n constructor() {\n this.locale = \"pt-pt\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d de MMMM de yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.PtPtUsd = PtPtUsd;\nclass EnPtEur {\n constructor() {\n this.locale = \"en-pt\";\n this.dateFormat = {\n short: \"dd-MM-yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnPtEur = EnPtEur;\nclass EnPtUsd {\n constructor() {\n this.locale = \"en-pt\";\n this.dateFormat = {\n short: \"dd-MM-yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnPtUsd = EnPtUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeSeNok = exports.SeSeDkk = exports.SeSeSek = exports.SvSeUsd = exports.SvSeNok = exports.SvSeDkk = exports.SvSeSek = exports.SvSeEur = exports.EnSeUsd = exports.EnSeNok = exports.EnSeDkk = exports.EnSeSek = exports.EnSeEur = void 0;\nclass EnSeEur {\n constructor() {\n this.locale = \"en-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnSeEur = EnSeEur;\nclass EnSeSek {\n constructor() {\n this.locale = \"en-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"SEK\",\n symbol: \"SEK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnSeSek = EnSeSek;\nclass EnSeDkk {\n constructor() {\n this.locale = \"en-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"DKK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnSeDkk = EnSeDkk;\nclass EnSeNok {\n constructor() {\n this.locale = \"en-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"NOK\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.EnSeNok = EnSeNok;\nclass EnSeUsd {\n constructor() {\n this.locale = \"en-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnSeUsd = EnSeUsd;\nclass SvSeEur {\n constructor() {\n this.locale = \"sv-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"'den 'd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"€\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.SvSeEur = SvSeEur;\nclass SvSeSek {\n constructor() {\n this.locale = \"sv-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"'den 'd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"SEK\",\n symbol: \"kr\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SvSeSek = SvSeSek;\nclass SvSeDkk {\n constructor() {\n this.locale = \"sv-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"'den 'd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"kr\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SvSeDkk = SvSeDkk;\nclass SvSeNok {\n constructor() {\n this.locale = \"sv-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"'den 'd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"kr\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SvSeNok = SvSeNok;\nclass SvSeUsd {\n constructor() {\n this.locale = \"sv-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"'den 'd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SvSeUsd = SvSeUsd;\nclass SeSeSek {\n constructor() {\n this.locale = \"se-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM d'. b. 'yyyy\",\n };\n this.currencyFormat = {\n code: \"SEK\",\n symbol: \"kr\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SeSeSek = SeSeSek;\nclass SeSeDkk {\n constructor() {\n this.locale = \"se-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM d'. b. 'yyyy\",\n };\n this.currencyFormat = {\n code: \"DKK\",\n symbol: \"kr\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SeSeDkk = SeSeDkk;\nclass SeSeNok {\n constructor() {\n this.locale = \"se-se\";\n this.dateFormat = {\n short: \"yyyy-MM-dd\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM d'. b. 'yyyy\",\n };\n this.currencyFormat = {\n code: \"NOK\",\n symbol: \"kr\",\n decimalSeparator: \",\",\n groupSeparator: \".\",\n positivePattern: \"n C\",\n negativePattern: \"-n C\"\n };\n }\n}\nexports.SeSeNok = SeSeNok;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnSgJpy = exports.EnSgEur = exports.EnSgUsd = exports.EnSgSgd = void 0;\nclass EnSgSgd {\n constructor() {\n this.locale = \"en-sg\";\n this.dateFormat = {\n short: \"d/M/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"SGD\",\n symbol: \"SG$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnSgSgd = EnSgSgd;\nclass EnSgUsd {\n constructor() {\n this.locale = \"en-sg\";\n this.dateFormat = {\n short: \"d/M/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"US$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnSgUsd = EnSgUsd;\nclass EnSgEur {\n constructor() {\n this.locale = \"en-sg\";\n this.dateFormat = {\n short: \"d/M/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"EUR\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnSgEur = EnSgEur;\nclass EnSgJpy {\n constructor() {\n this.locale = \"en-sg\";\n this.dateFormat = {\n short: \"d/M/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"JPY\",\n symbol: \"JP¥\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnSgJpy = EnSgJpy;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThThThb = exports.EnThThb = void 0;\nclass EnThThb {\n constructor() {\n this.locale = \"en-th\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"d MMMM yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"THB\",\n symbol: \"THB\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.EnThThb = EnThThb;\nclass ThThThb {\n constructor() {\n this.locale = \"th-th\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"d MMMM yyyy\",\n long: \"dddd, d MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"THB\",\n symbol: \"THB\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"C -n\"\n };\n }\n}\nexports.ThThThb = ThThThb;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnGbUsd = exports.EnGbEur = exports.EnGbGbp = void 0;\nclass EnGbGbp {\n constructor() {\n this.locale = \"en-gb\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"GBP\",\n symbol: \"£\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnGbGbp = EnGbGbp;\nclass EnGbEur {\n constructor() {\n this.locale = \"en-gb\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"EUR\",\n symbol: \"EUR\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnGbEur = EnGbEur;\nclass EnGbUsd {\n constructor() {\n this.locale = \"en-gb\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dd MMMM yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"USD\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"C n\",\n negativePattern: \"-C n\"\n };\n }\n}\nexports.EnGbUsd = EnGbUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnUsUsd = void 0;\nclass EnUsUsd {\n constructor() {\n this.locale = \"en-us\";\n this.dateFormat = {\n short: \"MM/dd/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\"\n };\n }\n}\nexports.EnUsUsd = EnUsUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EsUsmeUsd = exports.EnUsmeUsd = void 0;\nclass EnUsmeUsd {\n constructor() {\n this.locale = \"en-usme\";\n this.dateFormat = {\n short: \"M/d/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\"\n };\n }\n}\nexports.EnUsmeUsd = EnUsmeUsd;\nclass EsUsmeUsd {\n constructor() {\n this.locale = \"es-usme\";\n this.dateFormat = {\n short: \"dd/MM/yyyy\",\n medium: \"MMMM dd, yyyy\",\n long: \"dddd, MMMM dd, yyyy\",\n };\n this.currencyFormat = {\n code: \"USD\",\n symbol: \"$\",\n decimalSeparator: \".\",\n groupSeparator: \",\",\n positivePattern: \"Cn\",\n negativePattern: \"(Cn)\"\n };\n }\n}\nexports.EsUsmeUsd = EsUsmeUsd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConstantProvider = void 0;\nconst day_names_1 = require(\"./../constant-values/day-names\");\nconst month_names_1 = require(\"./../constant-values/month-names\");\nclass ConstantProvider {\n static getDayNames(locale) {\n if (locale in day_names_1.DayNames)\n return day_names_1.DayNames[locale];\n else\n return day_names_1.DayNames[\"default\"];\n }\n static getMonthNames(locale) {\n if (locale in month_names_1.MonthNames)\n return month_names_1.MonthNames[locale];\n else\n return month_names_1.MonthNames[\"default\"];\n }\n}\nexports.ConstantProvider = ConstantProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CultureProvider = void 0;\nconst all_cultures_1 = require(\"../im-cultures/all-cultures\");\nclass CultureProvider {\n static getCultureByLocaleCurrency(locale, currency) {\n if (locale)\n locale = locale.toLowerCase();\n if (currency)\n currency = currency.toLocaleUpperCase();\n let currencyCultures = all_cultures_1.AllCultures[locale];\n if (currencyCultures) {\n let culture;\n if (currency) {\n culture = currencyCultures[currency];\n }\n else {\n culture = currencyCultures[Object.keys(currencyCultures)[0]];\n }\n if (culture) {\n return culture;\n }\n }\n throw new Error(`Unknown locale/currency combination ${locale}/${currency}`);\n }\n static getAllCurrenciesByLocale(locale) {\n if (locale)\n locale = locale.toLowerCase();\n let currencyCultures = all_cultures_1.AllCultures[locale];\n if (currencyCultures) {\n return Object.keys(currencyCultures);\n }\n throw new Error(`Unknown locale ${locale}`);\n }\n}\nexports.CultureProvider = CultureProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImApiTranslator = void 0;\nconst im_translator_1 = require(\"./im-translator\");\nclass ImApiTranslator extends im_translator_1.ImTranslator {\n constructor(resourceLoader, locale, fallbackLocale) {\n super(locale, !!resourceLoader.showLogs);\n this.resourceLoader = resourceLoader;\n this.fallbackLocale = fallbackLocale;\n }\n fetchResource(resource) {\n let url = `${this.resourceLoader.url}/${resource}` + (this.fallbackLocale ? `?fallbackLocale=${this.fallbackLocale}` : '');\n if (resource === '*') {\n url = `${url}${url.includes('?') ? '&' : '?'}flattenResponse=false`;\n }\n const fetchOptions = {\n method: 'GET',\n headers: Object.assign({ 'IM-SenderID': this.resourceLoader.appName, 'IM-AcceptLanguage': this.locale, 'Accept-Language': this.locale }, this.resourceLoader.headers)\n };\n if (!!this.resourceLoader.isEditingEnabled) {\n fetchOptions.cache = \"no-store\";\n }\n return fetch(url, fetchOptions);\n }\n loadTranslations(resource) {\n let loader = this.loaders[resource];\n if (!loader) {\n loader = this.loaders[resource] =\n new Promise((resolve, reject) => {\n this.fetchResource(resource)\n .then((response) => {\n if (response.ok) {\n return response.json();\n }\n this.translations[resource] = {};\n console.error(`Failed to load '${resource}' resource for '${this.locale}' locale. Response status - ${response.status}`);\n reject();\n })\n .then((data) => {\n if (resource === '*') {\n for (const res in data) {\n if (!this.loaders[res]) {\n this.translations[res] = data[res];\n }\n }\n }\n else {\n this.translations[resource] = data;\n }\n resolve();\n })\n .catch(err => {\n this.translations[resource] = {};\n console.error(`Failed to load '${resource}' resource for '${this.locale}' locale. Check if service is available.`);\n reject();\n });\n });\n }\n return loader;\n }\n translate(key, interpolateParams, returnKeyIfNotFound = true) {\n const resource = this._getResourceName(key);\n return this._translate(resource, key, interpolateParams, returnKeyIfNotFound);\n }\n translateInstant(key, interpolateParams, returnKeyIfNotFound = true) {\n const resource = this._getResourceName(key);\n return this._translateInstant(resource, key, interpolateParams, returnKeyIfNotFound);\n }\n _getResourceName(key) {\n let _resource = 'Common';\n if (typeof key === 'string') {\n if (key.includes('.')) {\n _resource = key.split('.')[0];\n }\n }\n else {\n if (key[0].includes('.')) {\n _resource = key[0].split('.')[0];\n }\n }\n return _resource;\n }\n}\nexports.ImApiTranslator = ImApiTranslator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImCurrencyFormatter = void 0;\nconst short_currency_notations_1 = require(\"../cultures/constant-values/short-currency-notations\");\nclass ImCurrencyFormatter {\n constructor(currencyFormat) {\n this._currencyFormat = currencyFormat;\n }\n format(amount) {\n const currencyPattern = amount < 0 ? this._currencyFormat.negativePattern : this._currencyFormat.positivePattern;\n return this.getCurrency(amount, this._currencyFormat.groupSeparator, this._currencyFormat.decimalSeparator, currencyPattern, this._currencyFormat.symbol);\n }\n formatByCurrencyCode(amount, currencyFormat) {\n const currencyPattern = amount < 0 ? currencyFormat.negativePattern : currencyFormat.positivePattern;\n return this.getCurrency(amount, currencyFormat.groupSeparator, currencyFormat.decimalSeparator, currencyPattern, currencyFormat.symbol);\n }\n formatToShort(amount, locale, currencyFormat = null) {\n const _currencyFormat = currencyFormat || this._currencyFormat;\n return this.getShortCurrencyFormat(amount, locale, _currencyFormat);\n }\n formatToShortByCode(amount, locale, currencyFormat) {\n return this.getShortCurrencyFormat(amount, locale, currencyFormat);\n }\n getShortCurrencyFormat(amount, locale, currencyFormat) {\n var _a, _b, _c;\n const currencyPattern = amount < 0 ? currencyFormat.negativePattern : currencyFormat.positivePattern;\n if ((amount % 1) != 0) {\n amount = amount < 0 ? Math.ceil(amount) : Math.floor(amount);\n }\n let num = (amount < 0 ? amount * -1 : amount);\n const i = Math.pow(10, Math.max(0, Math.log10(num) - 2));\n num = num / i * i;\n let currency = this.getCurrency(this.getShortCurrencyAmount(amount >= 1000000 ? num : amount), currencyFormat.groupSeparator, currencyFormat.decimalSeparator, currencyPattern, currencyFormat.symbol);\n if (num >= 1000000000)\n return this.convertToKMB(locale, currency, num / 1000000000, (_a = short_currency_notations_1.BillionsNotation[locale]) !== null && _a !== void 0 ? _a : short_currency_notations_1.BillionsNotation[\"default\"]);\n if (num >= 1000000)\n return this.convertToKMB(locale, currency, num / 1000000, (_b = short_currency_notations_1.MillionsNotation[locale]) !== null && _b !== void 0 ? _b : short_currency_notations_1.MillionsNotation[\"default\"]);\n if (num >= 1000)\n return this.convertToKMB(locale, currency, num / 1000, (_c = short_currency_notations_1.ThousandsNotation[locale]) !== null && _c !== void 0 ? _c : short_currency_notations_1.ThousandsNotation[\"default\"]);\n return currency;\n }\n convertToKMB(locale, value, amount, kbm) {\n const str = value.replace(\",\", \"\").replace(\".\", \"\");\n const strAmt = str.split('').filter(c => /\\d/.test(c)).join('');\n return str.replace(strAmt, `${amount.toLocaleString(locale, { maximumFractionDigits: 2, minimumFractionDigits: 2 })}${kbm}`);\n }\n getShortCurrencyAmount(amount) {\n if (amount >= 1000000000)\n return amount / 1000000000;\n else if (amount >= 1000000)\n return amount / 1000000;\n else if (amount >= 1000)\n return amount / 1000;\n return amount;\n }\n getCurrency(amount, groupSeparator, decimalSeparator, pattern, symbol) {\n if (isNaN(amount))\n return '';\n let formattedAmount = decimalSeparator ? Math.abs(amount).toFixed(2) : Math.floor(Math.abs(amount)).toString();\n if (decimalSeparator != \"\" && decimalSeparator != \".\") {\n formattedAmount = formattedAmount.replace('.', decimalSeparator);\n }\n formattedAmount = formattedAmount.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n return pattern.replace('n', formattedAmount).replace('C', symbol);\n }\n}\nexports.ImCurrencyFormatter = ImCurrencyFormatter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImDateFormatter = void 0;\nconst constant_provider_1 = require(\"./../cultures/providers/constant-provider\");\nclass ImDateFormatter {\n constructor(locale) {\n this._dayNames = constant_provider_1.ConstantProvider.getDayNames(locale);\n this._monthNames = constant_provider_1.ConstantProvider.getMonthNames(locale);\n }\n format(date, dateFormat) {\n if (isNaN(date.getTime()))\n return '';\n date = this.getIsoDate(date);\n let formattedDate = dateFormat;\n let replaceValues = {};\n if (formattedDate.includes('ddd')) {\n const formatDay = this.getDay(date, formattedDate);\n formattedDate = formattedDate.replace(formatDay.format, '');\n replaceValues[''] = formatDay.value;\n }\n if (formattedDate.includes('M')) {\n const formatMonth = this.getMonth(date, formattedDate);\n formattedDate = formattedDate.replace(formatMonth.format, '');\n replaceValues[''] = formatMonth.value;\n }\n if (formattedDate.includes('yy')) {\n const formatYear = this.getYear(date, formattedDate);\n formattedDate = formattedDate.replace(formatYear.format, formatYear.value);\n }\n if (formattedDate.includes('d')) {\n const formatDate = this.getDate(date, formattedDate);\n formattedDate = formattedDate.replace(formatDate.format, formatDate.value);\n }\n if (formattedDate.includes('h') || formattedDate.includes('H')) {\n const formatDate = this.getHours(date, formattedDate);\n formattedDate = formattedDate.replace(formatDate.format, formatDate.value);\n }\n if (formattedDate.includes('m')) {\n const formatDate = this.getMinutes(date, formattedDate);\n formattedDate = formattedDate.replace(formatDate.format, formatDate.value);\n }\n if (formattedDate.includes('s')) {\n const formatDate = this.getSeconds(date, formattedDate);\n formattedDate = formattedDate.replace(formatDate.format, formatDate.value);\n }\n if (formattedDate.includes('tt')) {\n const formatDate = this.getAmPm(date);\n formattedDate = formattedDate.replace(formatDate.format, formatDate.value);\n }\n for (const prop in replaceValues) {\n formattedDate = formattedDate.replace(prop, replaceValues[prop]);\n }\n return formattedDate;\n }\n getDate(date, dateFormat) {\n let strDate = date.getDate().toString();\n let format = dateFormat.includes('dd') ? 'dd' : 'd';\n if (strDate.length == 1 && format.length == 2) {\n strDate = '0' + strDate;\n }\n return { format: format, value: strDate };\n }\n getMonth(date, dateFormat) {\n const month = date.getMonth();\n let strMonth = (month + 1).toString();\n let format = 'M';\n if (dateFormat.includes('MMMM')) {\n format = 'MMMM';\n strMonth = this._monthNames[month];\n }\n else if (dateFormat.includes('MMM')) {\n format = 'MMM';\n strMonth = this._monthNames[month].substring(0, 3);\n }\n else if (dateFormat.includes('MM')) {\n format = 'MM';\n if (strMonth.length == 1)\n strMonth = '0' + strMonth;\n }\n return { format: format, value: strMonth };\n }\n getYear(date, dateFormat) {\n let strYear = date.getFullYear().toString();\n let format = 'yy';\n if (dateFormat.includes('yyyy')) {\n format = 'yyyy';\n }\n else {\n strYear = strYear.slice(-2);\n }\n return { format: format, value: strYear };\n }\n getDay(date, dateFormat) {\n let dayName = this._dayNames[date.getDay()];\n const format = dateFormat.includes('dddd') ? 'dddd' : 'ddd';\n if (format === 'ddd')\n dayName = dayName.substring(0, 3);\n return { format: format, value: dayName };\n }\n getHours(date, dateFormat) {\n const hours = date.getHours();\n let strHours = hours.toString();\n let format = dateFormat.includes('hh') ? 'hh' : 'h';\n if (dateFormat.includes('H')) {\n format = dateFormat.includes('HH') ? 'HH' : 'H';\n }\n else {\n strHours = ((hours % 12) || 12).toString();\n }\n if (strHours.length == 1 && format.length == 2) {\n strHours = '0' + strHours;\n }\n return { format: format, value: strHours };\n }\n getMinutes(date, dateFormat) {\n let strMinutes = date.getMinutes().toString();\n let format = dateFormat.includes('mm') ? 'mm' : 'm';\n if (strMinutes.length == 1 && format.length == 2) {\n strMinutes = '0' + strMinutes;\n }\n return { format: format, value: strMinutes };\n }\n getSeconds(date, dateFormat) {\n let strSeconds = date.getSeconds().toString();\n let format = dateFormat.includes('ss') ? 'ss' : 's';\n if (strSeconds.length == 1 && format.length == 2) {\n strSeconds = '0' + strSeconds;\n }\n return { format: format, value: strSeconds };\n }\n getAmPm(date) {\n let hours = date.getHours();\n let am_pm = hours >= 12 ? 'pm' : 'am';\n return { format: 'tt', value: am_pm };\n }\n getIsoDate(date) {\n if (date.getTimezoneOffset() > 0 && date.toISOString().includes('T00:00:00.000Z')) {\n date.setMinutes(date.getMinutes() + date.getTimezoneOffset());\n }\n return date;\n }\n}\nexports.ImDateFormatter = ImDateFormatter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImFileTranslator = void 0;\nconst im_translator_1 = require(\"./im-translator\");\nclass ImFileTranslator extends im_translator_1.ImTranslator {\n constructor(resourceLoader, locale) {\n super(locale, !!resourceLoader.showLogs);\n this.resourceLoader = resourceLoader;\n }\n fetchResource(resource) {\n const url = `${this.resourceLoader.url}/${resource}.json`;\n const fetchOptions = { method: 'GET' };\n if (!!this.resourceLoader.isEditingEnabled) {\n fetchOptions.cache = \"no-store\";\n }\n return fetch(url, fetchOptions);\n }\n loadTranslations(resource) {\n let loader = this.loaders[resource];\n if (!loader) {\n loader = this.loaders[resource] =\n new Promise((resolve, reject) => {\n this.fetchResource(resource)\n .then((response) => {\n if (response.ok) {\n return response.json();\n }\n this.translations[resource] = {};\n console.error(`Failed to load '${resource}' resource. Response status - ${response.status}`);\n reject();\n })\n .then((data) => {\n this.translations[resource] = this.flattenJSON(data);\n resolve();\n })\n .catch(err => {\n this.translations[resource] = {};\n console.error(`Failed to load '${resource}' resource. Check if service is available.`);\n reject();\n });\n });\n }\n return loader;\n }\n translate(key, interpolateParams, returnKeyIfNotFound = true) {\n return this._translate(this.locale, key, interpolateParams, returnKeyIfNotFound);\n }\n translateInstant(key, interpolateParams, returnKeyIfNotFound = true) {\n return this._translateInstant(this.locale, key, interpolateParams, returnKeyIfNotFound);\n }\n flattenJSON(obj = {}, res = {}, extraKey = '') {\n for (const key in obj) {\n if (typeof obj[key] !== 'object') {\n res[extraKey + key] = obj[key];\n }\n else {\n this.flattenJSON(obj[key], res, `${extraKey}${key}.`);\n }\n }\n return res;\n }\n}\nexports.ImFileTranslator = ImFileTranslator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImTranslator = void 0;\nclass ImTranslator {\n constructor(locale, showLogs) {\n this.locale = locale;\n this.showLogs = showLogs;\n this.translations = {};\n this.loaders = {};\n }\n _translate(resource, key, interpolateParams, returnKeyIfNotFound = true) {\n return new Promise((resolve, reject) => {\n if (this.translations[resource]) {\n const res = this.getValue(returnKeyIfNotFound, resource, key, interpolateParams);\n resolve(res);\n }\n else {\n this.loadTranslations(resource)\n .then(() => {\n const res = this.getValue(returnKeyIfNotFound, resource, key, interpolateParams);\n resolve(res);\n })\n .catch(err => {\n const res = this.getValue(returnKeyIfNotFound, resource, key, interpolateParams);\n resolve(res);\n });\n }\n });\n }\n _translateInstant(resource, key, interpolateParams, returnKeyIfNotFound = true) {\n return this.getValue(returnKeyIfNotFound, resource, key, interpolateParams, true);\n }\n getValue(returnKeyIfNotFound, resource, key, interpolateParams, isInstantRequest = false) {\n const translations = this.translations[resource];\n let response;\n if (typeof key === 'string') {\n response = translations ? this.getSingleValue(returnKeyIfNotFound, translations, key, resource, isInstantRequest, interpolateParams) : this.getNotFoundResponse(returnKeyIfNotFound, key, resource, isInstantRequest);\n }\n else {\n response = {};\n key.forEach(k => {\n response[k] = translations ? this.getSingleValue(returnKeyIfNotFound, translations, k, resource, isInstantRequest, interpolateParams) : this.getNotFoundResponse(returnKeyIfNotFound, k, resource, isInstantRequest);\n });\n }\n return response;\n }\n getSingleValue(returnKeyIfNotFound, translations, key, resource, isInstantRequest, interpolateParams) {\n let response = translations[key] || undefined;\n if (response !== undefined) {\n if (interpolateParams) {\n response = this.interpolateString(response, interpolateParams);\n }\n }\n else {\n response = this.getNotFoundResponse(returnKeyIfNotFound, key, resource, isInstantRequest);\n }\n return response;\n }\n getNotFoundResponse(returnKeyIfNotFound, key, resource, isInstantRequest) {\n if (this.showLogs) {\n this.logMissingError(key, resource, isInstantRequest);\n }\n return returnKeyIfNotFound ? key : undefined;\n }\n interpolateString(expr, params) {\n for (const key in params) {\n expr = expr.replace(`{{${key}}}`, params[key]);\n }\n return expr;\n }\n logMissingError(key, resource, isInstantRequest) {\n if (isInstantRequest) {\n if (this.translations.hasOwnProperty(resource)) {\n console.warn(`Failed to instantly translate '${key}' key for ${this.locale} locale`);\n }\n }\n else {\n console.warn(`Failed to translate '${key}' key for ${this.locale} locale`);\n }\n }\n}\nexports.ImTranslator = ImTranslator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImLocalizationService = void 0;\nvar im_localization_service_1 = require(\"./services/im-localization-service\");\nObject.defineProperty(exports, \"ImLocalizationService\", { enumerable: true, get: function () { return im_localization_service_1.ImLocalizationService; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImLocalizationService = void 0;\nconst im_culture_provider_1 = require(\"../cultures/providers/im-culture-provider\");\nconst im_currency_formatter_1 = require(\"../features/im-currency-formatter\");\nconst im_date_formatter_1 = require(\"../features/im-date-formatter\");\nconst im_api_translator_1 = require(\"../features/im-api-translator\");\nconst im_file_translator_1 = require(\"../features/im-file-translator\");\nclass ImLocalizationService {\n constructor(config) {\n this._culture = im_culture_provider_1.CultureProvider.getCultureByLocaleCurrency(config.useLocale, config.currencyCode);\n this._currencyFormatter = new im_currency_formatter_1.ImCurrencyFormatter(this._culture.currencyFormat);\n this._dateFormatter = new im_date_formatter_1.ImDateFormatter(this._culture.locale);\n if (!!config.resourceLoader.useApi) {\n this._translator = new im_api_translator_1.ImApiTranslator(config.resourceLoader, this._culture.locale, config.fallbackLocale);\n }\n else {\n this._translator = new im_file_translator_1.ImFileTranslator(config.resourceLoader, this._culture.locale);\n if (config.fallbackLocale && config.fallbackLocale.toLowerCase() !== config.useLocale.toLowerCase()) {\n this._baseTranslator = new im_file_translator_1.ImFileTranslator(config.resourceLoader, config.fallbackLocale);\n }\n }\n if (config.preloadResources) {\n config.preloadResources.map((resource) => {\n this._translator.loadTranslations(resource);\n });\n }\n config.useLocale = this._culture.locale;\n this._config = config;\n }\n updateCulture(locale, currencyCode) {\n this._culture = im_culture_provider_1.CultureProvider.getCultureByLocaleCurrency(locale, currencyCode);\n if (this._config.useLocale !== this._culture.locale) {\n this._config.useLocale = this._culture.locale;\n if (this._config.resourceLoader.useApi === false)\n this._translator = new im_file_translator_1.ImFileTranslator(this._config.resourceLoader, this._culture.locale);\n else\n this._translator = new im_api_translator_1.ImApiTranslator(this._config.resourceLoader, this._culture.locale);\n if (this._config.preloadResources) {\n this._config.preloadResources.map((resource) => {\n this._translator.loadTranslations(resource);\n });\n }\n }\n }\n updateCurrency(currencyCode) {\n this._culture = im_culture_provider_1.CultureProvider.getCultureByLocaleCurrency(this._config.useLocale, currencyCode);\n this._currencyFormatter = new im_currency_formatter_1.ImCurrencyFormatter(this._culture.currencyFormat);\n }\n formatCurrency(amount) {\n return this._currencyFormatter.format(amount);\n }\n formatCurrencyByCode(amount, currencyCode) {\n const culture = im_culture_provider_1.CultureProvider.getCultureByLocaleCurrency(this._culture.locale, currencyCode);\n return this._currencyFormatter.formatByCurrencyCode(amount, culture.currencyFormat);\n }\n formatToShortCurrency(amount) {\n if (this._culture == null) {\n throw new Error(\"Culture is not setup. Use SetCulture method to setup\");\n }\n return this._currencyFormatter.formatToShort(amount, this._culture.locale);\n }\n formatToShortCurrencyByCode(amount, currencyCode) {\n if (this._culture == null) {\n throw new Error(\"Culture is not setup. Use SetCulture method to setup\");\n }\n else if (currencyCode.trim() === '') {\n throw new Error(\"Currency code is missing\");\n }\n const culture = im_culture_provider_1.CultureProvider.getCultureByLocaleCurrency(this._culture.locale, currencyCode);\n return this._currencyFormatter.formatToShortByCode(amount, this._culture.locale, culture.currencyFormat);\n }\n formatDate(date, options) {\n let dateFormat = this._culture.dateFormat.short;\n if (options === null || options === void 0 ? void 0 : options.dateFormat) {\n if (options.dateFormat === \"short\")\n dateFormat = this._culture.dateFormat.short;\n else if (options.dateFormat === \"medium\")\n dateFormat = this._culture.dateFormat.medium;\n else if (options.dateFormat === \"long\")\n dateFormat = this._culture.dateFormat.long;\n else\n dateFormat = options.dateFormat;\n }\n return this._dateFormatter.format(date, dateFormat);\n }\n translate(key, options) {\n const returnKeyIfNotFound = options ? options.returnKeyIfNotFound : true;\n return new Promise((resolve, reject) => {\n this._translator.translate(key, options === null || options === void 0 ? void 0 : options.interpolateParams, (!this._baseTranslator && returnKeyIfNotFound))\n .then((value) => {\n if (typeof key === 'string') {\n if (value === undefined) {\n if (this._baseTranslator) {\n this._baseTranslator.translate(key, options === null || options === void 0 ? void 0 : options.interpolateParams, returnKeyIfNotFound)\n .then((pending_value) => {\n if (pending_value === undefined && returnKeyIfNotFound) {\n resolve(key);\n }\n else {\n resolve(pending_value);\n }\n })\n .catch(err => {\n reject();\n });\n }\n else {\n resolve(returnKeyIfNotFound ? key : value);\n }\n }\n else {\n resolve(value);\n }\n }\n else {\n const pendingKeys = [];\n for (const k in value) {\n if (value[k] === undefined) {\n if (this._baseTranslator) {\n pendingKeys.push(k);\n }\n if (returnKeyIfNotFound) {\n value[k] = k;\n }\n }\n }\n if (pendingKeys.length > 0) {\n this._baseTranslator.translate(pendingKeys, options === null || options === void 0 ? void 0 : options.interpolateParams, returnKeyIfNotFound)\n .then((pending_value) => {\n for (const k in pending_value) {\n if (pending_value[k]) {\n value[k] = pending_value[k];\n }\n }\n resolve(value);\n })\n .catch(err => {\n reject();\n });\n }\n resolve(value);\n }\n })\n .catch(err => {\n reject();\n });\n });\n }\n translateInstant(key, options) {\n const returnKeyIfNotFound = options ? options.returnKeyIfNotFound : true;\n const value = this._translator.translateInstant(key, options === null || options === void 0 ? void 0 : options.interpolateParams, (!this._baseTranslator && returnKeyIfNotFound));\n if (typeof key === 'string') {\n if (value === undefined) {\n if (this._baseTranslator) {\n const pending_value = this._baseTranslator.translateInstant(key, options === null || options === void 0 ? void 0 : options.interpolateParams, returnKeyIfNotFound);\n if (pending_value === undefined && returnKeyIfNotFound) {\n return key;\n }\n else {\n return pending_value;\n }\n }\n else {\n return returnKeyIfNotFound ? key : value;\n }\n }\n else {\n return value;\n }\n }\n else {\n const pendingKeys = [];\n for (const k in value) {\n if (value[k] === undefined) {\n if (this._baseTranslator) {\n pendingKeys.push(k);\n }\n if (returnKeyIfNotFound) {\n value[k] = k;\n }\n }\n }\n if (pendingKeys.length > 0) {\n const pending_value = this._baseTranslator.translate(pendingKeys, options === null || options === void 0 ? void 0 : options.interpolateParams, returnKeyIfNotFound);\n for (const k in pending_value) {\n if (pending_value[k]) {\n value[k] = pending_value[k];\n }\n }\n return value;\n }\n return value;\n }\n }\n get CurrentCulture() {\n return this._culture;\n }\n get AppName() {\n return this._config.resourceLoader.appName;\n }\n}\nexports.ImLocalizationService = ImLocalizationService;\n","import { createContext } from 'react';\nexport var localizationContext = /*#__PURE__*/createContext(undefined);","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getFabUtilityClass(slot) {\n return generateUtilityClass('MuiFab', slot);\n}\nconst fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'info', 'error', 'warning', 'success']);\nexport default fabClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"disableFocusRipple\", \"focusVisibleClassName\", \"size\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport fabClasses, { getFabUtilityClass } from './fabClasses';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n variant,\n classes,\n size\n } = ownerState;\n const slots = {\n root: ['root', variant, `size${capitalize(size)}`, color === 'inherit' ? 'colorInherit' : color]\n };\n const composedClasses = composeClasses(slots, getFabUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst FabRoot = styled(ButtonBase, {\n name: 'MuiFab',\n slot: 'Root',\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, styles[capitalize(ownerState.size)], styles[ownerState.color]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$palette$getCon, _theme$palette;\n return _extends({}, theme.typography.button, {\n minHeight: 36,\n transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {\n duration: theme.transitions.duration.short\n }),\n borderRadius: '50%',\n padding: 0,\n minWidth: 0,\n width: 56,\n height: 56,\n zIndex: (theme.vars || theme).zIndex.fab,\n boxShadow: (theme.vars || theme).shadows[6],\n '&:active': {\n boxShadow: (theme.vars || theme).shadows[12]\n },\n color: theme.vars ? theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),\n backgroundColor: (theme.vars || theme).palette.grey[300],\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.grey.A100,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.grey[300]\n },\n textDecoration: 'none'\n },\n [`&.${fabClasses.focusVisible}`]: {\n boxShadow: (theme.vars || theme).shadows[6]\n }\n }, ownerState.size === 'small' && {\n width: 40,\n height: 40\n }, ownerState.size === 'medium' && {\n width: 48,\n height: 48\n }, ownerState.variant === 'extended' && {\n borderRadius: 48 / 2,\n padding: '0 16px',\n width: 'auto',\n minHeight: 'auto',\n minWidth: 48,\n height: 48\n }, ownerState.variant === 'extended' && ownerState.size === 'small' && {\n width: 'auto',\n padding: '0 8px',\n borderRadius: 34 / 2,\n minWidth: 34,\n height: 34\n }, ownerState.variant === 'extended' && ownerState.size === 'medium' && {\n width: 'auto',\n padding: '0 16px',\n borderRadius: 40 / 2,\n minWidth: 40,\n height: 40\n }, ownerState.color === 'inherit' && {\n color: 'inherit'\n });\n}, ({\n theme,\n ownerState\n}) => _extends({}, ownerState.color !== 'inherit' && ownerState.color !== 'default' && (theme.vars || theme).palette[ownerState.color] != null && {\n color: (theme.vars || theme).palette[ownerState.color].contrastText,\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main,\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }\n }\n}), ({\n theme\n}) => ({\n [`&.${fabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled,\n boxShadow: (theme.vars || theme).shadows[0],\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n}));\nconst Fab = /*#__PURE__*/React.forwardRef(function Fab(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFab'\n });\n const {\n children,\n className,\n color = 'default',\n component = 'button',\n disabled = false,\n disableFocusRipple = false,\n focusVisibleClassName,\n size = 'large',\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n disabled,\n disableFocusRipple,\n size,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FabRoot, _extends({\n className: clsx(classes.root, className),\n component: component,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Fab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: PropTypes.string,\n /**\n * The size of the component.\n * `small` is equivalent to the dense button styling.\n * @default 'large'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'circular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'extended']), PropTypes.string])\n} : void 0;\nexport default Fab;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nimport React, { useContext } from 'react';\nimport Fab from '@mui/material/Fab';\nimport { localizationContext } from '../localizationContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ShowHideResouceKey() {\n var context = useContext(localizationContext);\n var handleShowHideKeys = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n context == null ? void 0 : context.showHideKey(!(context != null && context.isShowKeyEnabled));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function handleShowHideKeys() {\n return _ref.apply(this, arguments);\n };\n }();\n return /*#__PURE__*/_jsx(Fab, {\n color: \"primary\",\n id: \"showHideKeysFloatingBtn\",\n onClick: handleShowHideKeys,\n style: {\n background: '#4198EE',\n bottom: 20,\n height: '35px',\n position: 'fixed',\n right: 49,\n width: 'fit-content',\n zIndex: 99999\n },\n variant: \"extended\",\n children: context != null && context.isShowKeyEnabled ? 'show translation' : 'Show keys'\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _process$env$NODE_ENV, _ShowHideResouceKey;\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport Cookies from 'js-cookie';\nimport { ImLocalizationService } from '@im/localization';\nimport { localizationContext } from './localizationContext';\nimport { ShowHideResouceKey } from './editTranslate/showHideResouceKey';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar IMO_CULTURE_COOKIE = 'ENDEAVOUR_USER_CULTURE_COOKIE';\nvar IMO_CURRENCY_COOKIE = 'ResellerCurrency';\nvar XVANTAGE_CULTURE_COOKIE = 'XVANTAGE_CULTURE_COOKIE';\nvar XVANTAGE_CURRENCY_COOKIE = 'XVANTAGE_CURRENCY_COOKIE';\nvar isEditingEnabled = ((_process$env$NODE_ENV = process.env.NODE_ENV) == null ? void 0 : _process$env$NODE_ENV.startsWith('staging')) === true && (localStorage.getItem('enableTranslationEditing') || 'false') === 'true';\nexport function LocalizationProvider(props) {\n var apiHeaders = props.apiHeaders,\n appId = props.appId,\n children = props.children,\n defaultLocale = props.defaultLocale,\n preloadResources = props.preloadResources,\n showLogs = props.showLogs,\n supportedLocales = props.supportedLocales,\n url = props.url,\n useApi = props.useApi;\n\n //differentiate cookies between apps with the same origin\n var suffix = appId === 'cep' ? '' : \"_\".concat(appId.toUpperCase());\n var savedLocale = Cookies.get(XVANTAGE_CULTURE_COOKIE + suffix) || '';\n var savedCurrency = Cookies.get(XVANTAGE_CURRENCY_COOKIE + suffix);\n var _useState = useState(savedLocale),\n _useState2 = _slicedToArray(_useState, 2),\n locale = _useState2[0],\n setLocaleState = _useState2[1];\n var _useState3 = useState(savedCurrency),\n _useState4 = _slicedToArray(_useState3, 2),\n currencyCode = _useState4[0],\n setCurrencyCodeState = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n showKey = _useState6[0],\n setShowKey = _useState6[1];\n var _useState7 = useState(undefined),\n _useState8 = _slicedToArray(_useState7, 2),\n context = _useState8[0],\n setContext = _useState8[1];\n var setLocale = useCallback(function (newLocale) {\n setLocaleState(newLocale);\n Cookies.set(IMO_CULTURE_COOKIE + suffix, newLocale);\n Cookies.set(XVANTAGE_CULTURE_COOKIE + suffix, newLocale);\n }, [setLocaleState, suffix]);\n useEffect(function () {\n if (!defaultLocale || supportedLocales.length === 0) {\n return;\n }\n if (!supportedLocales.includes(locale)) {\n setLocale(defaultLocale);\n }\n }, [locale, defaultLocale, supportedLocales, setLocale]);\n var localizationService = useMemo(function () {\n if (!url || !locale) {\n return;\n }\n var appIdMap = {\n cep: 'IMCEP',\n x4a: 'IMX4A',\n x4v: 'IMX4V'\n };\n return new ImLocalizationService({\n currencyCode: currencyCode,\n fallbackLocale: 'en-us',\n preloadResources: preloadResources,\n resourceLoader: {\n appName: appIdMap[appId],\n // future maybe: buildVars.APP_NAME\n headers: apiHeaders,\n isEditingEnabled: isEditingEnabled,\n showLogs: showLogs,\n url: url,\n useApi: useApi\n },\n useLocale: locale\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, url]);\n //creating new instance of ImLocalizationService is an expensive operation\n //and should depend only on locale and url.\n\n var setCurrencyCode = useCallback(function (newCode) {\n if (localizationService) localizationService.updateCurrency(newCode);\n Cookies.set(IMO_CURRENCY_COOKIE + suffix, newCode);\n Cookies.set(XVANTAGE_CURRENCY_COOKIE + suffix, newCode);\n setCurrencyCodeState(newCode);\n }, [localizationService, suffix]);\n var showHideKey = useCallback(function (show) {\n setShowKey(show);\n }, []);\n /**\n * resourcesLoadedMap\n */\n var _useState9 = useState(0),\n _useState10 = _slicedToArray(_useState9, 2),\n resourcesCount = _useState10[0],\n setResourcesCount = _useState10[1];\n var resourcesLoadedMapRef = useRef({});\n\n // clear resourcesLoadedMap when locale changed\n useEffect(function () {\n resourcesLoadedMapRef.current = {};\n }, [locale]);\n var resourceIsLoaded = useCallback(function (resource) {\n return resourcesLoadedMapRef.current[resource];\n }, []);\n var resourceSetIsLoaded = useCallback(function (resource, loaded) {\n var prevState = resourcesLoadedMapRef.current[resource];\n if (prevState === undefined || loaded) {\n resourcesLoadedMapRef.current[resource] = loaded;\n }\n if (loaded && prevState !== loaded) {\n setResourcesCount(function (c) {\n return c + 1;\n });\n // console.log('resourceSetIsLoaded', resource);\n }\n }, []);\n var _useState11 = useState(0),\n _useState12 = _slicedToArray(_useState11, 2),\n resourcesDelayedCount = _useState12[0],\n setResourcesDelayedCount = _useState12[1];\n useEffect(function () {\n var isActive = true;\n var id = setTimeout(function () {\n if (isActive) {\n setResourcesDelayedCount(resourcesCount);\n }\n }, 200);\n return function () {\n isActive = false;\n clearTimeout(id);\n };\n }, [resourcesCount, setResourcesDelayedCount]);\n useEffect(function () {\n if (isEditingEnabled) {\n window.addEventListener('contextmenu', function (e) {\n return e.preventDefault();\n });\n var handleRightClickEvent = function handleRightClickEvent(evt) {\n if (evt.which === 3 && evt.detail === 2) {\n evt.preventDefault();\n if (context) setShowKey(!context.isShowKeyEnabled);\n }\n };\n window.addEventListener('mouseup', handleRightClickEvent);\n return function () {\n window.removeEventListener('mouseup', handleRightClickEvent);\n };\n }\n }, [context, setShowKey]);\n\n /**\n * create context\n */\n useEffect(function () {\n if (!localizationService) {\n return;\n }\n setContext({\n isEditingEnabled: isEditingEnabled,\n isShowKeyEnabled: showKey,\n locale: locale,\n localizationService: localizationService,\n resourceIsLoaded: resourceIsLoaded,\n resourceSetIsLoaded: resourceSetIsLoaded,\n resourcesCount: resourcesDelayedCount,\n setCurrencyCode: setCurrencyCode,\n setLocale: setLocale,\n showHideKey: showHideKey,\n showLogs: showLogs,\n supportedLocales: supportedLocales\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [localizationService, currencyCode, resourcesDelayedCount, showKey]);\n //If locale changes, then localizationService would also change\n //so dependency on locale is not required.\n\n if (!context) {\n return null;\n }\n var Provider = localizationContext.Provider;\n return /*#__PURE__*/_jsxs(Provider, {\n value: context,\n children: [children, isEditingEnabled && (_ShowHideResouceKey || (_ShowHideResouceKey = /*#__PURE__*/_jsx(ShowHideResouceKey, {})))]\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useContext, useEffect, useState } from 'react';\nimport parse from 'html-react-parser';\nimport { localizationContext } from './localizationContext';\nimport { Fragment as _Fragment, jsx as _jsx } from \"react/jsx-runtime\";\nexport function Translate(props) {\n var params = props.params,\n _props$paramsWithDang = props.paramsWithDangerousHtml,\n paramsWithDangerousHtml = _props$paramsWithDang === void 0 ? false : _props$paramsWithDang,\n text = props.text;\n var context = useContext(localizationContext);\n var _useState = useState(''),\n _useState2 = _slicedToArray(_useState, 2),\n translated = _useState2[0],\n setTranslated = _useState2[1];\n useEffect(function () {\n var isActive = true;\n if (context) {\n if (text.indexOf('.') < 1) {\n if (context.showLogs) console.warn(\"Invalid translate key '\".concat(text, \"'\"));\n setTranslated(text);\n } else {\n context.localizationService.translate(text, {\n interpolateParams: params\n }).then(function (res) {\n if (isActive) {\n setTranslated(res);\n }\n })[\"catch\"]();\n }\n }\n return function () {\n isActive = false;\n };\n }, [context, params, text]);\n return /*#__PURE__*/_jsx(_Fragment, {\n children: paramsWithDangerousHtml ? parse(translated) : translated\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _h, _strong, _br, _strong2, _Button, _Button2;\nimport React, { useRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport Dialog from '@mui/material/Dialog';\nimport Button from '@mui/material/Button';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport parse from 'html-react-parser';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nexport function EditTranslateModal(props) {\n var clearErrorMessage = props.clearErrorMessage,\n errorMessage = props.errorMessage,\n onClose = props.onClose,\n onPreviewChange = props.onPreviewChange,\n onRaiseRequestChange = props.onRaiseRequestChange,\n onResetHandleChange = props.onResetHandleChange,\n onSaveHandleChange = props.onSaveHandleChange,\n open = props.open,\n showPleaseWaitLabel = props.showPleaseWaitLabel,\n showPleaseWaitLabelOnSave = props.showPleaseWaitLabelOnSave,\n showRequestButton = props.showRequestButton,\n translationKey = props.translationKey,\n translationValue = props.translationValue,\n value = props.value;\n var ref = useRef(null);\n return /*#__PURE__*/_jsx(Dialog, {\n PaperProps: {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n },\n \"data-html2canvas-ignore\": \"true\",\n onClose: onClose,\n open: open,\n children: /*#__PURE__*/_jsxs(Root, {\n children: [_h || (_h = /*#__PURE__*/_jsx(\"h2\", {\n children: \"Edit translation\"\n })), /*#__PURE__*/_jsxs(\"p\", {\n children: [_strong || (_strong = /*#__PURE__*/_jsx(\"strong\", {\n children: \"Key\"\n })), \": \", translationKey, _br || (_br = /*#__PURE__*/_jsx(\"br\", {})), _strong2 || (_strong2 = /*#__PURE__*/_jsx(\"strong\", {\n children: \"Value\"\n })), \": \", translationValue]\n }), /*#__PURE__*/_jsx(\"textarea\", {\n defaultValue: value,\n onChange: clearErrorMessage,\n ref: ref\n }), /*#__PURE__*/_jsxs(Stack, {\n direction: \"row\",\n spacing: 2,\n children: [/*#__PURE__*/_jsx(Button, {\n onClick: function onClick() {\n return onPreviewChange(ref && ref.current ? ref.current.value : '');\n },\n variant: \"outlined\",\n children: \"Preview\"\n }), showPleaseWaitLabelOnSave ? _Button || (_Button = /*#__PURE__*/_jsx(Button, {\n disabled: true,\n children: \"Please wait\"\n })) : /*#__PURE__*/_jsx(Button, {\n onClick: function onClick() {\n return onSaveHandleChange(ref && ref.current ? ref.current.value : '', translationKey);\n },\n variant: \"outlined\",\n children: \"Save\"\n }), showRequestButton && /*#__PURE__*/_jsx(_Fragment, {\n children: showPleaseWaitLabel ? _Button2 || (_Button2 = /*#__PURE__*/_jsx(Button, {\n disabled: true,\n children: \"Please wait\"\n })) : /*#__PURE__*/_jsx(Button, {\n onClick: function onClick() {\n return onRaiseRequestChange();\n },\n variant: \"outlined\",\n children: \"Raise a request\"\n })\n }), /*#__PURE__*/_jsx(Button, {\n color: \"error\",\n onClick: function onClick() {\n return onResetHandleChange();\n },\n variant: \"outlined\",\n children: \"Reset\"\n })]\n }), errorMessage && /*#__PURE__*/_jsx(Typography, {\n color: \"error\",\n marginTop: 2,\n variant: \"body1\",\n children: parse(errorMessage)\n })]\n })\n });\n}\nvar Root = styled('div')(function () {\n return _defineProperty(_defineProperty(_defineProperty({}, \">h2\", {\n margin: 0\n }), \">textarea\", {\n height: '100px',\n marginBottom: '10px',\n padding: '10px',\n width: '500px'\n }), \"padding\", '15px');\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nexport var redirectToTranslationEditor = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(body, url) {\n var isApiResponseReceived;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n isApiResponseReceived = false;\n _context2.next = 3;\n return fetch('https://translations.corporate.ingrammicro.com/xvantage-request', {\n body: JSON.stringify(body),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n method: 'POST'\n }).then( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(response) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n isApiResponseReceived = true;\n if (!response.ok) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\", response.json());\n case 3:\n _context.t0 = Error;\n _context.next = 6;\n return response.json();\n case 6:\n _context.t1 = _context.sent;\n throw new _context.t0(_context.t1);\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x3) {\n return _ref2.apply(this, arguments);\n };\n }()).then(function (uniqueId) {\n window.open(\"\".concat(url, \"/\").concat(uniqueId), '_blank');\n })[\"catch\"](function (error) {\n if (isApiResponseReceived) throw new Error(error.message);else throw new Error('Unable to connect to Translation Tool');\n });\n case 3:\n return _context2.abrupt(\"return\", _context2.sent);\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function redirectToTranslationEditor(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\n/* eslint-disable no-nested-ternary */\nimport React, { useCallback, useContext, useEffect, useState, useRef, useMemo } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { localizationContext } from '../localizationContext';\nimport { EditTranslateModal } from './EditTranslateModal';\nimport { redirectToTranslationEditor } from './api-customize-hooks';\nimport parse from 'html-react-parser';\nimport html2canvas from 'html2canvas';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function EditTranslate(props) {\n var _ref2;\n var params = props.params,\n paramsWithDangerousHtml = props.paramsWithDangerousHtml,\n text = props.text;\n var context = useContext(localizationContext);\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n translated = _useState2[0],\n setTranslated = _useState2[1];\n var _useState3 = useState(undefined),\n _useState4 = _slicedToArray(_useState3, 2),\n displayValue = _useState4[0],\n setDisplayValue = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n open = _useState6[0],\n setOpen = _useState6[1];\n var _useState7 = useState(undefined),\n _useState8 = _slicedToArray(_useState7, 2),\n errorMessage = _useState8[0],\n setErrorMessage = _useState8[1];\n var _useState9 = useState(false),\n _useState10 = _slicedToArray(_useState9, 2),\n showPleaseWaitLabel = _useState10[0],\n setShowPleaseWaitLabel = _useState10[1];\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n showPleaseWaitLabelOnSave = _useState12[0],\n setShowPleaseWaitLabelOnSave = _useState12[1];\n var _useState13 = useState(undefined),\n _useState14 = _slicedToArray(_useState13, 2),\n previewValue = _useState14[0],\n setPreviewValue = _useState14[1];\n var _useState15 = useState(undefined),\n _useState16 = _slicedToArray(_useState15, 2),\n displayPreviewValue = _useState16[0],\n setDisplayPreviewValue = _useState16[1];\n var selectedValue = useRef(null);\n var convertStringToTranslation = useCallback(function (str) {\n for (var key in params) {\n str = str.replace(\"{{\".concat(key, \"}}\"), params[key]);\n }\n return str;\n }, [params]);\n useEffect(function () {\n var isActive = true;\n if (context) {\n context.localizationService.translate(text, {\n returnKeyIfNotFound: false\n }).then(function (res) {\n if (isActive && res) {\n setTranslated(res);\n if (params) res = convertStringToTranslation(res);\n setDisplayValue(paramsWithDangerousHtml ? parse(res) : res);\n }\n })[\"catch\"]();\n }\n return function () {\n isActive = false;\n };\n }, [context, text, params, convertStringToTranslation, paramsWithDangerousHtml]);\n var handleClose = function handleClose() {\n setErrorMessage(undefined);\n setOpen(false);\n };\n var handleClick = function handleClick(e) {\n e.preventDefault();\n setShowPleaseWaitLabel(false);\n setShowPleaseWaitLabelOnSave(false);\n setOpen(true);\n };\n var onPreviewHandle = function onPreviewHandle(valueSelected) {\n if (!valueSelected) {\n setErrorMessage('Please enter translation to PREVIEW');\n return;\n }\n var newDisplayTranslation = parse(params ? convertStringToTranslation(valueSelected) : valueSelected);\n if (newDisplayTranslation === displayValue) {\n setErrorMessage('Please modify the translation to PREVIEW');\n return;\n }\n setPreviewValue(valueSelected);\n setDisplayPreviewValue(newDisplayTranslation);\n setOpen(false);\n };\n var onRaiseRequestHandle = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _selectedValue$curren, _selectedValue$curren2;\n var rect, currentPosition, canvas, image;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n selectedValue == null ? void 0 : (_selectedValue$curren = selectedValue.current) == null ? void 0 : _selectedValue$curren.classList.add('requested-translation');\n setShowPleaseWaitLabel(true);\n rect = document.body.getBoundingClientRect();\n currentPosition = rect.top + window.scrollY;\n _context.next = 6;\n return html2canvas(document.body, {\n height: window.innerHeight,\n ignoreElements: function ignoreElements(element) {\n if (element.tagName === 'NOSCRIPT' || element.id === 'showHideKeysFloatingBtn') {\n return true;\n } else {\n return false;\n }\n },\n onclone: function onclone(clonedDoc) {\n var _clonedDoc$querySelec;\n var modifiedSpans = clonedDoc.querySelectorAll('.modified-translation');\n modifiedSpans.forEach(function (element) {\n var originalValue = element.getAttribute('data-original-value');\n if (originalValue) element.innerHTML = originalValue;\n element.classList.remove('modified-translation');\n });\n (_clonedDoc$querySelec = clonedDoc.querySelector('.requested-translation')) == null ? void 0 : _clonedDoc$querySelec.classList.add('hover');\n },\n width: window.innerWidth,\n y: currentPosition\n });\n case 6:\n canvas = _context.sent;\n image = canvas.toDataURL('image/png', 1.0);\n selectedValue == null ? void 0 : (_selectedValue$curren2 = selectedValue.current) == null ? void 0 : _selectedValue$curren2.classList.remove('requested-translation');\n redirectToTranslationEditor({\n App: context == null ? void 0 : context.localizationService.AppName,\n Data: [{\n ResourceKey: text,\n value: image\n }],\n Locale: context == null ? void 0 : context.locale,\n RequestType: 'Add'\n }, \"https://translations.corporate.ingrammicro.com/Requests/Add\").then(function () {\n setOpen(false);\n })[\"catch\"](function (error) {\n setErrorMessage(error.message);\n setShowPleaseWaitLabel(false);\n });\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function onRaiseRequestHandle() {\n return _ref.apply(this, arguments);\n };\n }();\n var onResetHandle = function onResetHandle() {\n setPreviewValue(undefined);\n setDisplayPreviewValue(undefined);\n setErrorMessage(undefined);\n setOpen(false);\n };\n var onSaveHandleClick = function onSaveHandleClick(valueSaved, translationKey) {\n if (!valueSaved) {\n setErrorMessage('Please enter translation to SAVE');\n return;\n }\n var newDisplayTranslation = parse(params ? convertStringToTranslation(valueSaved) : valueSaved);\n if (newDisplayTranslation === displayValue) {\n setErrorMessage('Please modify the translation to SAVE');\n return;\n }\n setShowPleaseWaitLabelOnSave(true);\n redirectToTranslationEditor({\n App: context == null ? void 0 : context.localizationService.AppName,\n Data: [{\n ResourceKey: text,\n value: valueSaved\n }],\n Locale: context == null ? void 0 : context.locale,\n RequestType: 'Edit'\n }, \"https://translations.corporate.ingrammicro.com/Translations/Add\").then(function () {\n setPreviewValue(valueSaved);\n setDisplayPreviewValue(newDisplayTranslation);\n setOpen(false);\n })[\"catch\"](function (error) {\n setErrorMessage(error.message);\n setShowPleaseWaitLabelOnSave(false);\n });\n };\n var clearErrorMessage = function clearErrorMessage() {\n setErrorMessage(undefined);\n };\n var isTranslationModified = useMemo(function () {\n if (displayValue && displayPreviewValue && displayPreviewValue !== displayValue) {\n return true;\n } else {\n return false;\n }\n }, [displayValue, displayPreviewValue]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [translated ? /*#__PURE__*/_jsx(StyleSpan, {\n className: isTranslationModified ? 'modified-translation' : '',\n \"data-original-value\": params ? convertStringToTranslation(translated) : translated,\n onContextMenu: function onContextMenu(e) {\n return handleClick(e);\n },\n ref: selectedValue,\n children: context != null && context.isShowKeyEnabled ? text : previewValue ? displayPreviewValue : displayValue\n }) : text, /*#__PURE__*/_jsx(EditTranslateModal, {\n clearErrorMessage: clearErrorMessage,\n errorMessage: errorMessage,\n onClose: handleClose,\n onPreviewChange: onPreviewHandle,\n onRaiseRequestChange: onRaiseRequestHandle,\n onResetHandleChange: onResetHandle,\n onSaveHandleChange: onSaveHandleClick,\n open: open,\n showPleaseWaitLabel: showPleaseWaitLabel,\n showPleaseWaitLabelOnSave: showPleaseWaitLabelOnSave,\n showRequestButton: context !== undefined && !context.locale.toLowerCase().startsWith('en-'),\n translationKey: text,\n translationValue: displayValue,\n value: (_ref2 = previewValue != null ? previewValue : translated) != null ? _ref2 : ''\n })]\n });\n}\nvar StyleSpan = styled('span')(function () {\n return _defineProperty(_defineProperty(_defineProperty({}, \"&.hover\", {\n background: '#ffeb3b !important'\n }), \"&.modified-translation\", {\n background: '#e3fffa',\n color: '#18846f'\n }), \":hover\", {\n background: '#ffeb3b !important'\n });\n});","import { useContext } from 'react';\nimport { parseISO } from 'date-fns';\nimport { localizationContext } from './localizationContext';\nimport { Translate } from './Translate';\nimport { EditTranslate } from './editTranslate/EditTranslate';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var useLocalizationContext = function useLocalizationContext() {\n var context = useContext(localizationContext);\n if (!context) {\n throw new Error('imLocalizationContext value is undefined. Make sure you use the ImLocalizationProvider before using the context.');\n }\n return context;\n};\nexport var useLocalization = function useLocalization() {\n var context = useLocalizationContext();\n var formatDate = function formatDate(date) {\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'short';\n if (!date) {\n return '';\n }\n var dateToFormat = typeof date === 'string' ? parseISO(date) : date;\n return context.localizationService.formatDate(dateToFormat, {\n dateFormat: format\n });\n };\n var formatCurrency = function formatCurrency(amount, currencyCode) {\n return currencyCode ? context.localizationService.formatCurrencyByCode(amount, currencyCode) : context.localizationService.formatCurrency(amount);\n };\n var formatToShortCurrency = function formatToShortCurrency(amount, currencyCode) {\n return currencyCode ? context.localizationService.formatToShortCurrencyByCode(amount, currencyCode) : context.localizationService.formatToShortCurrency(amount);\n };\n var translate = function translate(key, params, paramsWithDangerousHtml) {\n return context.isEditingEnabled ? /*#__PURE__*/_jsx(EditTranslate, {\n params: params,\n paramsWithDangerousHtml: paramsWithDangerousHtml,\n text: key\n }) : /*#__PURE__*/_jsx(Translate, {\n params: params,\n paramsWithDangerousHtml: paramsWithDangerousHtml,\n text: key\n });\n };\n return {\n formatCurrency: formatCurrency,\n formatDate: formatDate,\n formatToShortCurrency: formatToShortCurrency,\n translate: translate\n };\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useCallback, useMemo } from 'react';\nimport { useLocalizationContext } from './useLocalization';\nexport var useTranslate = function useTranslate() {\n var _useLocalizationConte = useLocalizationContext(),\n isEditingEnabled = _useLocalizationConte.isEditingEnabled,\n isShowKeyEnabled = _useLocalizationConte.isShowKeyEnabled,\n localizationService = _useLocalizationConte.localizationService,\n resourceIsLoaded = _useLocalizationConte.resourceIsLoaded,\n resourceSetIsLoaded = _useLocalizationConte.resourceSetIsLoaded,\n showLogs = _useLocalizationConte.showLogs;\n var doNotTranslate = useCallback(function (key, params) {\n return key;\n }, []);\n var translate = useCallback(function (key, params) {\n if (key.indexOf('.') < 1) {\n if (showLogs) console.warn(\"Invalid translate key '\".concat(key, \"'\"));\n return key;\n }\n var translated = localizationService.translateInstant(key, {\n interpolateParams: params,\n returnKeyIfNotFound: false\n });\n if (translated === undefined) {\n // resource was not yet loaded\n var _key$split = key.split('.'),\n _key$split2 = _slicedToArray(_key$split, 1),\n resource = _key$split2[0];\n var status = resourceIsLoaded(resource);\n if (status === undefined) {\n resourceSetIsLoaded(resource, false);\n localizationService.translate(key, {\n interpolateParams: params\n }).then(function (res) {\n resourceSetIsLoaded(resource, true);\n })[\"catch\"](function (e) {\n if (showLogs) console.warn('translate', e);\n });\n } else if (status) {\n // resource was loaded but key not found\n return key;\n }\n }\n return translated || '';\n }, [localizationService, resourceIsLoaded, resourceSetIsLoaded, showLogs]);\n return useMemo(function () {\n return isEditingEnabled && isShowKeyEnabled ? doNotTranslate : translate;\n }, [doNotTranslate, isEditingEnabled, isShowKeyEnabled, translate]);\n};","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useId from '@mui/utils/useId';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&::after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `max(${theme.breakpoints.values.xs}${theme.breakpoints.unit}, 444px)`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth && ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n const handleBackdropClick = event => {\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n backdropClick.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n closeAfterTransition: true,\n components: {\n Backdrop: DialogBackdrop\n },\n componentsProps: {\n backdrop: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps)\n },\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import * as React from 'react';\nconst DialogContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\nexport default DialogContext;","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline